【技术实现步骤摘要】
本专利技术涉及一种基于频谱的增量式缺陷定位方法,属于软件测试
技术介绍
多年来,人们在缺陷定位的研究中提出了许多方法,主要通过程序的静态信息和动态信息来定位程序错误。但获得静态信息的开销较大,对于大型软件,全面的静态分析甚至是不现实的,而动态信息的收集主要是运行测试用例,并不会给测试带来过多的开销。同时,由于动态信息包含了程序运行时的信息,与利用静态信息的方法相比,可以提供更准确的结果。利用程序频谱信息进行缺陷定位,是目前比较切实有效的软件缺陷定位方法,程序频谱是一种表示程序运行时的覆盖信息,反应程序运行某一特征的代码剖面信息。程序频谱与程序行为之间存在着一定的关系,通过研究运行失败测试用例得到的频谱信息与运行通过测试用例得到的频谱信息之间的差异性可为软件缺陷定位提供帮助。对于程序的单条语句,被失败测试用例执行的越多,通过的测试用例执行的越少,语句含有错误的可能性就越大,发生错误的概率就越大。利用这种特征对程序语句被通过测试用例以及失败测试用例的覆盖情况进行统计分析,找出含有缺陷的程序语句。对基于频谱的程序定位方法,这里
技术实现思路
本专利技术目的在于解决了上述现有技术的不足,提出了一种基于频谱的增量式缺陷定位方法,该方法采取优化策略产生一种新的缺陷定位方法,使缺陷定位的效率更高,本专利技术采取一种增量式的方法执行测试用例,并考虑了大量测试用例情况下的边际效应,对后续增加的测试用例对可疑度的贡献进行动态加权,对语句可疑度进行修正,根据修正后的定位序列进行缺陷定位。具体概述如下:对采集的所有测试用例集进行等量随机分组,选择其中一组测试用例执行,收集 ...
【技术保护点】
一种频谱信息去冗余优化的软件缺陷方法,其特征在于,所述方法包含如下步骤:获取初始定位序列;包括:获取程序语句编号序列S:S1,S2,S3,…,Sj,…,Sn;获取语句序列S:S1,S2,S3,…,Sj,…,Sn相应语句的可疑度值序列Zrough:Z1,Z2,Z3,…,Zj,…,Zn,其中Zj表示第j条语句的可疑度值;根据Zrough中可疑度值进行降序排列;根据已排序的Zrough序列,匹配对应的程序语句编号,对S:S1,S2,S3,…,Sj,…,Sn进行排序,排序后的S即为缺陷定位序列,记为Srough;测试用例增量执行;包括:增加一组测试用例并执行;选取下一组测试用例;可疑度修正;获取执行完上一组测试用例获得语句Sj的<Aef,Aep,Anf,Anp>;将ef,ep,nf,np统称为ev,利用公式(2)分别计算ef,ep,nf,np再次发生的概率p(ef),p(ep),p(nf),p(np);根据公式3分别计算ef,ep,nf,np再次发生后所提供的信息量H(ef),H(ep),H(nf),H(np);根据公式4分别计算ef,ep,nf,np的增量权重αef,αep,αn ...
【技术特征摘要】
1.一种频谱信息去冗余优化的软件缺陷方法,其特征在于,所述方法包含如下步骤:获取初始定位序列;包括:获取程序语句编号序列S:S1,S2,S3,…,Sj,…,Sn;获取语句序列S:S1,S2,S3,…,Sj,…,Sn相应语句的可疑度值序列Zrough:Z1,Z2,Z3,…,Zj,…,Zn,其中Zj表示第j条语句的可疑度值;根据Zrough中可疑度值进行降序排列;根据已排序的Zrough序列,匹配对应的程序语句编号,对S:S1,S2,S3,…,Sj,…,Sn进行排序,排序后的S即为缺陷定位序列,记为Srough;测试用例增量执行;包括:增加一组测试用例并执行;选取下一组测试用例;可疑度修正;获取执行完上一组测试用例获得语句Sj的<Aef,Aep,Anf,Anp>;将ef,ep,nf,np统称为ev,利用公式(2)分别计算ef,ep,nf,np再次发生的概率p(ef),p(ep),p(nf),p(np);根据公式3分别计算ef,ep,nf,np再次发生后所提供的信息量H(ef),H(ep),H(nf),H(np);根据公式4分别计算ef,ep,nf,np的增量权重αef,αep,αnf,αnp;其中,k为测试用例组数,1/k即为选定执行的测试用例条数占测试用例总条数的百分比;获取执行完本选定组测试用例获得的语句Sj的<aef,aep,anf,anp>,利用公式5,分别计算Aef,Aep,Anf,Anp,Aev=Aev+αev×aev 公式5根据公式1重新计算语句可疑度将记入zslight中,zslight表示修正后的可疑度值序列;判断所有语句是否均获得修正后的可疑度值;获得语句可疑度值序列zslight;定位序列修正;获取语句编号序列S:S1,S2,S3,…,Sj,…,Sn;获取语句序列S:S1,S2,S3,…,Sj,…,Sn相应语句的可疑度值序列zslight:z1,z2,z3,…,zj,…,zn,其中zj表示修正后的第j条语句的可疑度值;根据zslight中可疑度值进行降序排列;根据已排序的zslight序列,匹配对应的程序语句编号,对S:S1,S2,S3,…,Sj,…,Sn进行排序,将排序后的S序列即为修正后定位序列,记为Sslight;定位序列判定;根据定位序列进行缺陷语句定位。2.根据权利要求1所述的一种基于频谱信息的增增量式软件缺陷方法,其特征在于,所述方法包括:步骤1:...
【专利技术属性】
技术研发人员:王子元,张晓红,张卫丰,周国强,张迎周,
申请(专利权)人:南京邮电大学,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。