5. 平行运行
7.2.5 测试阶段的信息流 输入信息有两类:
软件配置,包括需求说明书、设计说明书和源程序清单等; 测试配置,包括测试计划和测试方案。 7.3 单元测试
单元测试集中检测模块;
单元测试和编码属于软件过程的同一个阶段;
可以应用人工测试和计算机测试这样两种不同类型的测试方法; 单元测试主要使用白盒测试技术,对多个模块的测试可以并行地进行。 7.3.1 测试重点 模块接口 局部数据结构 重要的执行通路 出错处理通路 边界条件 7.3.2 代码审查
由审查小组正式进行测试称为代码审查;
一次审查会上可以发现许多错误,可以减少系统验证的总工作量。
7.3.3 计算机测试
驱动程序是一个“主程序”,它接收测试数据,传送给被测试的模块,并且印出有关的结果。存根程序代替被测试的模块所调用的模块。它使用被它代替的模块的接口,可能做最少量的数据操作,印出对入口的检验或操作结果,并且把控制归还给调用它的模块。
7.4 集成测试
集成测试是测试和组装软件的系统化技术,主要目标是发现与接口有关的问题。
由模块组装成程序时有两种方法: 7.4.3 不同集成测试策略的比较
混合策略:
改进的自顶向下测试方法 混合法 7.4.4 回归测试 7.5 确认测试
确认测试也称为验收测试,它的目标是验证软件的有效性。 7.5.3 Alpha和Beta测试
Alpha测试是在受控的环境中进行的。
Beta测试是软件在开发者不能控制的环境中的“真实”应用。 1.接口测试 2.路径测试 3.功能测试 4. 健壮性测试 5. 性能测试 6. 用户界面测试 7. 信息安全测试 8. 压力测试 9. 可靠性测试
10. 安装/反安装测试确认测试也称为验收测试,它的目标是验证软件的有效性。Alpha测试是在受控的环境中进行的。
Beta测试是软件在开发者不能控制的环境中的“真实”应用。 4.接口测试 5.路径测试 6.功能测试 4. 健壮性测试 5. 性能测试
6. 用户界面测试 7. 信息安全测试 8. 压力测试 9. 可靠性测试 10. 安装/反安装测试 7.6 白盒测试技术
7.6.1 逻辑覆盖 语句覆盖
判定覆盖:比语句覆盖强,但对程序逻辑的覆盖程度仍不高。
条件覆盖:判定覆盖不一定包含条件覆盖,条件覆盖也不一定包含判定覆盖。 判定/条件覆盖:有时判定/条件覆盖也并不比条件覆盖更强。
条件组合覆盖:条件组合覆盖标准的测试数据并不一定能使程序中的每条路径都执行到。
6. 点覆盖(语句覆盖标准相同 7. 边覆盖(判定覆盖一致 8. 路径覆盖
7.6.2 控制结构测试覆盖 1. 基本路径测试
基本路径测试是Tom McCabe提出的一种白盒测试技术。 首先计算程序的环形复杂度;
以该复杂度为指南定义执行路径的基本集合; 2.条件测试
从该基本集合导出的测试用例可保证程序中的每条语句至少执行一次,而且每个条件在执行时都将分别取真、假两种值。
3. 循环测试
循环测试是一种白盒测试技术,它专注于测试循环结构的有效性。 在结构化的程序中通常只有3种循环,即简单循环、串接循环和嵌套循环。 7.7 黑盒测试技术 7.7.1 等价划分 7.7.2 边界值分析 7.7.3 错误推测 7.9 软降可靠性 7.9.1 基本概念 软件可靠性:
程序在给定的时间间隔内,按照规格说明书的规定成功地运行的概率。