2025软件测试工程师笔试真题及答案_第1页
2025软件测试工程师笔试真题及答案_第2页
2025软件测试工程师笔试真题及答案_第3页
2025软件测试工程师笔试真题及答案_第4页
2025软件测试工程师笔试真题及答案_第5页
已阅读5页,还剩15页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2025软件测试工程师笔试练习题及答案一、单项选择题(每题2分,共20分)1.在等价类划分法中,若输入条件为“1≤x≤100”,则无效等价类应划分为A.x<1B.x>100C.x=0与x=101D.x<1与x>100答案:D2.某系统需求规定“用户密码长度6~18位且必须包含字母与数字”,下列哪条测试用例最符合边界值设计原则A.123abcB.12345C.abcdefD.123456789012345678答案:A3.关于语句覆盖,下列说法正确的是A.使每个判断的真假都执行一次B.使每个可执行语句至少执行一次C.使每个条件都取真与假D.使每个路径都执行一次答案:B4.在Web系统性能测试中,TPS指A.每秒并发用户数B.每秒事务数C.每秒点击率D.每秒吞吐量字节数答案:B5.使用SeleniumWebDriver时,定位器“xpath=//input[@id='btn'and@type='submit']”属于A.ID定位B.Name定位C.XPath定位D.CSSSelector定位答案:C6.某接口返回JSON:{"code":0,"msg":"success","data":null},断言“data为null”应使用的JSONPath表达式为A.$.data==nullB.$.data!=nullC.$.msgD.$.code答案:A7.在Postman中设置环境变量“base_url”的语法为A.{{base_url}}B.${base_url}C.base_urlD.%base_url%答案:A8.关于缺陷严重程度(Severity)与优先级(Priority)的关系,下列描述正确的是A.严重程度高的缺陷优先级一定高B.优先级高的缺陷严重程度一定高C.两者无必然联系,需结合业务场景判断D.严重程度由测试人员决定,优先级由开发人员决定答案:C9.在敏捷迭代中,下列活动最可能发生在“迭代计划会议”上的是A.演示可交付软件B.评审代码实现C.估算用户故事点数D.执行回归测试答案:C10.某APP崩溃日志出现“java.lang.OutOfMemoryError:GCoverheadlimitexceeded”,最可能原因是A.网络超时B.内存泄漏C.数据库锁等待D.权限拒绝答案:B二、多项选择题(每题3分,共15分,多选少选均不得分)11.以下哪些属于黑盒测试设计技术A.判定表B.状态转换C.语句覆盖D.因果图答案:A、B、D12.关于JMeter元件,下列哪些属于“逻辑控制器”A.IfControllerB.LoopControllerC.ConstantTimerD.ThroughputController答案:A、B、D13.在Linux服务器上排查CPU飙高问题,可使用的命令有A.topB.vmstatC.iostatD.netstat答案:A、B、C14.以下哪些做法有助于降低自动化测试脚本维护成本A.使用PageObject模式B.将元素定位集中管理C.使用硬编码等待时间D.数据与脚本分离答案:A、B、D15.关于HTTPS协议,下列说法正确的是A.默认端口443B.使用SSL/TLS加密C.绝对无法被中间人攻击D.需要数字证书答案:A、B、D三、填空题(每空2分,共20分)16.某模块圈复杂度为9,则线性独立路径数为________。答案:917.MySQL中查看当前隔离级别的命令是select@@________。答案:tx_isolation(8.0+版本为transaction_isolation)18.在Python单元测试框架unittest中,方法级别的前置钩子函数名为________。答案:setUp19.HTTP状态码502表示________。答案:BadGateway20.使用Git回退到上一次提交的命令是gitreset________HEAD~1。答案:hard21.在Linux中,将标准错误重定向到标准输出的符号是________。答案:2>&122.若某算法时间复杂度为O(nlogn),当输入规模扩大4倍时,理论耗时约扩大________倍。答案:4log4≈823.在TestNG中,启用分组的参数写在注解________中。答案:groups24.某磁盘IOPS上限为1000,平均每次I/O大小为4KB,则最大吞吐量为________MB/s。答案:10004/1024≈3.9,取整425.在Dockerfile中,设置基础镜像的指令是________。答案:FROM四、判断题(每题1分,共10分,正确打“√”,错误打“×”)26.所有SQL注入漏洞都可通过预编译语句完全防御。答案:×27.在敏捷项目中,测试人员只在迭代末期才开始测试。答案:×28.使用Fiddler可拦截并修改HTTPS流量。答案:√29.在Python中,列表推导式比同等逻辑的for循环执行速度更快。答案:√30.移动APP冷启动时间包含Application.onCreate到首帧绘制完成。答案:√31.在Jenkins中,PipelineasCode需使用Declarative或Scripted语法编写。答案:√32.当CPU使用率持续100%时,系统一定无法提供任何服务。答案:×33.在Git中,执行gitfetch会自动合并远程分支到本地分支。答案:×34.使用Wireshark可查看经过本机网卡的所有原始数据帧。答案:√35.在性能测试中,90%响应时间指标比平均响应时间更能体现用户体验。答案:√五、简答题(封闭型,每题6分,共18分)36.简述“判定覆盖”与“条件覆盖”的区别,并给出一段示例代码说明。答案:判定覆盖要求每个判断的整体结果(真/假)至少出现一次;条件覆盖要求判断中每个原子条件的真、假值至少出现一次。示例:if(a>0&&b<5){…}判定覆盖:用例1a=1,b=4(真),用例2a=0,b=6(假)即可。条件覆盖:需让a>0取真、假,b<5取真、假,共需至少两条用例,如a=1,b=6(a真b假)与a=0,b=4(a假b真)。可见判定覆盖不一定满足条件覆盖,反之亦然。37.写出使用Python+Requests对REST接口“POST/login”做自动化鉴权并断言返回token长度大于20的完整脚本(含异常处理)。答案:importrequests,jsonurl="https://demo.api/login"payload={"user":"tester","pwd":"123456"}try:r=requests.post(url,json=payload,timeout=5)r.raise_for_status()token=r.json().get("token")asserttokenandlen(token)>20print("pass")exceptrequests.exceptions.RequestExceptionase:print("httperror:",e)exceptAssertionError:print("tokeninvalid")38.说明“内存泄漏”与“内存溢出”的区别,并给出在Java中定位内存泄漏的两种工具及核心使用步骤。答案:内存泄漏指对象不再使用却仍被引用,导致无法回收;内存溢出指申请内存时无法满足,抛出OutOfMemoryError。工具1:jvisualvm——启动→装入本地进程→“Sampler”→“HeapDump”→查看“Classes”中实例数异常类→“GCRoot”路径。工具2:MAT(MemoryAnalyzerTool)——获取hprof文件→LeakSuspectsReport→查看“ShortestPathsToGCRoots”→定位持有引用的类或静态字段。六、简答题(开放型,每题8分,共16分)39.某电商大促期间,订单服务高峰期出现“库存扣减成功但订单创建失败”的不一致问题。请从测试角度提出至少四条测试策略,以提前暴露此类分布式事务缺陷。答案:1.异常注入:在订单创建接口返回后、提交前,使用混沌工程工具(如ChaosBlade)随机kill订单服务或断开网络,验证最终一致性。2.并发压测:JMeter设置200线程同时秒杀同一商品,断言库存与订单数量始终相等,发现超卖或残留库存。3.对账任务:每日凌晨跑批对比库存表、订单表、流水日志,测试人员提前编写SQL核对脚本,若数量不等自动告警。4.消息队列可靠性测试:重启Kafkabroker或制造消息堆积,验证订单服务消费重试、幂等令牌、死信队列机制,确保库存回滚消息不丢失。5.采用TCC模式时,单独测试Try、Confirm、Cancel各阶段超时与补偿,模拟Confirm失败触发Cancel,验证库存正确回滚。40.你是测试负责人,公司计划将手工回归测试80%自动化。请给出可落地的实施路线图(含阶段目标、技术选型、质量门禁、风险缓解)。答案:阶段1(01个月):ROI评估——选取P1冒烟用例50条,覆盖主流程;技术选型:Python+Pytest+Allure+GitLabCI;门禁:手工+自动化并行,通过率100%才允许合并。阶段2(13个月):框架搭建——PageObject+数据驱动,公共方法库、配置管理、日志与截图;目标覆盖30%回归;风险:脚本不稳定,缓解:强制codereview、每晚定时重跑3次成功率>95%。阶段3(36个月):持续集成——JenkinsPipeline,多浏览器并行,失败自动提Jira;引入MockServer隔离外部依赖;覆盖60%;风险:测试数据污染,缓解:Docker容器化数据库,每次跑批前还原快照。阶段4(612个月):覆盖率提升——接入sonar代码覆盖插件,单元+接口+UI整体目标80%;性能门禁:单次用例<30s;引入众测做探索性补充;风险:维护成本上升,缓解:建立用例退役机制,连续3个版本无缺陷的用例降优先级。七、应用题(综合类,共51分)41.代码走查与缺陷分类(15分)阅读以下Java片段:publicdoublecalcDiscount(doubleprice,intlevel){if(level>=5){price=price0.9;}if(level==10){price=price0.8;}returnprice;}(1)找出至少3条缺陷并说明类型(5分)(2)给出等价类与边界值测试用例表(输入price>0,level∈[0,10])(6分)(3)使用JUnit5编写参数化测试覆盖上述用例(4分)答案:(1)a.当level=10时重复折扣,业务规则不明确,属于逻辑错误;b.未校验price≤0,导致负数折扣,属于输入合法性缺陷;c.level>10时无处理,属于需求外未定义行为,鲁棒性缺陷。(2)等价类:price:(0,1000]有效,(∞,0]无效level:[0,4]、[5,9]、{10}、(∞,1)、(10,+∞)边界值:price=0.01,1,999,1000;level=0,4,5,9,10,11用例表:序号pricelevel期望折扣后备注11004100普通会员2100590黄金会员31001080钻石会员410011抛异常或默认未定义5105抛异常无效价格(3)@ParameterizedTest@CsvSource({"100,4,100","100,5,90","100,10,80"})voidtestDiscount(doubleprice,intlevel,doubleexpected){doubleactual=newDiscount().calcDiscount(price,level);assertEquals(expected,actual,0.001);}42.性能测试分析与调优(18分)某订单接口压测结果:并发用户500,TPS稳定在800,平均响应250ms,90%响应380ms,CPU75%,数据库CPU30%,MQ队列长度持续增长,错误率0.5%为“timeout”。(1)指出最可能的瓶颈点并给出两条证据(4分)(2)列出三项深入诊断步骤(6分)(3)给出三项调优建议并预测效果(8分)答案:(1)瓶颈:订单服务线程池或下游依赖(库存)处理慢;证据:MQ堆积说明消费速度低于生产;timeout错误集中在下游调用库存接口。(2)诊断:a.jstack抓线程栈,查看WAITING或BLOCKED比例;b.打印Feign调用链路日志,确认库存接口耗时;c.使用arthastrace命令追踪“stockService.deduct”方法耗时分布。(3)调优:a.扩容订单服务Pod副本数8→12,预计TPS可提升30%,MQ堆积下降;b.调整Hystrix超时500ms→800ms,降低timeout错误至0.1%;c.库存接口加缓存Redis预扣,减少RT120ms→40ms,整体90%响应降至280ms。43.自动化框架设计(18分)公司采用微服务架构,技术栈SpringCloud+MySQL+Redis+RabbitMQ。请设计一套分层自动化测试框架,要求:a.覆盖单元、接口、契约、UI、性能五层;b.各层工具选型与集成方式;c.统一报告与质量门禁;d.用例管理、版本控制、CI/CD流程图(文字描述)。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论