一种基于测试数据和D-S证据理论的可信性度量模型
2016-01-08孙家泽,王曙燕
一种基于测试数据和D-S证据理论的可信性度量模型*
孙家泽1,2,王曙燕2
(1. 西北大学信息科学与技术学院,陕西 西安 710127;2.西安邮电大学计算机学院,陕西 西安 710121)
摘要:针对软件可信性评估模型客观性不强的问题,提出了基于测试过程数据的软件可信性度量模型。该模型根据软件测试过程和能力成熟度模型CMM模型选取软件测试过程中的关键可信属性,利用软件测试中的过程数据作为可信证据,通过测试过程数据进行可信属性的定量度量,最后,将这些分散的可信指标通过D-S证据理论进行融合得到软件的可信性。实例表明,该度量模型在软件可信性评估中是有效的。
关键词:测试数据;可信性度量;D-S证据理论
中图分类号:TP311.522 文献标志码:A
doi:10.3969/j.issn.1007-130X.2015.06.012
收稿日期:*2014-03-25;修回日期:2014-09-01
基金项目:国家自然科学基金资助项目(61203311,61105064);陕西省自然科学基金资助项目(2015JM6359)
作者简介:
通信地址:710121 陕西省西安市长安区韦郭路西安邮电大学计算机学院
Address:School of Computer Science & Technology,Xi’an University of Posts and Telecommunications,Weiguo Rd,Chang’an District,Xi’an 710121,Shaanxi,P.R.China
A software credibility measurement model based on test data and D-S theory
SUN Jia-ze1,2,WANG Shu-yan2
(1. School of Information and Technology,Northwest University,Xi’an 710127;
2.School of Computer Science & Technology,Xi’an University of Posts and Telecommunications,Xi’an 710121,China)
Abstract:Considering that the objectivity of software credibility measurement model is not strong, we present a testing-based software credibility measurement and assessment model, which uses software testing process data as the credible evidence. In the model, the key credible attributes of the software testing process are selected and quantitatively measured according to the software test procedure and the Capability Maturity Model (CMM) for software.Finally,the dispersive confidence indexes are fused by the Dempster/Shafer (D-S ) evidence theory,and the software credibility is achieved.Classical examples show that the model is effective in software credibility measurement.
Key words:test data;credibility measure;D-S evidence theory
1引言
20世纪60年代末,“软件危机”的爆发促成了软件工程学科的诞生。近年来,软件的开发环境和运行环境已经从传统的封闭、静态环境发展为开放、动态、多变的互联网环境,按照传统软件工程生产的软件系统变得日趋庞大和难以驾驭,缺陷和漏洞难以避免,经常发生各种故障和失效,“软件可信性”问题由此而产生。软件的“可信性”是指软件系统的动态行为及其结果总是符合人们的预期,并且在其受到干扰(例如操作错误、环境影响、外部攻击等)时仍能提供连续正确的服务[1],是客观对象诸多属性的一个综合结果。
可信性评估是软件可信研究中的一个重要问题,相关理论和方法[2]尚处于初期研究阶段。20世纪80年代末,美国国家安全局发起了“可信软件方法学”[3]的研究,将软件过程可信性分为从T0到T5逐步提升的六个可信级别。为支持可信性评估,可信软件方法学列出了44条影响软件可信性的可信原则[4],这些可信原则为软件过程可信性评估提供了判断依据,但存在着可信性评估结果主观性强和不够精确的缺点。这样的判断结果容易受到评估人员的主观因素影响,使得判断依据缺乏客观性,从而影响评估结果的客观性和准确性。文献[5]提出了基于可信树的软件可信度量评估方法。该方法以决策树为基础,提出可信树这一新的概念,并利用可信树对软件可信性进行评估。然而,该方法对可信因子的评分完全依靠专家判断,难以保证评估结果的客观公正性。在软件评估的分级模型方面,文献[2]描述了一种采用软件分级模型对可信性进行评估的方法,但评估结果是二值的,即可信或不可信;在可信证据模型及度量方面,文献[6]建立了基于验证的可信证据模型,并在此基础上给出了一种基于软件认知程度的可信评估方法。总之,可信评估分级模型、属性模型、证据模型与评估框架之间相互联系,不能将其分开来进行研究。
总结分析以上相关研究工作,目前对软件可信评估的研究存在下述不足[7]:(1)这些方法只给出了可信评估的概念模型的定性评价,评估过多地依赖于评估人员的主观认识和经验,评估结果的准确性和客观性受到影响。(2)这些评价都是针对软件成品进行的,只有在软件最终可使用之后,才能对其可信性有所感知。这极大限制了可信性评价可以发挥的作用,软件开发人员正在使用某种可信平台进行软件开发,却无法在其工作过程中对手中软件原型的可信程度有所认识,这无疑会影响开发人员在开发过程中对质量管理的效率和效果。
针对以上软件可信性度量存在的问题,软件可信性的评估必须由可信软件过程提供评估证据。软件测试作为保证软件质量和可靠性的重要手段,它贯穿于软件生命周期的整个过程,是提供软件可信性证据的一个有效而又现实的手段。
本文提出基于软件测试过程数据[8]的可信性评估方法,以软件可信性评估作为目标,通过测试过程数据为可信软件提供定量的度量评估方法,建立基于测试数据的定量评估模型,减少评估过程中人员的主观因素,提高评估结果的准确性和客观性。同时采用D-S(Dempster/Shafer)证据模型[9]综合其中若干种证据和评价模型,建立多维可信属性的多尺度定量综合评估模型。本模型可以在软件开发过程中通过软件测试对软件的可信性进行评估,对软件的可信性进行感知,通过可信性评估的反馈,促进开发人员寻找软件错误,提高发布软件的可信性。
2测试过程中的关键可信属性
软件测试过程是软件生产过程中的关键过程,监控软件测试过程,对测试过程和测试结果进行分析是对软件可信性进行度量的有效途径之一。结合软件能力成熟度模型CMM(Capability Maturity Model for Software)中的18个关键过程域[10],本文提出基于测试过程数据的软件可信定量评估模型,其模型图如图1所示。
Figure 1 Software credibility measurement model based on the data of the test process 图1 基于测试过程数据的软件可信评估模型
2.1测试管理过程可信指标
软件测试过程的管理就是设置专业高效的组织机构,根据测试需求、测试计划,对测试过程中每个状态进行记录、跟踪和管理,并提供相关的分析和统计功能,生成各种分析统计报表。通过对详细记录的分析,形成较为完整的软件测试管理文档,避免同样的错误在软件开发过程中再次发生,从而提高软件开发质量,所以测试管理是软件可信性度量的一个关键属性。用测试过程管理的有效性来作为可信性评估的一个重要指标。
管理过程可信指标包括测试需求、测试计划、测试用例的评审过程指标;测试过程中测试基础设施如测试用例库、缺陷库等的可跟踪指标;测试过程的组织机构的健全指标;测试过程中的量化程度指标。对这些指标通过加权平均的方法可以得到管理过程可信指标。
2.2测试优化过程可信指标
在软件测试过程中,为了提供高可信的软件,软件企业对于测试过程要达到优化级,要对整个开发过程进行不断的优化,采取主动措施找出过程的弱点与长处,以达到预防缺陷的目标。同时,分析有关过程的有效性的资料,以及提出对过程进行修改的建议。因此,优化过程是软件可信性度量的一个重要属性。用软件测试过程中的优化水平来作为软件可信性评估的一个重要指标。
优化过程可信指标包括测试过程的定量分析决策指标;测试周期内测试活动变更的稳定性指标;测试结果反馈推广指标。对这些指标通过加权平均的方法可以得到优化过程的可信指标。
2.3测试用例可信指标
测试用例是软件测试过程的核心,测试用例设计的好坏和测试用例执行的结果分析是软件测试的关键。以测试用例为核心来观察测试过程中测试用例的计划、执行和跟踪是测试有效性的有力证明。测试用例对软件的覆盖率体现了软件本身的可靠性和正确性。测试用例集中测试用例的通过率体现了软件的健壮性和功能性,测试用例集变更的覆盖率序列衡量了更改后的测试用例集是否有效,从而也可以用来确认本次修改是否有效,是否可信。测试用例的修改对测试的覆盖率是正向的影响,即语句覆盖率、分支覆盖率提升,且测试用例集中测试用例通过数增加,那么认为本次测试过程是有效且可信的。
测试用例可信指标包括测试用例集的覆盖率和通过率指标;测试用例集增加测试覆盖提升速度指标;单个测试用例揭错能力指标。对这些指标通过加权平均的方法可以得到管理过程可信指标。
2.4基于测试过程可信指标的软件可信性综合度量
从测试过程的关键属性中获取到上述影响软件可信性的重要指标:管理过程可信指标、优化过程可信指标和测试用例可信指标,但这些指标是相对离散的,而且是从不同角度和层面对软件可信进行的描述和评价,我们最终是要对软件产品整体做出可信性评定,所以,需要将上述可信指标通过适当的模型进行统一整合,最终得出一个整体的评价结果。本文用模糊集和隶属函数的知识,采用不确定证据合并的D-S证据理论将各个关键可信属性进行整合,对软件可信性进行综合度量,得出综合反映软件可信性的量化值,再根据划分的软件可信等级对照确定软件产品的可信等级。
3基于测试数据和D-S证据理论的可信性度量模型
D-S证据理论是由Dempster和Shafer于1976年提出的一种不精确推理理论,该理论作为一种不确定推理方法主要用来处理不确定信息。本文中主要用来对不确定的、分散的、不同层面的属性信息加以整合,以获得对被评估问题的一致性解释和全面的描述。D-S证据理论基本概念[9]如下:
若对论域U中的任一元素x,有A(x)∈[0,1]与之对应,则称A是U上的一个模糊集,当x在U中变动时,A(x)就是一个函数,称为A的隶属函数,A(x)称为x对A的隶属度。
设D是变量x所有可能取值的集合,且D中的元素是互斥的,在任一时刻x都取且只能取D中的某一个元素为值,则称D为x的样本空间,也称D为辨别框。在证据理论中,D的任何一个子集A都对应于一个关于x的命题,称该命题为“x的值在A中”。
定义1(概率分配函数)设函数M:2D→[0,1],且满足:
则称M是2D上的概率分配函数,M(A)称为A的基本概率数。
Bel函数又称为下限函数,Bel(A)表示对命题A为真的信任程度。
定义3(似然函数)M:2D→[0,1],且PI(A)=1-Bel(┐A),其中A⊆D表示对A为非假的信任程度。
定义4(概率分配函数正交和)设M1和M2是两个概率分配函数,则其正交和M=M1⊕M2,
定义5设M1,M2,…,Mn是n个概率分配函数,则其正交和M=M1⊕M2⊕…⊕Mn为:M(∅)=0
经过计算得到的可信指标,经过隶属度函数运算后得到数个与隶属度函数个数相同的元组,然后通过D-S合并理论将数个n元组合并成一个n元组,n元组中n对应了对应用软件划分的等级,从这一条数据可以得到整体评估出的可信度情况。
隶属度函数划分的集合假设为A1,A2,…,An,个数n正是应用软件的划分等级数。从隶属度函数的定义来看,软件的可信度等级是相互独立的,但是其整体又是对一个软件可信性的完整描述,所以,这些集合必定满足M(A1∪A2∪…∪An)=1,M(A1∩A2∩…∩An)=0的条件。这也是使用D-S合并理论的前提,最终将从不同方面描述的软件可信性的属性指标整合成唯一的描述软件可信的指标。
图2说明了基于测试过程数据的软件可信性度量的整个过程。首先从测试数据中获取第二部分所述的指标数据,然后分别计算五个等级的隶属度,利用D-S合并理论进行合并,得到待评估软件的综合可信性。
Figure 2 Software credibility measurement process based on the test process 图2 面向测试过程的软件可信性度量过程
4实验设计分析
项目组自主开发了集成化的智能组合软件测试平台,该测试平台集组合测试、白盒测试、功能测试、性能测试、测试管理及测试用例智能生成和约简于一体。利用测试平台中提供的测试管理过程的基础设施:测试用例库、缺陷库、配置管理库中的测试数据,在此基础上根据可信评估关键属性的指标需要来提取相关数据进行关键指标的量化,各个量化的指标借助于D-S理论来进行融合,进而得到软件系统的综合可信程度,确定其可信等级。实验系统的体系框架如图3所示。
Figure 3 Software credibility measurement system architecture 图3 软件可信度量系统体系框架
将软件的可信等级由小到大划分为五个等级, 定义对应的五个隶属度函数,这五个隶属度函数是对软件可信性五个等级集合性的描述,从概率分配角度来讲,每个可信度级别都体现了一个从属的集合,而这五个数正是对属于相对应的级别的概率大小。
其中x∈[0,1]。
将管理过程可信指标、优化过程可信指标和测试用例可信指标分别代入五个隶属度函数,得出度量指标对应可信性五个等级的隶属度。然后运用D-S合并理论,计算出影响合并效果的K,然后对等级集合进行整合,这样便可以将等级下三个层次的本属性进行整合,得到一个标志应用软件的等级概率。以此便可得到应用软件在五个可信等级内的概率大小,得到整个应用软件的可信度等级。
对本项目组早期开发的软件系统利用上述软件可信度量系统进行度量,对于能够通过测试平台管理工具自动提取的指标,采用系统自动提取的方式定量度量,对于一些目前还无法使用工具自动获取的指标,采用多名领域专家打分的方法来定量度量;再利用本文提出的可信评估模型综合方法进行综合度量,得到的三个关键可信指标分别为:管理过程可信指标x=0.8359,优化过程可信指标y=0.51,测试用例可信指标z=0.810;经过五个隶属度函数计算,可得管理过程可信性:
f1(0.8359)=e-(0.8395)2=0.4942
f2(0.8359)=e-(0.8395-0.25)2=0.7064
f3(0.8359)=e-(0.8395-0.5)2=0.8911
f4(0.8359)=e-(0.8395-0.75)2=0.9920
f5(0.8359)=e-(0.8395-1.0)2=0.9743
再经过隶属度归一,得到标识不同项目管理可信等级的五元组,(0.121 8,0.173 5,0.219 6,0.244 5,0.238 5)。
同理可得,优化过程可信性等级五元组为:(0.173 8,0.210 7,0.225 4,0.212 8,0.177 3);测试用例可信性等级五元组为:(0.126 0,0.177 4,0.220 5,0.241 9,0.234 2)。
对三个五元组进行D-S理论的合并,计算影响合并效果的K值,K=0.2342。
最终软件可信性对应五个等级的隶属度为(0.062 6,0.152 2,0.256 2,0.295 4,0.232 5)。由此可以看出,该软件对应等级为第四等级可能可信的隶属度最高(0.295 4),该软件的可信度较大。该评估结果和该软件投入使用两年的表现相符,验证了该评估模型的有效性。
5结束语
本文根据测试过程和CMM能力成熟度模型选取软件测试过程中的关键可信属性,通过测试过程数据进行关键可信指标的具体度量,最后将这些分散的可信指标通过D-S证据理论进行融合得到软件的整体可信性,提供了一种有效的软件可信性度量模型。典型软件系统的实验验证了本模型的有效性。但是,该模型在具体指标的选取上是比较粗糙的,今后需要进一步研究,进行细化和明确。
参考文献:
[1]Liu Ke, Shan Zhi-guang,Wang Ji,et al. Overview of major research plan of trustworthy software [J].Science Foundation in China,2008,22(3):145-151.(in Chinese)
[2]Lang Bo, Liu Xu-dong, Wang Huai-min, et al. A classification model for software trustworthiness[J]. Journal of Frontiers of Computer Science and Technology,2010,4(3):231-239.(in Chinese)
[3]Amoroso E,Nguyen T,Weiss J,et al. Toward an approach to measuring software trust[C]//Proc of the IEEE Symposium on Research in Security and Privacy,1991:198-218.
[4]Amoroso E,Taylor C,Watson J,et al.A process-oriented methodology for assessing and improving software trust worthiness[C]//Proc of the 2nd ACM Conference on Computer and Communications Security,1994:39-50.
[5]Zhou J. Design on evaluation system of software credible[J].Software Guide,2008,7(2):11-12.
[6]Ding Xue-lei,Wang Huai-min,Wang Yuan-yuan,et al.Verification oriented trustworthiness evidence and trustworthiness evaluation of software [J]. Journal of Frontiers of Computer Science and Technology,2010,4(1):46-53.(in Chinese)
[7]Tao Hong-wei. Research on the measurement models of software trustworthiness based on attributes[D]. Shanghai:East China Normal University,2011.(in Chinese)
[8]Qian Hong-bing,Zhu Xiao-jie,Jin Mao-zhong. Research on testing-based software credibility measurement and assessment [C]//Proc of World Congress on Software Engineering,2009:59-64.
[9]Yang Jian-bo,Xu Dong-ling. On the evidential reasoning algorithm for multiple attribute decision analysis under uncertainty[J]. IEEE Transactions on Systems,Man and Cybernetics,Part A:Systems and Humans,2002,32(3):289-304.
[10]Bamford R,Deibler W. Software engineering models for quality:Comparing the SEI capability maturity model (CMM) to ISO 9001[C]//Proc of the 3rd International Software Engineering Standards Symposium (ISESS’97),1997:290-296.
参考文献:附中文
[1]刘克,单志广,王戟,等.“可信软件基础研究”重大研究计划综述[J].中国科学基金,2008,22(3):145-151.
[2]郎波,刘旭东,王怀民,等. 一种软件可信分级模型[J].计算机科学与探索,2010,4(3):231-239.
[6]丁学雷,王怀民,王元元,等. 面向验证的软件可信证据与可信评估[J]. 计算机科学与探索,2010,4(1):46-53.
[7]陶红伟.基于属性的软件可信性度量模型研究[D].上海:华东师范大学,2011.
孙家泽(1980-),男,河南南阳人,博士,副教授,CCF会员(E200030411G),研究方向为智能优化。E-mail:sunjiaze@126.com
SUN Jia-ze,born in 1980,PhD,associate professor,CCF member(E200030411G),his research interest includes intelligent optimization.
王曙燕(1964-),女,陕西西安人,博士,教授,CCF会员(E200010850S),研究方向为软件测试和智能优化。E-mail:wsylxj@126.com
WANG Shu-yan,born in 1964,PhD,professor,CCF member(E200010850S),her research interests include software testing,and intelligent optimization.