完整的测试过程包括测试前的检查、设计测试用例、测试实施、可靠性数据收集和编写测试报告5个步骤,下面逐一对这5个步骤进行说明。
1.测试前的检查
在进行应用软件的可靠性测试前有必要检查软件需求与研制任务书是否一致,检查所交付程序和数据以及相应的软件支持环境是否符合要求,检查文档与程序的一致性,检查软件研制过程中形成的文档是否齐全、文档的准确性和完整性以及是否通过了有关评审。
根据软件行业的有关标准,我们知道,软件研制过程中形成的文档共有十六种:《系统和段设计文件》、《软件开发计划》、《软件需求规格说明》、《接口需求规格说明》、《接口设计文档》、《软件设计文档》、《软件产品规格说明》、《版本说明文档》、《软件测试计划》、《软件测试说明》、《软件测试报告》、《计算机系统操作员手册》、《软件用户手册》、《软件程序员手册》、《固件保障手册》、《计算机资源综合保障手册》。
应该注意:这里的《软件测试计划》、《软件测试说明》和《软件测试报告》是指研制方在研制过程中进行测试所形成的测试文档。原则上若软件规模不太大,某些文档可以合并。
这些检查虽然增加了工作量,但对于在测试早期发现错误和提高软件的质量是非常必要的。
2.设计测试用例
设计测试用例是针对特定功能或组合功能设计测试方案,并编写成文档。测试用例的选择既要有一般情况,也应有极限情况以及大和小的边界值情况。因为测试的目的是暴露应用软件中隐藏的缺陷,所以在设计选取测试用例和数据时要考虑那些易于发现缺陷的测试用例和数据,结合复杂的运行环境,在所有可能的输入条件和输出条件中确定测试数据,来检查应用软件是否都能产生正确的输出。
一个典型的测试用例应该包括下列详细信息:
a.测试目标;
b.待测试的功能;
c.测试环境及条件;
d.测试日期;
e.测试输入;
f.测试步骤;
g.预期的输出;
h.评价输出结果的准则。
所有的测试用例应该经过专家评审才可以使用。
设计与选取测试用例集的第一步是对测试用例进行描述,这种描述是否权威、完整、可理解与规范化,则决定了该测试用例能否或多大程度上可以被操作人员、软件研制人员和试验鉴定人员所理解接受。所以,规范化的测试用例描述在软件测试与评估中具有重要的作用。
3.测试实施
做好上述准备工作后,可以实施测试了。研制方交付的任何软件文档中与可靠性质量特性有关的部分,包括产品说明书、用户文档、程序以及数据都应当按照需求说明和质量需求进行测试。在项目合同、需求说明书和用户文档中规定的所有配置情况下,程序和数据都必须进行测试。
在测试中,可以考虑进行“强化输入”,即输入比正常输入更恶劣(合理程度的恶劣)的输入。如果软件在强化输入下可靠,只能说明比正规输入下可靠得多。
为了获得更多的可靠性数据,应该采用多台计算机同时运行软件,以增加累计运行时间。
4.可靠性数据收集
软件可靠性数据是可靠性评估的基础。应该建立软件错误报告、分析与纠正措施系统。按照相关标准的要求,制定和实施软件错误报告和可靠性数据收集、保存、分析和处理的规程,完整、准确地记录软件测试阶段的软件错误报告和收集可靠性数据。
用时间定义的软件可靠性数据可以分为四类:1、失效时间数据,记录发生一次失效所累积经历的时间;2、失效间隔时间数据,记录本次失效与上一次失效间的间隔时间;3、分组数据,记录某个时间区内发生了多少次失效;4、分组时间内的累积失效数,记录某个区间内的累积失效数。这四类数据可以互相转化。
每个测试记录必须包含充分的信息,包括:
a.测试时间;
b.含有测试用例的测试计划或测试说明;
c.所有与测试有关的测试结果,包括所有测试时发生的故障;
d.参与测试的个人身份。
5.编写测试报告
测试活动结束后必须编写《软件可靠性测试报告》,对测试项及测试结果在测试报告中加以总结归纳。编写时可以参考GJB 438A-97中提供的《软件测试报告》格式,并应根据情况进行剪裁。测试报告应具备下列内容:
a.产品标识;
b.使用的配置(硬件和软件);
c.使用的文档;
d.产品说明、用户文档、程序和数据的测试结果;
e.与需求不相符的项的列表;
f.测试的终日期。
这种规范化的过程管理控制有利于获得真实有效的数据,为终得到客观的评估结果奠定基础。