第 26 卷 第 3 期 航 空 学 报 Vol126 No13
2005 年 5 月 ACTA AERONAU TICA ET ASTRONAU TICA SINICA May 2005
收稿日期 :2004204219 ; 修订日期:2005201220
基金项目 :国家“十五”预研基金
(
41315040106
)
资助项目
文章编号 :100026893
(
2005
)
032334206
安全关键软件可靠性验证测试方法研究
覃志东 , 雷 航 , 桑 楠 , 熊光泽 , 古幼鹏
(
电子科技大学 计算机学院实时系统研究室 , 四川 成都 6100054
)
Study on the Reliability Demonstration Testing Method for Safety2critical Software
QIN Zhi2dong , L EI Hang , SAN G Nan , XION G Guang2ze , GU You2peng
(
Real2time System Lab. , University of Electronic Science and Technology of China , Chengdu 610054 , China
)
摘 要 : 为了在不降低安全关键软件可靠性验证测试结果可信性的前提下减少测试用例量 ,在分析经典统计
假设测试和无先验贝叶斯统计方法的基础上 ,提出了一种先验知识动态整合的贝叶斯推断统计测试方法 ;并
提供了软件失效概率的概率密度函数先验分布参数的详细求解办法。实验表明 ,所提供的安全关键软件可靠
性验证测试方法可以用较少的测试用例获得同样的结果可信性。
关键词 : 软件可靠性 ; 可靠性验证 ; 贝叶斯方法 ; 安全关键软件 ; 软件测试
中图分类号 : TP311153 ;V21517 文献标识码 : A
Abstract : In order to reduce the total number of the testing cases but not to decrease the confidence level of the
testing results for the reliability demonstration of safety2critical software , a new method which uses Bayesian
inference with prior knowledge dynamic integration is presented on the basis of analyzing the classical statistical
hypothesis testing and the ignorance prior Bayesian method1 In particular , the problem of how to determine the
parameters of the prior distribution for the density function of software failure probability is solved1 Test
shows that it requires less testing cases to achieve the same confidence level by using the method provided in
this paper1
Key words : software reliability ; reliability demonstration ; Bayesian method ; safety2critical software ; software
testing
随着计算机技术的日新月异和相对成熟 ,各
种各样高度复杂的软硬件系统内嵌于大量的安全
关键系统
[1 ]
(
Safety2Critical System
)
中 ,日益发挥
着不可替代的作用。安全关键系统之所以称之为
安全关键系统是因为系统一旦失效 ,将导致生命
财产的重大损失或者对周围环境造成严重破坏。
如各种各样的航空航天器、飞行控制系统、核反应
堆监控系统、危重病人监护系统等 ,都是安全关键
系统 ;而安全关键软件
(
Safety2Critical Software
)
是作为安全关键系统的构成部分 ,它一旦失效 ,将
直接或者间接地导致系统处于危险状态。所以 ,
高可靠性
(
Reliability
)
与高防危性
(
Safety
)
是对
这类系统和软件的基本要求。
随着系统工程的规模和复杂性急剧提高 ,需
要更多更庞杂的软硬件系统去实现更复杂的功
能。但是 ,计算机软硬件技术的发展是极不平衡
的 ,与硬件性能和可靠性飞速发展相对比 ,软件技
术相对滞后 ,软件的可靠性已成为系统可靠性进
一步提高的瓶颈。现实生活中的很多事故都是由
软件失效造成的。如 ,亚利安娜 5 号火箭发射失
败
[2 ]
、Therac225 放射性治疗仪事故
[3 ]
等 ,就是血
的教训。因而 ,开发人员在安全关键系统开发前 ,
不但规定了明确的系统可靠性验收指标 ,还规定
了严格的软件可靠性验收指标
[4 ]
;并在开发过程
中采用一系列的软件可靠性管理、设计与测试技
术 ,以保障和提高软件的可靠性 ;在最后的产品验
收阶段 ,需要通过严格的测评方法来验证软件是
否达到了规定的可靠性指标。如何精确、客观、高
可信地验证安全关键软件是否达到了可靠性指标
是学术界和工业界一直努力试图解决的问题。
从上个世纪 70 年代 ,国内外就已经开始着手
于非安全关键软件的可靠性测评研究 ,并取得了
丰富的研究成果
[5~7 ]
。但是 ,这些基于失效数据
进行可靠性建模或者错误播种法进行可靠性测评
的方法都难以满足现代安全关键软件可靠性测评
的精度和可信性要求。面对这种现状 ,一些学者
开始有针对性地对安全关键软件的可靠性测试展
开探讨 ,如 David、Howden、Parnas 等人提出了基