图2 软件可靠性增长过程

图3 软件可靠性验证过程

  3 某故障诊断专家系统软件可靠性测试
  《××飞机起落架故障诊断专家系统》软件是一个使用“专家系统”方法对××飞机起落架进行故障诊断的软件。该软件是用 VC+ +开发的,源代码近一万条。我们在该软件调试的后期对其进行了软件可靠性测试,主要工作包括,运行剖面的构造和测试用例的生成,测试运行及数据收集,可靠性数据分析。
  3.1 运行剖面的构造及测试用例生成
  根据被测软件功能的说明,结合软件的有关文档,以及对相关概率的估计,可构造软件的系统模式剖面、功能剖面和运行剖面。
  运行剖面的构造是一个自顶向下的层次结构。通过不断细化被测软件的输入空间,即从划分系统模式剖面到功能剖面,直到各功能输入变量的取值区间在概率空间的划分,形成终的运行剖面。这里一个运行如下规定:运行是由完成某一功能的一系列输入变量的某一取值区间的有序组合。各运行在概率空间的划分构成运行剖面。
  测试用例是根据运行剖面生成的,完成对某一功能进行测试,按顺序输入到被测软件的一系列输入变量值的有序组合。
  由于运行剖面描述了完成某一功能输入变量的取值区间,通过两次随机抽样,可以得到一个测试用例。第一次抽样选择运行,第二次抽样在每一个输入变量取值区间内随机抽取输入变量的具体取值。将其按照测试过程中的输入顺序组合起来形成测试用例。一个测试用例的具体形式如下:

  3.2 测试运行及数据收集
  按照上述方法生成了400个测试用例。在一台配置为Pentium 586 at 133 MHz,内存16 MB,操作系统为Windows 95中文版环境的计算机上,通过手动方式将测试用例输入到被测软件,利用一个为配合这种软件可靠性测试方法而开发的数据辅助收集软件,采集测试运行的时间与失效信息,包括测试用例序号、测试日期、测试开始时刻、测试结束时刻/失效发生时刻、测试运行时间、累计运行时间、失效现象等。通过测试记录下了60次失效。收集到的失效数据如表1所示,数据从左至右,从上至下,为每次失效发生的累计运行时间(执行时间)。

  表1 某软件可靠性测试失效数据   单位:s