Skip to content

考点清单

  • [x] 测试原则(尽早测试/非开发者测试/正向+反向用例)
  • [x] 静态测试 vs 动态测试
  • [x] 黑盒测试 vs 白盒测试
  • [x] 测试阶段(单元/集成/确认/系统/配置项/回归)
  • [x] Alpha/Beta/验收测试区别
  • [x] 黑盒测试用例设计(等价类/边界值/错误推测/因果图)
  • [x] 白盒测试用例设计(语句/判定/条件/判定条件组合/路径覆盖)
  • [x] 调试方法(蛮力法/回溯法/原因排除法)
  • [x] McCabe 环路复杂度计算(m-n+2)
  • [x] 软件度量(外部属性/内部属性)

笔记

一、测试原则 ★

测试是为了发现错误而执行程序的过程,成功的测试是发现了至今尚未发现的错误的测试。

核心原则:

  • 应尽早并不断进行测试
  • 测试工作应避免由原开发软件的人或小组承担
  • 设计测试方案时,要确定输入数据和预期的输出结果
  • 既包含有效合理的用例,也包含不合理失效的用例
  • 检验程序是否做了该做的事,且是否做了不该做的事
  • 严格按照测试计划进行,妥善保存测试计划和测试用例
  • 测试用例可以重复使用或追加测试

二、测试方法分类 ★

对比维度静态测试动态测试
方式被测程序不在机器上运行实际运行程序
手段人工检测 + 计算机辅助静态分析白盒测试 + 黑盒测试
文档测试检查单形式进行
代码测试桌前检查、代码审查、代码走查
效果有效发现 30%-70% 逻辑设计和编码错误

黑盒测试 vs 白盒测试:

对比黑盒测试白盒测试
别名功能性测试结构性测试
特点不了解代码结构明确代码流程
依据根据功能设计用例根据代码逻辑设计用例
目标测试软件功能进行用例覆盖

三、测试阶段 ★

阶段测试对象测试依据目的
单元测试可独立编译的模块/类软件详细设计说明书模块功能正确性
集成测试模块间接口软件概要设计文档检查模块间接口关系
确认测试完整软件SRS验证功能/性能与用户需求一致
系统测试完整的集成计算机系统用户需求/开发合同验证与系统正确连接,满足设计要求
配置项测试软件配置项SRS检验与 SRS 一致性
回归测试变更后的软件验证变更正确性+不影响原有功能

确认测试按用户参与程度:

类型说明
内部确认测试开发组织内部按 SRS 测试
Alpha 测试用户在开发环境下测试
Beta 测试用户在实际使用环境下测试,通过后交付
验收测试交付前以用户为主的测试,依据 SRS/合同

系统测试最重要的工作是功能测试与性能测试。功能测试主要用黑盒测试,性能测试指标:响应时间、吞吐量、并发用户数、资源利用率。


四、测试用例设计 ★

黑盒测试用例

方法说明
等价类划分按特性归类,每类选取一个代表。有效等价类:尽可能多覆盖;无效等价类:每次仅覆盖一个
边界值划分取范围两端值及范围外相邻值(如 0-150 → 0, 150, -1, 151)
错误推测凭经验推测可能出问题的地方
因果图由结果反推原因

白盒测试用例(覆盖级别从低→高)

级别说明
语句覆盖 SC所有语句至少执行一遍,覆盖层级最低
判定覆盖 DC所有判断的真假分支都覆盖一次
条件覆盖 CC每个判断条件内的每个独立条件都执行一遍真和假
判定条件组合覆盖 CDC同时满足判定覆盖和条件覆盖
路径覆盖所有可行路径都覆盖,覆盖层级最高

覆盖层级口诀:语句<判定<条件<判定条件组合<路径


五、调试

测试是发现错误,调试是找出错误的代码和原因

调试方法:

方法说明
蛮力法全面排查
回溯法从出错位置往回找
原因排除法找出所有可能原因逐一排除,含演绎法、归纳法、二分法

调试后需要进行回归测试


六、McCabe 环路复杂度

环路复杂度 = m - n + 2,其中 m = 有向边数(分支连线),n = 节点数(语句框)。


七、软件度量

属性类型说明特点
外部属性面向管理者和用户,如性能指标可直接测量
内部属性软件产品本身的属性,如可靠性只能间接测量