【技术实现步骤摘要】
频谱信息去冗优化的软件缺陷定位方法
本专利技术涉及一种频谱信息去冗优化的软件缺陷定位方法,属于软件测试领域。
技术介绍
多年来,人们在缺陷定位的研究中提出了许多方法,主要通过程序的静态信息和动态信息来定位程序错误。但获得静态信息的开销较大,对于大型软件,全面的静态分析甚至是不现实的,而动态信息的收集只要是运行测试用例,并不会给测试带来过多的开销。同时,由于动态信息包含了程序运行时的信息,与利用静态信息的方法相比,可以提供更准确的结果。利用程序频谱信息进行缺陷定位,是目前比较切实有效的软件缺陷定位方法,程序频谱是一种表示程序运行时覆盖情况的信息,反应程序运行某一特征的代码剖面信息。程序频谱与程序行为之间存在着一定的关系,通过研究运行失败测试用例得到的频谱信息与运行成功测试用例得到的频谱信息之间的差异性可为软件缺陷定位提供帮助。对于程序的单条语句,被失效测试用例执行的越多,成功的测试用例执行的越少,语句含有错误的可能性就越大,发生错误的概率就越大。利用这种特征对程序语句被成功测试用例以及失败测试用例的覆盖情况进行统计分析,找出含有缺陷的程序语句。对基于程序频谱的程序定位方法,可以从多角度采取优化策略提高软件缺陷定位的效率:第一,提高选取测试用例集的有效性;第二,尽量减少收集程序频谱的开销;第三,提高可以度算法的精确度性。在以往的优化策略的基础上,如何提出一种新的优化策略,对覆盖信息表进行去冗优化,提高依赖程序语句可疑度进行缺陷定位的可靠性,从而达到提高软件缺陷定位的效率是在基于程序频谱的程序定位方法的优化过程中应当予以考虑并解决的问题。
技术实现思路
本专利技术对 ...
【技术保护点】
一种频谱信息去冗优化的软件缺陷定位方法,其特征在于:通过运行测试用例,收集程序运行结果信息即频谱信息;对所得频谱信息进行去冗优化处理,利用频谱信息计算可疑度;根据可疑度值的大小对语句进行降序排列,根据已排序的语句序列逐个进行排错,直至找到引发程序异常的语句。
【技术特征摘要】
1.一种频谱信息去冗优化的软件缺陷定位方法,其特征在于:通过运行测试用例,收集程序运行结果信息即频谱信息;对所得频谱信息进行去冗优化处理,利用频谱信息计算可疑度;根据可疑度值的大小对语句进行降序排列,根据已排序的语句序列逐个进行排错,直至找到引发程序异常的语句;具体为:S1、获取可执行的待测程序以及测试用例集;S2、执行测试用例,获取程序执行的动态信息;S3、收集所有测试用例的运行情况,并进行去冗余处理,生成无冗余覆盖信息表;具体为:S31、首个测试用例默认处理;具体为:默认第一个测试用例test1为有效测试用例;对第一个有效测试用例test1进行编号,记为Test1,表示第一个有效测试用例;拓展有效测试用例的执行情况为FF[test1]{Test1,F[test1]{T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R}},即为FF[test1]{Test1,T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R};收集测试用例testi的运行情况,记为F[testi]{T(S1),T(S2),T(S3)…T(Sj)…T(Sn),R},也即频谱信息,表示测试用例运行轨迹,其中,T(S1),T(S2),T(S3)…T(Sj)…T(Sn)分别表示各语句S1,S2,S3,...,Sj,...,Sn覆盖情况,Sj表示程序P的第j条语句,n为程序语句的总条数,R表示运行结果;S32、将FF[test1]{Test1,T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R}记入覆盖信息表G,G由FF[test1]{Test1,T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R}累积生成;S33、获取下一条测试用例的执行情况F[testi]{T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R};S34、判定F[testi]{T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R}是否与覆盖信息表G已有行F[test]相同,如果“是”,转步骤S35,否则转步骤S37;S35、判定测试testi为非有效测试用例;S36、删除F[testi]{T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R};S37、判定测试用例testi为有效测试用例;S38、对有效测试用例testi进行编号,编为testI,表示第I个有效测试用例;S39、拓展testi运行结果为FF[testi]{TestI,F[testi]{T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R}},即FF[testi]{TestI,T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R};S310、将FF[testi]{TestI,T(S1),T(S2),T(S3)...T(Sj)...T(Sn),R}记入覆盖信息表G中;S311、判断Listsuites中所有测试用例是否都被执行,如果“是”,转步骤S312,否则转步骤S33;S312、获得最终覆盖信息表G;S4、根据覆盖信息表进行语句可疑度计算;S5、根据可疑度值,对程序语句进行降序排列,定位缺陷语句。2.如权利要求1所述的频谱信息去冗优化的软件缺陷定位方法,其特征在于,步骤S1具体为:S11、获取待测的可执行程序P;S12、将程序P的每条语句进行编号,按序编为S1,S2,S3,.....
【专利技术属性】
技术研发人员:张卫丰,张晓红,王云,王子元,周国强,张迎周,
申请(专利权)人:南京邮电大学,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。