background image

  软件可靠性测试是指为了保证和验证软件的可靠性要求而对软件进行的测试。其采用的
是按照软件运行剖面(对软件实际使用情况的统计规律的描述)对软件进行随机测试的测
试方法。通过软件可靠性测试可以达到以下目的:

 

  (

1)有效地发现程序中影响软件可靠性的缺陷,从而实现可靠性增长:软件可靠性是

“在规定的时间内,规定的条件下,软件不引起系统失效的能力,其概率度量称为软件可

靠度。

”软件的“规定的条件”主要包括相对不变的条件和相对变化的条件,相对不变的条件

如计算机及其操作系统;相对变化的条件是指输入的分布,用软件的运行剖面来描述。按照
软件的运行剖面对软件进行测试一般先暴露在使用中发生概率高的缺陷,然后是发生概率
低的缺陷。而高发生概率的缺陷是影响产品可靠性的主要缺陷,通过排除这些缺陷可以有效
地实现软件可靠性的增长。

 

  (

2)验证软件可靠性满足一定的要求:通过对软件可靠性测试中观测到的失效情况进

行分析,可以验证软件可靠性的定量要求是否得到满足。

 

  (

3)估计、预计软件可靠性水平:通过对软件可靠性测试中观测到的失效数据进行分

析,可以评估当前软件可靠性的水平,预测未来可能达到的水平,从而为开发管理提供决
策依据。软件可靠性测试中暴露的缺陷既可以是影响功能需求的缺陷也可以是影响性能需求
的缺陷。

 

  

2.3 软件可靠性测试方法 

  

2.3.1 可靠性测试策略选择 

  从测试的策略来讲,可靠性测试的方法可分为两种:白盒测试和黑盒测试。

 

  白盒测试是一种按照程序内部的逻辑结构和编码结构设计并执行测试用例的测试方法
又称为基于代码的测试,采用这种测试方法,测试人员必须看到被测的源程序,分析程序
的内部结构,从检查程序的逻辑着手设计测试用例。一般来说,白盒测试根据覆盖要求设计
测试用例,设计的测试用例要完成语句覆盖、判定覆盖、条件覆盖、判定

/条件覆盖,并达到

一定的覆盖比例要求。白盒测试需要将被测程序在测试环境下运行,并能在运行过程中跟踪
程序的执行路径。

 

  黑盒测试又称功能测试。在进行黑盒测试时,将软件看作一个黑盒,不考虑程序的内部
结构,只需知道软件的输入、输出对应关系或者软件的功能,因此,黑盒测试是从客户角度
出发的测试。它根据开发方提供的软件需求规格说明书来设计测试用例,按照测试用例的要
求运行被测程序。黑盒测试着重于验证软件功能和性能的正确性,常见的测试项目包括功能
测试、性能测试、边界测试、余量测试以及强度测试等。显然,如果软件的外部特性本身存在
问题,仅仅通过黑盒测试是无法发现的。

 

  软件可靠性测试从理论上讲是一种黑盒测试,因为它不需要了解程序的内部结构以及
如何实现等问题,它是面向需求、面向使用的测试,但从验证编码的正确性方面来讲,白盒
测试又是可靠性测试中不可或缺的一部分,因此,要提高软件可靠性,最好采用以黑盒测
试为主,结合白盒测试的方法进行互补测试。

 

  

2.3.2 基于功能剖面的可靠性测试方法 

  软件的可靠性是视使用者如何对软件进行操作而定的,同一个软件,使用者的操作方
式不同,软件的可靠性也会随之产生变化。因此,用户使用软件的方式对于软件可靠性测试
十分重要。而用户使用软件的方式就是所谓的软件功能剖面。任何一个软件系统在使用过程
中,各个软件功能剖面的使用概率是不同的,因此,在进行可靠性测试时,首先要确定软
件的功能剖面,由软件功能剖面来指导可靠性测试工作。

 

  测试方案的确定首先需要确定软件的功能剖面。通过对使用者使用软件的实际情况以及
使用者给出的经验数据进行分析,随后确定每条功能路径在系统中的使用概率,并以此为
依据随机选取一定数量的测试用例,最终确定测试方案。