发明名称 引入测试有效性的软件可靠性验证测试方法
摘要 本发明提出了一种引入测试有效性的软件可靠性验证测试方法,分无失效与有失效两种情况,分别以离散型软件和连续型软件为对象,建立了统一的测试有效性度量形式。本发明方法针对离散型软件和连续型软件,结合用户给定的验证指标,利用统计故障注入方法,估计无失效情况下测试有效性的值,或者有失效情况下测试有效性的值,确定离散型软件测试所需的最小测试用例量或者连续型软件测试所需的连续执行时间,然后生成相应数量的测试用例进行测试验证。本发明方法降低了测试用例的数量和测试持续时间,加速了软件可靠性验证测试过程,节省了测试资源。
申请公布号 CN102629232B 申请公布日期 2014.03.26
申请号 CN201210130304.0 申请日期 2012.04.27
申请人 北京航空航天大学 发明人 李秋英;王健;罗磊;刘力新;朱龙
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 北京永创新实专利事务所 11121 代理人 周长琪
主权项 1.一种引入测试有效性的软件可靠性验证测试方法,其特征在于,通过以下步骤实现:步骤1、区分被测软件为离散型软件还是连续型软件;步骤2、调入用户给定的验证指标,离散型软件的验证指标为(p<sub>0</sub>,C,r),连续型软件的验证指标为(λ<sub>0</sub>,C,r),其中,p<sub>0</sub>为离散型软件失效概率的指标值,λ<sub>0</sub>为连续型软件失效率的指标值,C为置信度,r为所能容忍的最大失效数;根据能容忍的最大失效数r判断是无失效情况还是有失效情况:当最大失效数r等于0时,为无失效情况,当最大失效数r大于0时,为有失效情况;步骤3、利用统计故障注入方法,估计无失效情况下测试有效性<img file="FDA0000407127120000011.GIF" wi="64" he="59" />的值,或者有失效情况下测试有效性<img file="FDA0000407127120000012.GIF" wi="91" he="59" />的值,具体包括如下步骤:步骤3.1、构造软件缺陷池Θ;步骤3.2、根据软件缺陷的统计分布规律,从软件缺陷池Θ中随机抽取缺陷,注入到原程序P中,得到一个包含注入缺陷的变异程序P′,通过注入缺陷的方法生成F个变异程序;步骤3.3、根据测试情况估计测试有效性值:(1)针对无失效方案情况,利用测试集合T对F个变异程序都进行测试,测试有效性<img file="FDA0000407127120000013.GIF" wi="60" he="59" />的估计值<img file="FDA0000407127120000014.GIF" wi="57" he="73" />为:<img file="FDA0000407127120000015.GIF" wi="419" he="139" />对变异程序P′顺序执行T中的测试用例,直到有一个失效产生了,通过追踪,该失效是由注入P′的缺陷集合F<sub>si</sub>中的某个缺陷导致,此时X(F<sub>si</sub>)=1;对变异程序P′顺序执行T中的测试用例,但是没有失效产生,此时X(F<sub>si</sub>)=0;F<sub>si</sub>表示第i个变异程序所对应的注入的缺陷的集合;(2)针对有失效方案情况,利用测试集合T对F个变异程序都进行测试,得到测试有效性<img file="FDA0000407127120000016.GIF" wi="84" he="59" />的估计值<img file="FDA0000407127120000017.GIF" wi="85" he="73" />为:<img file="FDA0000407127120000018.GIF" wi="248" he="128" />对变异程序P′顺序执行T中的测试用例,结果发现了k(k≠0)个失效,并且k个失效能追踪到植入P′的缺陷集合F<sub>si</sub>中,当k>r时,变量φ<sub>r+1</sub>的值加1,变量φ<sub>r+1</sub>的初始值为0;步骤4、对于离散型软件,确定测试所需的最小测试用例量N:在无失效情况下,最小测试用例量<img file="FDA0000407127120000019.GIF" wi="607" he="166" /><img file="FDA00004071271200000110.GIF" wi="62" he="59" />取估计值<img file="FDA00004071271200000111.GIF" wi="92" he="77" />在有失效情况下,最小测试用例量N为满足下式中测试用例量n的最小值:<img file="FDA00004071271200000112.GIF" wi="778" he="148" />其中,<img file="FDA00004071271200000113.GIF" wi="85" he="61" />取估计值<img file="FDA00004071271200000114.GIF" wi="121" he="74" />β(1+r,1+n-r)(p)表示贝塔分布;对于连续型软件,确定测试所需的连续执行时间T<sub>a</sub>:在无失效情况下,连续执行时间<img file="FDA0000407127120000021.GIF" wi="438" he="159" /><img file="FDA0000407127120000022.GIF" wi="65" he="59" />取估计值<img file="FDA0000407127120000023.GIF" wi="92" he="73" />在有失效情况下,连续执行时间T<sub>a</sub>为满足下式中执行时间t的最小值:<img file="FDA0000407127120000024.GIF" wi="762" he="142" />其中,<img file="FDA0000407127120000025.GIF" wi="90" he="59" />取估计值<img file="FDA0000407127120000026.GIF" wi="120" he="73" />Gamma(1+r,t)(λ)表示伽玛分布;步骤5、根据被测软件特点和可靠性测试要求搭建可靠性测试环境;步骤6、构造操作剖面,并根据步骤4确定的最小测试用例量N或者连续执行时间T<sub>a</sub>,生成相应数量的可靠性测试用例;步骤7、执行测试用例,并收集失效信息;步骤8、结合验证测试方案和实验结果,得到接收或拒收结论。
地址 100191 北京市海淀区学院路37号