稳定性测试,也叫可靠性测试(reliabilitytesting),是指连续运行被测系统,检查系统运行时的稳定程度。
通常用MTBF(Mean Time BetweenFailure,错误发生的平均间隔时间)来衡量系统的稳定性,MTBF越大,系统的稳定性越强。
稳定性测试的方法:即采用24X7(24小时X7天)的方式让系统不间断运行,至于具体运行多少天,是一周还是一个月,视项目的实际情况而定。
软件可靠性是软件的固有质量属性之一,软件可靠性用于衡量软件在运行过程中的可靠程度。软件可靠性概念的是在1983年被固定下来的,沿用至今的定义是“在规定的条件下,在规定的时间内,软件不引起系统失效的概率”。从软件可靠性的定义得知,软件可靠性本身是一种概率的表达,这是因为软件失效的产生具有一定的随机性。另外,软件可靠性是在“规定条件”和“规定时间内”定义的,这也就是说,软件的可靠性可以从环境、时间两个大的方面来度量。从时间的角度,软件可靠性体现为软件持续运行的时间;从环境的角度,软件的可靠性和软件运行的软硬件环境、网络环境、用户输入等相关,在这些条件中,软件运行的软硬件环境、网络环境属于基本不变条件,而用户输入则构成了一个多维向量的集合。
用于衡量软件可靠性的比较直观的指标主要有两个,一个是软件的失效率(failurerate),一个是平均无故障时间(MTBF)。这两者之间的关系是互为倒数的关系。
一直以来,软件可靠性的研究焦点主要在数学模型上,真正的应用较少。1988年贝尔实验室推出了软件可靠性工程的概念,该概念涵盖软件需求、设计、测试和维护阶段,包括20个方面(1992年贝尔实验室对软件可靠性工程内涵说明的描述),从全过程的方面描述了对软件可靠性控制的内容。由此可见,软件可靠性不是测试出来的,而是贯穿软件工程全过程的一个概念。
当然,用于对软件可靠性进行评估的主要是通过测试手段,目前已有的数学模型在这方面有许多,例如J-M模型、几何递减模型、SHOOMAN模型等,概括来说,用于可靠性评估的模型都有几个共同之处:首先是假定程序中包含的错误数量是一个未知的常数;其次,错误引起的失效之间是独立的;第三,所有的失效都能被检测到;最后,测试环境和实际环境相同或相似。在具体的方法上,主要有几种方式:通过多次测试,用每次测试过程中的失效发生状况和发现的缺陷数推算软件可靠性;第二,通过对软件持续运行时的失效发生状况推算软件可靠性;第三,通过错误植入的方式推算软件可靠性。特别需要说明的是,软件可靠性的计算需要大量的运行和测试期间数据的支持,仅通过对软件的一次或少数几次测试是不可能真正获得软件的可靠性数据的。