--- title: "02-软件测试" created: 2025-12-02 tags: - 博客 --- # 软件测试 ## 考试时间 6月19日 星期四 8:30——10:10 ## 题型分布(参考去年分布 不准确) 选择 10题 1分一道 10分 填空 10题 2分一道 20分 判断 10题 1分一道 10分 简答题 5题 6分一道 30分 应用题 2题 15分一道 30分 ## 选填判(30题) ### 选择(17选10) 1. 目标代码插桩的两种方式不包括\_\_\_\_\_\_\_。 A.对未运行的目标代码插桩 B.对源代码插桩 C.对编译后的代码插桩 D.对正在运行的程序插桩 P69 程序插桩法分为目标代码插桩和源代码插桩 目标代码插桩分为对未运行的目标代码插桩和向正在运行的程序插入测试代码 2. 性能测试指标中,\_\_\_\_\_\_\_是指单位时间内系统能够处理的请求数量。 A.响应时间 B.TPS C.取样时间 D.吞吐量 P111 响应时间:系统对用户请求做出响应所需要的时间 吞吐量:单位时间内系统能够完成的工作量 QPS:系统每秒能够响应的查询次数 TPS:系统每秒能够处理的事务数量 3. 在Jmeter中,用于模拟用户操作并发送请求的元件是\_\_\_\_\_\_\_。 A.监听器 B.配置元件 C.取样器 D.聚合报告 P121 取样器:又称采样器,用于模拟用户操作,向服务器发送请求并接收服务器的响应数据 监听器:监听JMeter的测试结果,并返回图形表格给用户或保存结果供再次分析 聚合报告:测试结束后收集系统各项性能指标 配置元件:配置测试计划中的公共信息(参数)帮助模拟大量用户操作 4. 在自动化测试中,以下\_\_\_\_\_\_\_\_\_框架不是Python中的第三方测试框架。 A.unittest B.Junit C.pytest D.Robot Framework P180 常用的python自动化测试框架有unittest、pytest、Robot Framework等,这三种框架主要用于功能测试和单元测试,其中unittest和pytest是web自动化测试中常用的两种框架。 5. 以下\_\_\_\_\_\_\_\_\_\_最大的特点是引入了风险分析。 A.W模型 B.迭代模型 C.螺旋模型 D.H模型 P4 螺旋模型融合了瀑布模型和快速原型模型,最大的特点是引入了其他模型所忽略的风险分析。 6. 以下选项中,\_\_\_\_\_\_\_\_\_\_不属于软件测试原则的是 A.测试应基于用户需求 B.测试越晚进行越好 C.穷尽测试是不可以的 D.软件测试遵循GoodEnough原则 P19 六项原则: 测试应基于用户需求、测试要尽早进行、不能做到穷尽测试、遵循GoodEnough原则、测试缺陷要符合“二八”定理、避免缺陷免疫 7. 以下选项中,\_\_\_\_\_\_\_\_\_\_\_\_\_不是软件缺陷产生的原因。 A.需求不明确 B.测试用例设计不好 C.软件结构复杂 D.项目周期短 P7 四种常见因素 需求模糊、软件开发缺乏规范性文件的指导、软件开发人员的问题、缺乏软件质量的控制、管理。 8. 下列选项中,关于软件测试的说法错误的是\_\_\_\_\_\_\_ A.在早期的软件开发中,测试就等同于调试。 B.软件测试是使用人工或自动手段来运行或测定某个系统的过程。 C.软件测试的目的在于检验软件是否满足规定的需求或弄清楚预期结果与实际结果之间的差异。 D.软件测试与软件开发是两个独立、分离的过程。 P15 现代软件工程强调测试与开发的协同性,而非完全分离。 9. 下列选项中,\_\_\_\_\_\_\_\_\_不是正交实验设计法的关键因素 A.指标 B.因子 C.因子状态 D.正交表 P45 三个关键因素:指标、因子、因子的状态 10. 下列关于自动化测试的描述正确的是\_\_\_\_\_\_ A.自动化测试能够很好地进行回归测试,从而缩短回归测试时间。 B.自动化测试脚本不需要维护,每次测试完后进行下一次测试需要重新编写测试用例。 C.自动化测试只需要熟练掌握自动化测试工具即可。 D.自动化测试中测试人员仅仅测试负责的模块,不需要考虑其他干扰因素。 P165 11. 以下技术关注程序内部逻辑和路径。 A.透盟盒测试 B.功能测试 C.α测试 D.性能测试 (白盒测试) P61 白盒测试又称透明盒测试,基于程序的内部逻辑结构进行测试,而不是程序的功能 12. 接口测试工具Postman的参数化常用的数据文件格式有JSON和 A. CSV B. JavaScript C. TXT D. Java P95 CSV 是 Postman 参数化与 JSON 并列的常用数据格式 13. 以下分类属于按技术划分的\_\_\_\_\_\_\_。 A.单元测试 B.灰盒测试 C.界面测试 D.冒烟测试 14. 逻辑覆盖法中,满足判定覆盖一定满足\_\_\_\_\_\_ A.条件覆盖 B.条件组合覆盖 C.判定条件覆盖 D.语句覆盖 P65 覆盖关系示意图: 条件组合覆盖 → 判定条件覆盖 → 判定覆盖 / 条件覆盖 → 语句覆盖 (强) (中) (弱) (最弱) 15. 如果发送的HTTP请求中包含请求头,可以使用下列\_\_\_\_\_\_\_\_\_元件进行配置。 A.HTTP请求默认值 B.HTTP请求信息头管理器 C.用户参数 D.用户定义的变量 16. 不属于逻辑覆盖是\_\_\_\_\_\_\_ A.语句覆盖 B.条件覆盖 C.判定覆盖 D.判定-语句覆盖 P65 逻辑覆盖包含:语句覆盖、判断覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖 “判定 - 语句覆盖” 不属于逻辑覆盖法的标准类型。其他选项(语句覆盖、条件覆盖、判定覆盖)均为逻辑覆盖的常见类型,需注意区分术语的正确性。 17. \_\_\_\_\_\_\_\_\_\_\_主要用于参数配置测试。 A.场景法 B.状态迁移图法 C.正交实验设计法 D.等价类划分法 ### 填空(16选10) 1. 软件测试的目的是从软件开发、**软件质量** 、用户需求三个角度进行归纳。 2. 目标代码插桩的三种执行模式包括:即时模式、解释模式、 探测模式。 3. 在Postman 中,生成.HTML格式的测试报告 需要借助 newman-reporter-html插件。 4. 在黑马头条项目的测试过程中,Web自动化测试是通过 Selenium框架编写的代码完成的。 5. 验证软件单元是否符合软件需求与设计的测试称为 单元测试。 6. 使真、假分支均被执行是判定覆盖的作用。 7. 在单元测试阶段,主要用白盒测试技术进行测试。 8. 如果一个线程组中的多个请求的IP地址、端口号都相同,可以将请求的IP地址、端口号配置在HTTP请求默认值元件。 9. 参数化常用的数据文件格式有JSON和CSV。 10. 断言的目的是验证软件开发的预期结果与实际结果是否一致。 11. App的专项测试包括安装测试、卸载测试、升级测试、交互性测试、弱网测试和兼容性测试。 12. 性能测试指标中,响应时间是分析软件性能瓶颈的重要参数。 13. 压力测试的目的是测试系统在超负荷运行状态下的性能变化。 14. 项目测试过程包括设计测试用例、评审测试用例、执行手工测试和 Web 自动化测试。 15. 表示客户端请求成功的状态码是200。 16. 自动化测试金字塔策略包括单元测试、接口测试、UI 测试。 ### 判断(17选10) 1. 在 Jmeter 中,监听器可以保存测试结果供后续分析 ( √) 2. 显式等待比隐式等待更灵活,可以针对特定元素设置等待条件 ( √) 3. App 测试的特性包括设备多样式、系统多样性、平台多样性 ( ×)P89 4. 在Postman 中可以设置多组环境变量,但是只能设置一组全局变量 ( √ )P100 5. 验证软件单元是否符合软件需求与设计的测试称为验收测试 ( × ) 验证软件单元是否符合软件需求与设计的测试称为 **单元测试**。 6. 圈复杂度用来衡量一个模块判定结构的复杂程度 ( √ )P62 7. 数据驱动技术实现了数据和脚本的分离,提高了脚本的可维护性 ( √ ) 8. 性能测试只关注系统的稳定性,不关注系统的响应速度 ( × ) 性能测试不仅关注系统的**稳定性**,还重点关注系统的**响应速度**、吞吐量、资源利用率等多个性能指标; 9. 接口测试中常见的状态码404表示客户端请求有语法错误( × ) 404 状态码 表示 请求的资源不存在,即客户端请求的 URL 地址在服务器上未找到; 10. 软件测试要投入尽可能多的精力以达到100%的覆盖率( × ) 测试应注重**风险驱动和效果优先**,而非盲目追求100%覆盖率。 11. 白盒测试基于程序的内部逻辑结构进行测试,而不是程序的功能( √ ) 12. 满足条件覆盖,一定满足判定覆盖( × ) 条件覆盖(Condition Coverage) 要求程序中每个基本条件(子条件)都至少为真和假各执行一次; 判定覆盖(Decision Coverage) 要求每个判定(即整体条件表达式)结果为真和假各执行一次; 条件覆盖不一定保证判定覆盖,因为多个条件组合可能不触发判定的真或假全部情况。 13. 自动化测试无须人工手动执行,完全由自动化测试工具完成( × ) 自动化测试不是完全由工具自动完成,仍需人工配合。 14. 目标代码插桩需要重新编译、链接程序( √ ) 15. 自动化测试可以提高测试效率,却无法保证测试的有效性( √ )P167 16. QPS 和 TPS是等同的( × ) QPS(Queries Per Second) 指每秒查询次数,通常用于衡量系统处理请求的数量,尤其在数据库或搜索系统中常用; TPS(Transactions Per Second) 指每秒事务数,表示系统处理事务的能力,事务通常包含多个操作,是更广义的指标; 两者在某些场景下数值相近,但概念和应用侧重点不同,不完全等同。 17. 在 Postman 中,环境变量的优先级高于全局变量( √ ) ## 简答题(8选5) 1. 简述因果图法设计测试用例的步骤。 P38 (1)分析程序规格说明书中的描述内容,确定程序的输入与输出,即确定“原因”和“结果”。 (2)分析输入与输入之间、输入与输出之间的对应关系,将这些关系使用因果图表示出来。 (3)使用符号标记输入输出组合情况的约束关系。 (4)将因果图转换为决策表 (5)根据决策表设计测试用例。 分析程序规格说明书中的描述内容,确定程序的输入与输出; 分析输入与输入、输入与输出之间的对应关系,使用因果图表示出来; 使用符号标记输入输出组合情况的约束关系; 将因果图转换为决策表; 根据决策表设计测试用例。 2. 简述逻辑覆盖法包括哪些覆盖,这些覆盖之间存在怎样的关系? P65 它包括语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖共5种方法,这些覆盖的强度依次从低到高排序,高覆盖级别包含低覆盖级别的要求,但满足低级别覆盖不一定满足高级别。 包括语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖共五种方法,这些覆盖的强度依次从低到高排序,高覆盖级别包含低覆盖级别的要求,但满足低覆盖级别不一定满足高覆盖级别。 3. 简述接口测试的流程,除了执行接口测试用例、管理与跟踪接口缺陷,整理测试报告,还有哪些内容? p107课后习题 接口测试的流程还包括分析接口测试需求、解析并评审接口文档、编写测试计划、设计并评审测试用例、搭建测试环境、编写测试脚本、接口自动化持续集成测试(可选) 分析接口测试需求 解析并评审接口文档 编写测试计划 设计并评审测试用例 搭建测试环境 编写测试脚本 接口自动化持续集成测试 4. 简述性能测试的种类有哪些? P109 (1)基准测试(2)负载测试(3)压力测试(4)并发测试(5)配置测试(6)稳定性测试(7)容量测试 基准测试 负载测试 压力测试 并发测试 配置测试 稳定性测试 容量测试 5. 简述自动化测试的优点及适用条件。 P166 优点:(1)提高回归测试的效率(2)提高测试人员的利用率(3)提高测试的精确度(4)提高测试的便捷性 适用条件:(1)项目需求变动不频繁(2)项目进度压力不大,时间不紧迫(3)多种浏览器平台上可以重复运行相同的测试脚本 优点:1、提升回归测试的效率2、提高测试人员的利用率3、提高测试的精确度4、提高测试的便捷性 适用条件:1、项目需求变动不频繁2、项目进度压力不大、时间不紧迫3、多种浏览器平台上可以重复运行相同的测试脚本 6. 请简述正交实验设计法的测试用例设计步骤。 P45 (1)提取因子,构造因子-状态表 (2)加权设计,简化因子-状态表 (3)构建正交表,设计测试用例 7. 请简述 JMeter 中线程组的分类及其作用。 P118 (1)setUp线程组:一种特殊类型的线程组,用于执行测试前的初始化操作。 (2)tearDown线程组:一种特殊类型的线程组,用于执行测试结束之后的回收工作。 (3)线程组:普通线程组,一个线程组可以表示一个虚拟用户组,在线程组中可以设置线程数量,每一个线程都可以模拟一个虚拟用户。 8. 请简述自动化测试的优缺点。 P167 优点:(1)提高回归测试的效率(2)提高测试人员的利用率(3)提高测试的精确度(4)提高测试的便捷性 缺点:(1)不能提高测试的有效性(2)发现的缺陷比人工测试少且不容易发现新的缺陷 ## 应用题(3选2) ### (1)决策表法 某城市地铁票价规则如下:根据乘车站数、是否为高峰期(工作日7:00-9:00和17:00-19:00)以及是否使用优惠卡(如学生卡、优待卡)等因素计算。乘车站数分为三类:5站以内(≤5站)票价为2元,5至10站之间(5-10站)票价为5元,10站以上(>10站)票价为10元。若使用优惠卡,票价为普通票价的50%;若在高峰期乘车,票价在普通票价基础上上浮20%。请使用决策表法,按表1所示的格式设计测试用例,覆盖所有可能的条件组合。 表1 黑盒测试用例表 | | | | | | | --- | --- | --- | --- | --- | | **测试用例** | **高峰期** | **优惠卡** | **乘车站数范围** | **预期票价** | | **举例:****TC01** | **是** | **否** | **≤****X****站** | **X****元** | ![[image-a34a0a04.png]] 答: 测试用例基于如下条件组合设计: - 高峰期(是/否) - 优惠卡(是/否) - 乘车站数范围(≤5站、6-10站、>10站) 票价计算规则: - ≤5站:2元;6-10站:5元;>10站:10元 - 优惠卡:原价 × 0.5 - 高峰期:原价 × 1.2 - 同时满足两条件:原价 × 0.5 × 1.2 | | | | | | | --- | --- | --- | --- | --- | | 测试用例 | 高峰期 | 优惠卡 | 乘车站数范围 | 预期票价 | | TC01 | 否 | 否 | ≤5站 | 2元 | | TC02 | 否 | 否 | 6-10站 | 5元 | | TC03 | 否 | 否 | >10站 | 10元 | | TC04 | 否 | 是 | ≤5站 | 1元 | | TC05 | 否 | 是 | 6-10站 | 2.5元 | | TC06 | 否 | 是 | >10站 | 5元 | | TC07 | 是 | 否 | ≤5站 | 2.4元 | | TC08 | 是 | 否 | 6-10站 | 6元 | | TC09 | 是 | 否 | >10站 | 12元 | | TC10 | 是 | 是 | ≤5站 | 1.2元 | | TC11 | 是 | 是 | 6-10站 | 3元 | | TC12 | 是 | 是 | >10站 | 6元 | 过程: ![[image-9533f5f6.png]] ### (2)设计测试用例 班级制定了奖助学金评定办法,规则如下: 特困助学金(Q1):在库、无挂科、家庭经济特困。 困难助学金(Q2):在库、无挂科、家庭经济困难。 一般困难助学金(Q3):在库、无挂科、家庭经济一般困难。 励志奖学金(Q4):在库、无挂科、总成绩排名班级前3 且家庭经济状况不为特困。 无资助(Q5):不符合上述条件。 互斥优先级:Q4 > Q1 > Q2 > Q3 > Q5。 根据规则判断每名学生是否符合奖助学金评定条件,并填写对应的判定结果(Q1/Q2/Q3/Q4/Q5)。请按照表2所示的格式设计相应测试用例,满足条件组合覆盖,填写答案规范、清晰。表格中的每个字段必须填写完整,未提及的字段填“-”。 表2 白盒测试用例表 | | | | | | | | | | --- | --- | --- | --- | --- | --- | --- | --- | | **用例编号** | **用例描述** | **是否在库** | **家庭经济状况** | **总成绩排名** | **挂科** | **评定** **类型** | **评定结果** | | 举例:Case1 | 文字描述 | 是/否 | 一般困难 | 非前3/前3 | 有/无 | Q4 | 励志奖学金 | ![[image-5af1cda9.png]] 答: | **用例编号** | **用例描述** | **是否在库** | **家庭经济状况** | **总成绩排名** | **挂科** | **评定类型** | **评定结果** | | --- | --- | --- | --- | --- | --- | --- | --- | | Case01 | 励志奖学金(最高优先级) | 是 | 困难 | 前 3 | 无 | Q4 | 励志奖学金 | | Case02 | 励志奖学金(家庭经济一般困难) | 是 | 一般困难 | 前 3 | 无 | Q4 | 励志奖学金 | | Case02 | 特困助学金(优先级第二) | 是 | 特困 | 非前 3 | 无 | Q1 | 特困助学金 | | Case03 | 特困助学金(排名不影响) | 是 | 特困 | 前 3 | 无 | Q1 | 特困助学金 | | Case04 | 困难助学金 | 是 | 困难 | 非前 3 | 无 | Q2 | 困难助学金 | | Case05 | 一般困难助学金 | 是 | 一般困难 | 非前 3 | 无 | Q3 | 一般困难助学金 | | Case06 | 不在库(直接无资助) | 否 | - | - | - | Q5 | 无资助 | | Case07 | 有挂科(直接无资助) | 是 | - | - | 有 | Q5 | 无资助 | | Case8 | 家庭经济特困但有挂科 | 是 | 特困 | - | 有 | Q5 | 无资助 | | Case9 | 不在库但成绩前 3 | 否 | 困难 | 前 3 | 无 | Q5 | 无资助 | ### (3)流程图 ![[image-6ba80352.png]] ![[1749817324351-4e37c298.jpg]] 去年考的: ![[image-6e8482c3.png]] ## 去年题目 ![[a8d924d86e584937c70a8883c286575-10c56e24.jpg]] ![[4bad4d3f135184923ef85e68a95a431-6de2410c.jpg]] ![[image-99d54b3b.png]] ![[image-f9ade06d.png]]