1 主题内容与适用范围
本文件规定了 软件测试的过程和管理方法。
本文件适用于软件 测试过程。
2 引用文件
3 控制要求与作业程序
3.1 工作程序
一个完整的测试过程包括:
1) 软件测试合同管理
a) 签订软件测试协议书;
b) 签订软件测试合同书
2) 软件测试过程管理
a) 软件需求说明审查;
b) 软件概要设计文档审查;
c) 软件详细设计文档审查;
d) 代码走查;
e) 测试用例设计;
f) 测试用例审查;
g) 测试程序设计和调试;
h) 测试结果审查;
i) 覆盖分析;
j) 测试过程中发现问题的处理;
k) 形成测试分析报告。
不同的项目,可根据项目的规模,可提供的资源、经费、软件等级选择部分或全部测试步骤。
3.2 控制要求
软件测试过程包括:
3.2.1 软件需求说明审查
测试中心按照软件需求说明审查要求对软件需求进行审查分析,检查软件需求的描述和解释是否完整、准确、一致、清晰以及可测试性。
这项活动的主要任务是对照录A中的软件需求检查单检查软件需求是否存在缺陷。
3.2.2 软件概要设计文档审查
测试中心按照软件概要设计文档审查要求对软件概要设计文档进行审查分析,分析设计是否与需求定义一致,需求是否都被满足了等。
这项活动的主要任务是对照附录B中的软件概要设计检查单检查软件概要设计是否存在缺陷。
3.2.3 软件详细设计文档审查
测试中心按照软件详细设计文档审查要求对软件详细设计文档进行审查分析,分析详细设计是否与概要设计一致,控制流和数据流设计是 否正确等。
这项活动的主要任务是对照附录C中的软件详细设计检查单检查软件设计是否存在缺陷。
3.2.4 代码走查
对代码的审查着重于分析实现是否正确、完备。这项活动的主要任务是:
a)若有适当的静态分析工具,先进行代码的静态分析;
b)按照代码走查的步骤和要求完成代码检查。
3.2.5 测试用例设计
3.2.5.1 基于需求的测试用例
根据软件需求说明设计合理的测试用例。测试用例应包括正常范围测试用例和异常范围测试用例。
3.2.5.1.1 正常范围测试用例
正常范围测试用例包括:
a)应该用有效等价类和边界值方法来测试实型和整型输入变量。
b)对与时间有关的功能,如滤波器、积分器和延时器,应该用代码的多次迭代来检查该功能在上下文环境中的特性。
c)对于状态转换,应开发能在正常运行中遍历各种可能的转换的测试用例。
d)对于用逻辑方程表达的软件需求,正常范围测试用例应能验证变量的使用和布尔算符。
3.2.5.1.2 异常范围测试用例:
异常范围测试用例的目标是要验证软件响应异常输入和条件的能力。异常范围测试用例包括:
a)用无效值的等价类来测试实型和整型量。
b)在异常状态下测试系统的初始化。
c)确定输入数据的可能的失效模式,特别是来自外部系统的复杂的数字数据串。
d)对于循环计数是一个计算值的循环,应开发企图计算超出范围的循环计数值的测试用例,然后演示与循环有关程序的鲁棒性。
e)检查用于超出帧时间的保护机制是否能正确响应。
f)对与时间有关的功能,如滤波器、积分器和延时器,应开发算术溢出保护机制的测试用例。
g)对于状态转换,应开发能引发软件需求不允许的转换的测试用例。
3.2.5.1.3 结构覆盖的测试用例
结构覆盖测试与基于需求的测试用例是一套测试用例,对于不同的级别的软件应达到不同级别的结构覆盖率。
a)关键软件要达到语句覆盖、判定覆盖和更改的判定/条件覆盖;
b)重要软件要达到语句覆盖和判定覆盖;
c)一般软件要达到语句覆盖。
3.2.6 测试用例审查
测试用例审查包括:
a)按照软件同仁审查步骤组织审查会;
b)对照测试用例检查单检查测试用例是否符合设计要求,是否存在缺陷。
3.2.7 测试程序设计和调试
测试中心按照软件开发计划/软件测试计划中指定的测试程序设计方法设计程序。
测试程序要在宿主机、仿真机或目标机环境下进行调试。
3.2.8 测试程序和测试结果审查
测试中心在测试程序调试结束后,需执行测试程序保存运行结果。
按照软件同仁审查过程对完成的测试程序和测试结果进行审查。
该项审查的主要任务是:
a)按照软件审查过程组织审查;
b)对照测试程序和测试结果检查单检查是否存在缺陷。
3.2.9 覆盖分析
覆盖分析分两步进行:
a)基于需求的覆盖分析;
b)结构覆盖分析。
3.2.9.1 需求覆盖分析
基于需求的覆盖分析应表明:
a)每一项需求都有测试用例。
b)测试用例满足正常和鲁棒测试准则。
3.2.9.2 结构覆盖分析
结构覆盖分析应表明:
a)基于需求的测试程序是否覆盖了所有的代码结构。
b)未执行的代码结构可能是下列原因造成的:
基于需求的测试用例或程序的不足;
软件需求的缺陷;
代码中存在死码;
代码中有未激活的代码;
覆盖分析也可参照覆盖分析检查单进行。
3.2.10 测试过程中发现问题的处理
研制任务组在前述各审查、分析、测试步骤中,若发现被测软件(报告需求规格说明、设计文档和代码)有问题,应:
a)填写被测软件问题报告。
b)提交给专门的问题报告处理组织。
c)项目开发组应组织有关方面专家,研究对发现问题的处理(形成记录)。
d)程序设计者实施更改。
e)回归测试。
f)形成软件资料交接清单。
3.2.11 软件测试报告
整个测试过程的最后步骤是生成软件测试报告。软件测试报告是对整个测试过程的总结,包括下列内容:
a)使用的资源环境;
b)测试方法;
c)测试用例和测试程序;
d)测试结果;
e)问题报告;
f)对被测软件问题的分析
本文件规定了 软件测试的过程和管理方法。
本文件适用于软件 测试过程。
2 引用文件
3 控制要求与作业程序
3.1 工作程序
一个完整的测试过程包括:
1) 软件测试合同管理
a) 签订软件测试协议书;
b) 签订软件测试合同书
2) 软件测试过程管理
a) 软件需求说明审查;
b) 软件概要设计文档审查;
c) 软件详细设计文档审查;
d) 代码走查;
e) 测试用例设计;
f) 测试用例审查;
g) 测试程序设计和调试;
h) 测试结果审查;
i) 覆盖分析;
j) 测试过程中发现问题的处理;
k) 形成测试分析报告。
不同的项目,可根据项目的规模,可提供的资源、经费、软件等级选择部分或全部测试步骤。
3.2 控制要求
软件测试过程包括:
3.2.1 软件需求说明审查
测试中心按照软件需求说明审查要求对软件需求进行审查分析,检查软件需求的描述和解释是否完整、准确、一致、清晰以及可测试性。
这项活动的主要任务是对照录A中的软件需求检查单检查软件需求是否存在缺陷。
3.2.2 软件概要设计文档审查
测试中心按照软件概要设计文档审查要求对软件概要设计文档进行审查分析,分析设计是否与需求定义一致,需求是否都被满足了等。
这项活动的主要任务是对照附录B中的软件概要设计检查单检查软件概要设计是否存在缺陷。
3.2.3 软件详细设计文档审查
测试中心按照软件详细设计文档审查要求对软件详细设计文档进行审查分析,分析详细设计是否与概要设计一致,控制流和数据流设计是 否正确等。
这项活动的主要任务是对照附录C中的软件详细设计检查单检查软件设计是否存在缺陷。
3.2.4 代码走查
对代码的审查着重于分析实现是否正确、完备。这项活动的主要任务是:
a)若有适当的静态分析工具,先进行代码的静态分析;
b)按照代码走查的步骤和要求完成代码检查。
3.2.5 测试用例设计
3.2.5.1 基于需求的测试用例
根据软件需求说明设计合理的测试用例。测试用例应包括正常范围测试用例和异常范围测试用例。
3.2.5.1.1 正常范围测试用例
正常范围测试用例包括:
a)应该用有效等价类和边界值方法来测试实型和整型输入变量。
b)对与时间有关的功能,如滤波器、积分器和延时器,应该用代码的多次迭代来检查该功能在上下文环境中的特性。
c)对于状态转换,应开发能在正常运行中遍历各种可能的转换的测试用例。
d)对于用逻辑方程表达的软件需求,正常范围测试用例应能验证变量的使用和布尔算符。
3.2.5.1.2 异常范围测试用例:
异常范围测试用例的目标是要验证软件响应异常输入和条件的能力。异常范围测试用例包括:
a)用无效值的等价类来测试实型和整型量。
b)在异常状态下测试系统的初始化。
c)确定输入数据的可能的失效模式,特别是来自外部系统的复杂的数字数据串。
d)对于循环计数是一个计算值的循环,应开发企图计算超出范围的循环计数值的测试用例,然后演示与循环有关程序的鲁棒性。
e)检查用于超出帧时间的保护机制是否能正确响应。
f)对与时间有关的功能,如滤波器、积分器和延时器,应开发算术溢出保护机制的测试用例。
g)对于状态转换,应开发能引发软件需求不允许的转换的测试用例。
3.2.5.1.3 结构覆盖的测试用例
结构覆盖测试与基于需求的测试用例是一套测试用例,对于不同的级别的软件应达到不同级别的结构覆盖率。
a)关键软件要达到语句覆盖、判定覆盖和更改的判定/条件覆盖;
b)重要软件要达到语句覆盖和判定覆盖;
c)一般软件要达到语句覆盖。
3.2.6 测试用例审查
测试用例审查包括:
a)按照软件同仁审查步骤组织审查会;
b)对照测试用例检查单检查测试用例是否符合设计要求,是否存在缺陷。
3.2.7 测试程序设计和调试
测试中心按照软件开发计划/软件测试计划中指定的测试程序设计方法设计程序。
测试程序要在宿主机、仿真机或目标机环境下进行调试。
3.2.8 测试程序和测试结果审查
测试中心在测试程序调试结束后,需执行测试程序保存运行结果。
按照软件同仁审查过程对完成的测试程序和测试结果进行审查。
该项审查的主要任务是:
a)按照软件审查过程组织审查;
b)对照测试程序和测试结果检查单检查是否存在缺陷。
3.2.9 覆盖分析
覆盖分析分两步进行:
a)基于需求的覆盖分析;
b)结构覆盖分析。
3.2.9.1 需求覆盖分析
基于需求的覆盖分析应表明:
a)每一项需求都有测试用例。
b)测试用例满足正常和鲁棒测试准则。
3.2.9.2 结构覆盖分析
结构覆盖分析应表明:
a)基于需求的测试程序是否覆盖了所有的代码结构。
b)未执行的代码结构可能是下列原因造成的:
基于需求的测试用例或程序的不足;
软件需求的缺陷;
代码中存在死码;
代码中有未激活的代码;
覆盖分析也可参照覆盖分析检查单进行。
3.2.10 测试过程中发现问题的处理
研制任务组在前述各审查、分析、测试步骤中,若发现被测软件(报告需求规格说明、设计文档和代码)有问题,应:
a)填写被测软件问题报告。
b)提交给专门的问题报告处理组织。
c)项目开发组应组织有关方面专家,研究对发现问题的处理(形成记录)。
d)程序设计者实施更改。
e)回归测试。
f)形成软件资料交接清单。
3.2.11 软件测试报告
整个测试过程的最后步骤是生成软件测试报告。软件测试报告是对整个测试过程的总结,包括下列内容:
a)使用的资源环境;
b)测试方法;
c)测试用例和测试程序;
d)测试结果;
e)问题报告;
f)对被测软件问题的分析