ISTREM软件测试可靠性评估方法研究
2014-08-04刘博李蜀瑜
刘博,李蜀瑜
陕西师范大学计算机学院,西安 710062
ISTREM软件测试可靠性评估方法研究
刘博,李蜀瑜
陕西师范大学计算机学院,西安 710062
1 引言
随着软件行业的快速发展,软件开发各个领域的提高是比较明显的,但是对于软件测试方面的专业领域主要表达怎样开展测试,这其中主要包含有测试过程的具体测试方法和组织、管理等。对于测试评估方面主要从软件缺陷报告、缺陷跟踪和测试进度评价等方面。对于软件测试本身是否科学、有效的评估方法、测试用例整体的评估、测试方法是否合理、软件测试可靠性的评估等方面的研究都比较少。因此在实际的软件测试工程项目之中,经常遇到以下问题:虽然测试过程是按照原定的测试计划展开的,但是由于测试用例集合比较庞大,对整个测试过程的可靠性性缺少定量评价,因此很难在测试执行过程中及时发现测试薄弱点,提出测试优化策略[1-6]。
在本文中,提出一种新的对软件测试可靠性进行有效评估的数学模型ISTREM(Independent Software Testing Reliably Evaluation Model),并且在文章中使用该模型对实际AEINC653软件系统测试中统计得到的数据进行软件测试可靠性的评估,有效证明了ISTREM模型的有效性和对于其他软件测试项目的适用型[7-10]。
2 软件可靠性评估研究现状
现今,在航天航空领域软件的规模和复杂性越来越高,软件测试作为验证和保证软件质量的主要环节,显得更加重要,软件测试的研发成本也随之提高。那么,如何对软件测试的能力、效率和分析测试的可靠性进行分析是目前软件开发领域中迫切需要研究的现实问题。能否有一种评估模型能够对航空航天软件测试项目进行全面有效的评估,也成为研究的热点问题。
现今国内有关软件测试方面的专著主要侧重于论述如何开展测试,包括测试过程组织、管理和具体的测试方法等,对测试评估主要从错误覆盖率、测试构建合理性等方面进行研究,缺少对软件未来可靠性预测、软件测试过程控制及复杂测试情况处理的方法。目前对软件测试可靠性评估方法研究方面主要是国外的研究者提出的,并且没有一种较为全面的评估方法[11]。针对这种情况,本文中提出了一种相对较为全面的评估模型ISTREM,表1为可靠性评估方法的比较。
表1 可靠性评估模型对比
3 ISTREM模型
3.1 ISTREM模型的提出
从上节的对比表中可以清楚地看出现阶段的评估模型有诸多缺点,如不考虑测试阶段相关性等缺点。而在真实测试环境中,情况通常是复杂多变的,测试不同阶段是相互联系的,如单元测试的好坏将会直接影响之后的部件测试和集成测试。在测试过程中,通常失效的检测过程是随着测试继续进而发生变化的。此外,在预测未来方面,近期的失效统计通常比早先的失效统计更有用。为此建立一个特殊的模型进行估计,提出一种新的模型ISTREM(Independent Software Testing Reliably Evaluation Model)基本原理是:失效的测例随着测试过程的不断深入将会继续进行变化。此外,在对未来软件的可靠性预测方面,越靠近交付日期的测例对可靠性估计越有效。这个模型的特点可以很清楚地从上一节的图标中看出,针对不同的测试情况有不同的评价策略;针对不同的测试阶段有相关性的判定;针对失效发生时间有优化的使用策略,最重要的是此模型引入了皮尔逊模型对测试不同阶段的相关性又进行了计算,使得评估过程更加合理。根据航空电子软件的特性,对模型进行改进,模型有两种推导估计方法。第一种是使用从1到m所有时间段(即s=1)的全部失效统计数来进行统计。第二种是只用s到m时间段的失效统计数(即1≤s≤m)时间段内各段的单独失效统计,但是原本两种估计方法有些对测试指标意义不大,在此对推导方法进行改进,把两种方法综合起来,得出累积失效统计数。根据近期的失效(测试用例在测试时出现错误)统计通常比早先的失效统计更有用的模型基本原理,对模型进行裁剪和修改,首先假设有m个测试时间段,并且在第i段查到fi个失效,那么就能用下列方法进行处理:
使用从1到s-1个时间段的累积失效统计数Fs-1,即:
当所有时间段的失效统计数在预计未来的失效统计数中都有用时,应用第一种方法。当人们认为失效检查过程已发生显著变化,因而只有最后的m-s+1个时间段在未来的失效预测中有用时,就要用第二种方法。最后一种方法介于上述两种方法之间,这时人们认为前s-1个时间段的综合失效统计数与其余时间段的单独统计数对未来预测的失效和检测行为都是有代表性的[12-14]。
3.2 模型相关性的证明
为了进一步验证测试模型的独立性,引入皮尔逊模型来验证模型在时间上的独立性,利用统计学中皮尔逊模型计算相关度,该相关系数是判断两组数据与某一直线拟合程度的一种度量。它以用户为坐标轴,将评价的物品绘制到图上。如果两位用户的评价情况相同,那么这条直线将成为对角线。公式如下:
若根据实际测试情况,根据数据计算出的皮尔逊相关系数大于0.3,则表示相关。反之,则无关,即:两两某时段失效数概率分别用P(A)=P(A|B)。
在实际的软件测试过程中,是分阶段进行的,如:静态测试、单元测试、部件测试、回归测试等阶段进行测试。在各个阶段内,统计出来的失效数是相关的。因此,根据皮尔逊相关模型计算出来的系数大于0.3则表示相关。
3.3 模型的假设
在验证完相关性的基础之上的,在满足以下假设的前提下进行估计。以下是假设的条件:
(1)只统计新的失效;不重复计算失效数即:对s∈[1,m],若fs∈Fsifffs∉Fs-1,对于S时段内统计的失效当且仅当它不属于前Fs-1。
(2)故障纠正率与待纠正的故障数成正比;Fp(故障纠正率)∝δFq(待纠正故障数)δ为比例系数,在本文中,由第二种统计方式确立,根据实际测试统计得出系数为1.012。
(3)查出的平均失效数从一个时间段到下一个时间段逐步减少。
(4)所有的时间段长度相同。
(5)失效检测率正比于测试时程序中的故障数。
假设失效检测过程是非齐次泊松过程,其实效检测率呈指数下降,第i个时间段失效检测率di表示为:
在上式中α>0,β>0,都是模型的常数。
3.4 模型的构造
模型中使用了两个参数:α是在时间m=0的失效率,β是对在时间段内的失效率有影响的比例常数(它是一个估计值,是对失效率造成影响的概率值),通常他的取值为较小,0.2或0.1。在这些估值中,m是最后的观察统计时间段;s是时间段的标志;Xk是在第k个时间段内发现的实际失效数;Xs-1是从第1到第s-1个时间段内发现的失效数;Xs,m是从第s到第m个时间段发现的失效数;下面的似然函数为极小似然函数,为带入进行对数运算后的展开式。并且Xm=Xs-1+Xs,m可以将函数展开为:
这个函数用来为前述方法推导估计α和β的公式。在下列公式中α和β是总体参数的估计值。
参数估计法:使用从1到s-1时间段的累积失效统计数和s到m(即2≤s≤m)时间段内各段的单独失效统计数。
关于s的值,使用均方差(MSE)准则能求得s的最佳值,MSE计算在s≤i≤m范围内模型预计值与实际累积的失效统计数x(i)之间的方差和,来求出s的最佳值。下列公式适用于上述方法:
这样,对于每个s值,用上式计算MSE。选择使MSE最小的s值。结果得到对于数据集来说最佳的三个值(β,α,s)。然后对数据运用合适的方法。
3.5 综合化航空电子分区操作系统的可靠性评估
下面以综合化航空电子分区操作系统实例进行测试评估。在ARINC653平台中,每一个模块都是以分区的形式出现的,分区之间是相互独立的,互不干扰。它们之间分区内通信主要包括黑板、信号量、消息队列、事件等。这些应用都是该模型的一些单独而又相关的运用,它们共同组成一个综合的可靠性大纲。在此,只对飞控平台的燃油模块进行测试,燃油分区应用软件是机电管理分系统机电管理计算机的功能分区应用软件之一,同时也是燃油系统的重要功能组成部分,它运行于机电管理分系统的两台机电管理计算机的燃油分区中。
燃油分区应用软件实现对燃油系统部件的自动控制和系统状态信息的监控、显示、告警和记录功能。并且对大量的测试用例进行统计,得到以下统计结果进行平台可靠性的评估。
在实际测试过程中,还可以分别对各个模块进行可靠性评估,然后根据各个模块的评估结果对整个系统做整体评估。针对燃油平台做大量且可靠的测试,依据得到的实际数据并结合ISTREM模型进行可靠性评估[15-16]。
下面先根据数据来证明提出模型的前提为在测试阶段之中是相关的,而测试阶段之间是无关的。然后以三种方法中的第二种为实例来行评估演示:其中T≥s,对于方法一和方法三,s=1且T≥1,其中T推荐用执行时间(编写好测试用例后,机器执行测试的时间),但也能用工作时间或日历时间。
(1)设当前时间为t,已发现的失效数为X(t),则检测到总数为F的失效数所需的时间:
使用Testbed对基于ARINC653是针对航电系统的燃油模块经行测试,图1为Testbed的测试截图。
图1 Testbed测试环境图
主要测试过程分成12个阶段经行具体测试,并且对测试结果进行详细统计,得出以下数据:
12次测试的故障数(12个阶段):100 76 26 10 5 2 3 1 1 1 1 0
估计出的曲线预测得到的故障数目(分30个抽样点,这30个抽样点随机分布在6个测试阶段中,图2为30个抽样点的数据):根据实际阶段内和阶段外的失效数,带入皮尔逊公式计算出段内的平均相关系数为0.423,所以可知段内相关。由计算的出段与段之间的相关系数为0.132,可知
图2 抽样数据图
无关,图3可以清楚地看出段与段的无关性。
图3 抽象故障数据统计图
使用MATLAB进行模型仿真,把统计得到的数据带入公式中得到α、β的值:α=0.131,β=0.2,Xi=Nαexp(-βi),N=1 000,i=1,2,…,将α=0.131,β=0.2带入上式得到预测如上预测数据和分布图。
图4 故障数目累计图
图4为整个燃油分区48个测试阶段故障数目的累计图,这里一个阶段为时间单位依据非线性泊松概率分布的特性,可以得到:则F(0.881)=P(r≤0.881)=0.186 5,软件正确性大于0.881的可靠性为0.983 5,通过与测试标准中设定的大于0.98的可靠性对比可知,之前求得的测试的结果,即如果软件测试的可靠性要求达到0.98,那么该燃油分区的测试结果是可靠的。对于其他模块,可以用同样的方法进行评估,通过计算,可以对整个软件的可靠性有一个整体的评价。
4 结束语
软件的可靠性是衡量软件质量的一个重要指标。本文提出一种新的模型建立评估软件测试可靠性模型,根据实际测试统计值带入评估软件的测试可靠性。在验证和假设已知软件正确性的情况下,在本文中建立模型有一定的缺点,首先它不考虑测试软件在不同时间段的失效之间的相关性,这在软件测试过程中是会出现的;其次对于重复的失效测例不予考虑;此外使用此模型是等长的时间段较长,在以后的工作中会改进算法使得等待时间尽可能地变短。这些不足在以后的工作中会通过算法或者模型的改进得以解决。
[1]Jean A,Martlne A,Louis A,et al.Fault injection for dependability validation:A methodology and some applications[J].IEEE Trans on Software Engineering,2003,16(2):166-182.
[2]Carreira J,Madeira H,Silva J G.Xception:A technique for the experimental evaluation of dependability in modem computers[J].IEEE Trans on Software Engineering,1998,24(2):125-136.
[3]Ghuni A K,Nasser A K,Jacob A A.FERRARI:A flexible software—based fault and error injection system[J]. IEEE Trans on Computers,2004,44(2):248-260.
[4]GoswamiKK.DEPEND:Asimulation-basedenvironmentforsystemleveldependabilityanalysis[J].IEEE Trans on Computers,1997,46(1):60-74.
[5]Looker N,Munro M,Xu J.Simulating elrors in Web services[J].Int’lJournalofSimulationSystems,Science,2004,5(5):29-37.
[6]DeMillo R A,Lipton R J,Sayward F G.Hints on test dataselection:Helpforthepracticingprogrammer[J]. IEEE Computer,1978,11(4):34-41.
[7]Voas J.Fault injection for the masses[J].IEEE Computer,1997,30:129-130.
[8]Hsueh M C,Tsai T K,Lyer R K.Fault injection techniques and tools[J].IEEE Computer,2010,30(4):75-82.
[9]Bieman J M,Dreilinger D,Lijun L.Using fault injection to increase software test coverage[C]//Proc on Software Reliability Engineering(ISSRE96).Washington:IEEE Computer Society,1996:166-174.
[10]Delamaro M E,Maidonado J C,Mathur A P.Interface mutation:Anapproachforintegrationtesting[J].IEEE Trans on Software Engineering,2001,27(3):228-247.
[11]安金霞,王国庆,李树芳,等.基于多维度覆盖率的软件测试动态评价方法[J].软件学报,2010,21(9):2135-2147.
[12]杨朝红,宫云战,肖庆,等.基于缺陷模式的软件测试中的区间运算应用[J].计算机辅助设计与图形学学报,2008,20(12).
[12]单锦辉,姜瑛,孙萍.软件测试研究进展[J].北京大学学报:自然科学版,2005,41(1).
[13]聂长海,徐宝文.基于接口参数的黑箱测试用例自动生成算法[J].计算机学报,2004,27(3).
[14]张德平,聂长海,徐宝文.基于Markov决策过程用交叉熵方法优化软件测试[J].软件学报,2008,19(10).
[15]柳永坡,邹磊,金茂忠,等.软件测试领域知识管理技术的研究与应用[J].计算机集成制造系统,2008,14(9).
[16]姚奕,刘晓明,黄松.基于模糊偏序关系的软件测试评价方法[J].电子科技大学学报,2007,36(3).
LIU Bo,LI Shuyu
Department of Computer Science,Shaanxi Normal University,Xi’an 710062,China
On the basis of Bias model,according to the aviation electronic system software characteristics on assessment models are cut and modified.On the ARINC653 platform fire prevention module in Testbed test platform test statistics, that the actual test case distribution obeys the mathematical characteristics of possion.Get software test case failure rate, resulting in software reliability assessment value,solves the software testing process of reliability evaluation of complex and large amount of calculation problem.Finally,on the platform of Matlab software system(fuel module)test for assessing reliability,experimental results are obtained found to be insufficient.
software testing;software reliability;ARINC653;reliability assessment
在航空电子系统软件测试的背景上,对ARINC653平台燃油模块在Testbed测试平台上的测试用例进行统计,得出实际测试案例分布服从特殊泊松的数学特征。根据软件测试的时间依赖性提出一种新的可靠性评估模型ISTREM,并且求得软件测试用例的失效率,从而对软件进行可靠性评估,解决了软件测试可靠性评估过程复杂且计算量较大并且忽略时间依赖性的问题。在Matlab平台上对软件系统(燃油模块)的测试可靠性进行评估,得出实验结果,并且提出不足。
软件测试;软件可靠性;ARINC653;可靠性评估
A
TP311
10.3778/j.issn.1002-8331.1301-0063
LIU Bo,LI Shuyu.Study of ISTREM software testing reliability evaluation method.Computer Engineering and Applications,2014,50(22):65-68.
国家自然科学基金(No.41271387);陕西师范大学研究生培养创新基金(No.2012CXS056)。
刘博(1988—),男,工学硕士,主要研究方向为嵌入式系统开发;李蜀瑜,副教授,主要研究方向为嵌入式系统开发。E-mail:liubo731@gmail.com
2013-01-07
2013-03-05
1002-8331(2014)22-0065-04
CNKI网络优先出版:2013-04-07,http://www.cnki.net/kcms/detail/11.2127.TP.20130407.1435.008.html