去评论
距米网-精简版

软件可靠性及可靠性测试知识总结

刘冬124
2019/07/29 23:57:43
前面讲到软件可靠性(Reliability)和软件可靠性(Reliability)测试的定义,本节主要总结软件可靠性(Reliability)评估相关知识。软件可靠性(Reliability)测试分为验收测试和增长测试,其核心都是软件可靠性(Reliability)模型,即软件可靠性(Reliability)评估。

软件失效机理

讲述软件失效机理之前,我们首先明确几个概念:
(1)人为错误:指在软件生存期内不期望或者不可接受的人为差错,是软件设计人员在开发过程中由疏忽、失误或者错误导致的行为过失。它既包括程序员开发的代码存在的错误,也包括不准确的软件设计文档的描述、不合理的功能需求以及功能存在遗漏;
(2)软件缺陷:指存在于软件中的不期望或者不可接受的偏差,是软件开发过程中的人为错误导致的结果,可能出现在软件开发的不同阶段,表现为在某一特定条件下出现软件故障;
(3)软件故障:指软件在运行过程中出现的不期望或者不可接受的内部状态,是软件缺陷被激活后的表现形式,一般指软件运行错误,在无适当措施对其加以处理时会产生软件失效;
(4)软件失效:指软件运行时产生的不期望或者不可接受的外部行为结果,是软件在运行过程中产生了对要求行为的偏离,即软件不再能够满足用户功能需求甚至出现软件崩溃的情况,根据软件失效的影响可将其分为暂时失效、永久失效、可恢复的失效、不可恢复的失效、不再恶化的失效和可能恶化的失效等。

根据以上定义,我们可以理解,软件缺陷和软件失效描述的是软件两个不同层次的问题。软件缺陷是软件的内部问题,是只有软件开发人员可以察觉到的问题;而软件失效是软件的外部问题,是用户就能够察觉到的问题。软件失效机理可以这样描述,人为错误会导致软件缺陷,软件缺陷在相应的人为错误被修正前长期存在;当遇到特定的条件时,软件缺陷会被激活表现出软件故障,软件故障会导致软件不能正常实现预期的要求;软件故障发生后,在没有适当措施进行处理时,就会产生能被用户察觉的软件失效。

软件可靠性(Reliability)评估
软件可靠性(Reliability)评估指“确定现有系统或系统部件可靠性(Reliability)所达到的水平的过程”。可靠性(Reliability)评估通过软件可靠性(Reliability)模型来描述。软件可靠性(Reliability)与软件失效直接相关,所以软件可靠性(Reliability)会受开发人员发现和修复那些引起失效的软件缺陷的过程有关。可靠性(Reliability)模型通过软件测试或软件实操中收集的失效数据提供量化的可靠性(Reliability)估计,模型的选取也是以失效数据体现出的开发人员对软件缺陷的修复行为对软件系统的影响为根据的。总之,软件可靠性(Reliability)的量化评估过程是通过失效数据经过统计推断实现的。

软件失效数据
软件失效数据是在软件测试或软件实操过程中软件失效的数据记录,是进行软件可靠性(Reliability)评估的基础。可靠性(Reliability)模型的假设是否合理、建模是否精准、估测的结果是否令人满意,都应该通过软件失效数据来进行验证。

在软件失效数据的收集过程中,常把其分为两类:
(1)完全数据:指在软件测试或软件实操过程中,被观察并记录下来的每一次失效的以及它出现的时间。由于它反映的数据是完全的,且每两次失效出现的时间间隔是已知的,所以我们也把完全数据成为失效时间间隔数据。
(2)不完全数据:指在软件测试或软件实操过程中出现一连串的失效情况,被记录为某个时间间隔内发生的失效的总数。也就是说,我们只知道在一个时间间隔内发生了若干次失效情况,但是并不具体的知道每一次发生失效的具体时间。相比于完全数据,不完全数据缺少一些信息,我们也将其称为某个时间间隔内的累计错误数据。
软件可靠性(Reliability)模型