background image

软件可靠性测试方法新探

软件可靠性测试方法在对软件因长期使用软件性能下降,甚至完全失效这种严重影响

软件可靠性的测试存在不足的现状,通过对软件自身特性以及软件可靠性估算面临问题的
深入分析和研究,结合传统的软件可靠性测试方法,提出了基于操作剖面的软件可靠性压
力测试思想和操作剖面、压力测试点相互结合、互为补充的软件可靠性测试方法,并给出了
软件可靠性测试新方法实施的技术途径。该思想与方法既是对传统软件可靠性测试方法的一
个大胆探索,也是对软件可靠性测试方法的一个有益补充。
  关键词:软件缺陷

;软件可靠性;压力测试;

  

0、引言

  软件在计算机发展的不同阶段有不同的认识。计算机发展的初期,硬件在计算机应用中
起决定作用,而软件,即程序,甚至是机器指令程序或汇编程序,是处于从属地位的。软件
开发是以个体手工的方式进行,设计是人的智力行为,软件质量完全取决于个人的智力和
编程技巧。随着计算机的发展,人们认识到软件使得计算机的计算能力大大提高,应用能力
大大增强。于是在开发计算机应用系统时,硬件和软件同时考虑,而且开始编制应用支撑程
序,如操作系统、数据库等。这时的生产方式是以小作坊的形式进行。到了后来,社会的各种
应用需要对计算机提出了更高和更特别的要求,很多大型软件系统开发的工作量高达数千
人年,指令数百万条或更多,如美国宇航飞船的软件系统有

4000 万条语句。而今,计算机

的应用面越来越广,应用规模越来越大,应用过程越来越复杂,软件在计算机系统中的比
重越来越大,软件成本在总成本中的比重正在逐年上升,而且这种趋势还在增加。这时人们
感到传统的软件生产方式已不适应计算机发展的需要,需要把工程学的基本原理和方法引
入到软件开发过程中,即软件工程思想。
  事实上,无论计算机技术如何发展,计算机中的软件是人通过智力劳动产生的,其软
件产品是人的思维结果,是一个逻辑部件,而不是一个物理部件。软件开发水平很大程度上
取决于软件人员的教育、训练和经验的积累。由此软件具有与硬件或传统工业产品不同的特
点:
  

(1)软件是一种逻辑实体,具有抽象性,人们必须通过观察、分析、思考、判断,才能了

解它的功能、性能等特性

;

  

(2)软件没有明显的制造过程,一旦研制开发成功,就可以大量拷贝同一内容的副本。

所以对软件的质量控制,必须在软件开发方面下工夫

;

  

(3)软件在使用过程中,没有磨损、老化的问题,但为了适应硬件、环境以及需求的变化

而进行修改,这些修改常常会引入错误,导致软件失效率升高,软件质量降低。如果修改成
本太高,质量风险太大,软件就会被抛弃

;

  

(4)软件对硬件和环境有着不同程度的依赖性,由此带来了软件移植的问题;

  

(5)软件的开发至今尚未完全摆脱手工作坊式的开发方式,生产效率低。这对复杂软件,

特别是今后会更加复杂的软件带来了是否能够控制其复杂性和时效性的问题

;

  

(6)软件开发需要投入大量、高强度的脑力劳动,成本非常高,风险也大。现在软件的开

销已大大超过了硬件的开销

;