理解记忆:
测试的两个目标:
- 向开发者和用户展示软件满足需求(有效性测试)
- 找出软件中的缺陷(缺陷测试)
集成和测试都需要桩和驱动程序
区分缺陷、错误、失败:
- 缺陷:系统代码有问题
- 错误:系统执行了缺陷代码发生的状态
- 失败:软件功能失效
程序单元是应用的最小的可测试部件
三种软件测试顺序:单元测试 -> 集成测试 -> 系统测试
测试的目标:发现尽可能多的缺陷,而不是全部缺陷
测试活动:计划;设计;执行;评价;
熟记部分:
软件测试的层次(根据测试对象划分):
单元测试:对程序单元进行正确性检验的测试工作
集成测试:
大爆炸式集成
增量式集成:
- 自顶向下:先集成和测试上层模块,下层模块用伪装相同接口的桩来代替,不断向下层集成模块
- 自底向上:先集成和测试下层模块,上层模块用伪装相同接口的驱动来代替,不断向上层集成模块
系统测试(测试全部单元接口):发生在集成测试之后,关注整个系统的行为,对整个系统进行缺陷的测试工作
名词解释:
黑盒测试(基于规格):将测试对象看作一个黑盒子,完全基于输入输出数据来判定测试对象的正确性
黑盒测试的方法:
- 等价类划分:将所有可能的输入域划分为若干个子集,然后从每个子集中选取具有代表性的数据作为测试用例(有效等价类:检验程序是否实现规格说明中所规定的功能和性能;无效等价类:检验系统应对意外的能力)
- 边界值分析:对等价类划分的补充,针对边界情况设计测试用例
- 决策表:用于设计逻辑复杂的测试用例
- 状态转换:用于处理输入输出与状态相关联的复杂测试对象
白盒测试(基于代码):把测试对象看作透明,按照测试对象内部的程序结构来设计测试用例
白盒测试的方法:
- 语句覆盖:每行程序代码至少执行一次
- 条件覆盖:每个判断的每个结果都至少满足一次
- 路径覆盖:每条独立的执行路径都至少执行一次
黑盒测试与白盒测试的对比:
白盒测试:
- 优点:覆盖率高;发现的缺陷多
- 缺点:测试开销大;不能检验需求规格
黑盒测试:
- 优点:可以检验需求规格;测试开销小,效率高
- 缺点:覆盖率低;发现的缺陷少