《测试原则和方法》
- 测试原则
- 测试:为了发现错误而执行程序的过程
- 成功的测试:发现了至今尚未发现的错误的测试
- 测试方法
- 静态测试(有效发现30%-70%的错误)
a. (文档)检查单
b. (代码)桌前检查(根据文档要求)、代码审查(技术专家)、代码走查(开会/测试用例/技术人员模拟计算机)
- 动态测试
a. 黑盒测试(功能性测试)
b. 白盒测试(结构性测试)
c. 灰盒测试
《测试阶段》
- 单元测试(模块测试):依据 软件详细设计说明书
- 集成测试:依据 软件概要设计文档
- 确认测试:
a. 内部测试(完全无参与)
b. Alpha测试(开发环境)
c. Beta测试(实际环境)
d. 验收测试(实际环境)
- 回归测试:发现错误改正错误
a. 错误是否被改正
b. 错误是否影响到其他功能(最致命)
- 测试策略
- 自底向上:较早验证了底层模块
- 自顶向下:较早验证了系统的主要控制和判断点
- 三明治:二者优点;测试工作量大
《测试用例的设计》
- 黑盒测试
- 等价类划分、边界值划分、错误推测、因果图
- 等价类划分的两个原则:
a. 尽可能多地覆盖尚未被覆盖的有效等价类
b. 仅覆盖一个尚未被覆盖的无效等价类
- 白盒测试
- 语句覆盖(SC):所有语句都被执行一遍;覆盖层级最低 ——> 真,真
- 判定覆盖(DC):所有判断语句的条件的真假分支都要覆盖一次 ——> 真,真 / 假,真
- 条件覆盖(CC):每一个判断条件内的每一个独立条件都要执行一遍真和假
- 满足了条件覆盖,不一定满足了判定覆盖
- 条件判定组合覆盖(CDC):同时满足判定覆盖和条件覆盖
- 路径覆盖:∴可行路径都覆盖了;覆盖层级最高
《调试》
- 调试:找出错误的代码和原因
- 找出错误 ——> 改正 ——> 回归测试
- (方法)蛮力法、回溯法、原因排除法
- 归纳法:从特殊到一般
- 演绎法:从一般到特殊
《软件度量》
- (外部属性)面向管理者和用户的属性 ——> 性能指标 ——> 直接测量
- (内部属性)软件产品本身的属性 ——> 可靠性 ——> 间接测量
- McCabe度量法
- 记录有向图的环路复杂度
- 边数m,节点数n,复杂度为 m - n + 2