基于覆盖分析的自动化错误定位关键技术研究
本文选题:错误定位 + 可疑度信息 ; 参考:《南京大学》2016年博士论文
【摘要】:软件调试是软件开发过程中最耗时和最昂贵的过程之一。随着信息技术的发展,软件系统变得越来越复杂,规模越来越大,软件调试也变得更加困难和耗时。软件调试包括错误的定位、理解和修正,错误定位是其中的一个核心过程,也是最困难和耗时的过程。使用自动化错误定位技术能够有效提高软件调试的效率,大大降低软件调试的耗费。基于覆盖分析的错误定位技术计算复杂度低,可自动化程度高,是目前研究得最为广泛和深入的方法之一基于覆盖分析的错误定位方法首先搜集程序频谱信息和测试用例执行结果向量;然后,设计度量公式对每个程序实体的可疑度进行风险评估:最后,按照可疑度值从高到低对程序实体进行排序。程序频谱信息、度量公式和测试执行结果向量是影响基于覆盖分析的错误定位技术的三个关键因素。本文针对这三个关键因素进行深入研究和分析,主要工作和贡献如下:针对程序频谱信息对错误定位效果提升的局限性问题,论文提出将类可疑度信息和程序频谱信息相结合的错误定位方法,进而提高现有基于覆盖分析的错误定位技术的定位效果。程序频谱信息只包含测试用例是否覆盖程序实体的二元信息,无法区分具有相同覆盖信息的语句,对错误定位技术效果的提升具有局限性。因此,该方法利用类的可疑度信息区分不同类中具有相同覆盖信息的语句。为了提取类的可疑度信息,论文利用每个对象的方法调用执行序列信息描述类的封装特性,量化每个类的可疑度信息;进一步,设计类的可疑度信息与程序频谱信息的结合算法,从而有效地提高错误定位效率。该方法首次提出考虑面向对象语言中类的封装特性对错误定位效果的影响。实证分析表明相对于现有的基于覆盖分析的错误定位方法,该方法能够大幅提高其错误定位效率。针对错误定位排序中缺失上下文信息的问题,论文提出结合函数调用路径上下文信息的错误定位方法,提供有效的上下文信息并提高错误定位效率。该方法首先构建具有权重的函数调用图;然后,设计基于具有权重的函数调用图的启发式搜索算法;最后,利用该算法遍历函数调用路径搜索错误语句。该方法利用函数调用路径信息将可疑语句排序中独立的不相关的语句关联起来,并提供失效执行相关的函数调用路径上下文信息,有助于开发人员在定位错误的过程中理解错误;同时,该方法能够有效地减少代码审查量。通过实证分析,论文得出该方法能够有效地提高基于覆盖分析的错误定位方法的效率。针对不同度量公式具有不同错误定位效果这一问题,论文研究不同度量公式在结合切片击中集信息和频谱信息错误定位方法中的定位效果。论文首先对结合切片击中集信息和程序频谱信息的错误定位方法进行修正和改进;接着,扩展基于集合理论的分析框架;然后,通过理论分析可以证明在单错情况下改进的方法比原有的方法以及频谱错误定位方法的定位效果要好。在改进的方法中,选取不同的度量公式,其错误定位效果可能会不同。论文从理论角度考察不同度量公式在改进方法中的定位效果,并证明在改进方法中局部最优的度量公式集合。通过理论分析,论文得出与改进方法等价的度量公式转换过程。该分析工作首次给出结合切片信息和程序频谱信息错误定位方法的理论结果。针对基于覆盖的失效邻接矩阵的测试预言问题,论文提出将蜕变测试技术应用到该领域的方法,获取缺少测试预言的基于覆盖的失效邻接矩阵。当程序包含多个错误时,首先需要获得失效邻接矩阵,基于失效邻接矩阵对失败测试用例进行聚类;最后,基于每个聚类的失败测试用例和配套的成功测试用例进行错误定位。基于覆盖的失效邻接矩阵包含两部分:提取失败测试用例签名的指纹函数和失败测试用例之间的距离公式。失效邻接矩阵是对多个错误进行错误定位的前提。当测试预言不存在时,论文利用蜕变测试技术获取基于覆盖的失效邻接矩阵,主要包括如下三个步骤:利用失效蜕变测试组代替程序失效执行;利用蜕变切片作为失败测试用例的签名;利用失效蜕变测试组的距离代替失败测试用例的距离。实证分析表明蜕变测试技术能够有效地缓解该领域的测试预言问题。
[Abstract]:Software debugging is one of the most time consuming and expensive processes in software development . With the development of information technology , software system becomes more and more complex , and software debugging becomes more difficult and time consuming .
Then , the design measure formula carries out the risk assessment for the suspicious degree of each program entity : Finally , the program spectrum information , the metric formula and the test execution result vector are three key factors that influence the error location technology based on the overlay analysis .
This paper presents an error location method based on overlay analysis , which provides effective context information and improves the efficiency of error locating .
Then , the heuristic search algorithm based on the function call graph with weight is designed .
finally , using the algorithm to traverse the function call path search error statement . The method uses the function call path information to relate the independent irrelevant statements in the sorting of the suspect statements , and provides the function call path context information related to the failure execution , and helps the developer to understand errors in the course of positioning errors ;
At the same time , the method can effectively reduce the code review quantity . Through the empirical analysis , the paper concludes that the method can effectively improve the efficiency of the error positioning method based on the coverage analysis .
secondly , expanding the analysis framework based on the aggregation theory ;
In this paper , it is proved that the improved method is better than the original method and the positioning effect of the frequency spectrum error locating method . In the improved method , the positioning effect of different measure formulas in the improved method can be different .
Finally , based on the failure test cases of each cluster and the matched successful test cases , the error location is carried out . Based on the coverage failure adjacency matrix , the distance formula between the fingerprint function and the failure test case signed by the failure test case signature is obtained . When the test prediction does not exist , the failure adjacency matrix is the precondition for error positioning of a plurality of errors . When the test prediction does not exist , the paper uses the decay test technique to acquire the coverage - based failure adjacency matrix , which mainly comprises the following three steps :
using the degenerate slice as the signature of the failure test case ;
The empirical analysis shows that the decay test technique can effectively alleviate the problem of test prediction in this field .
【学位授予单位】:南京大学
【学位级别】:博士
【学位授予年份】:2016
【分类号】:TP311.53
【相似文献】
相关期刊论文 前10条
1 路晓丽;葛玮;陈新丽;郝克刚;;支持共享和复用的测试用例库系统的设计[J];计算机科学;2006年05期
2 胡珊;杨丰玉;张晔;刘琳岚;;基于测试项抽取的测试用例复用方法[J];微电子学与计算机;2010年01期
3 张德平;查日军;;划分测试用例选择的风险决策方法[J];计算机应用研究;2010年12期
4 杨翊;陈挺;许峥;;证券软件的测试用例设计充分性实践[J];中国证券期货;2012年07期
5 张智轶;陈振宇;徐宝文;杨瑞;;测试用例演化研究进展[J];软件学报;2013年04期
6 杨悦;秦湘河;杨永安;郭荣;;航天测控软件测试用例标准及应用研究[J];无线电工程;2013年09期
7 王侃,卢庆龄,彭艳丽;测试用例自动生成的链方法研究与实现[J];装甲兵工程学院学报;2001年03期
8 李顺华;测试用例管理方法探讨[J];飞航导弹;2001年05期
9 徐仁佐,陈斌,陈波,吴闽泉,熊忠伟;构造面向对象软件可复用测试用例的模式研究[J];武汉大学学报(理学版);2003年05期
10 陈绍英;金成姬;;性能测试用例[J];程序员;2004年11期
相关会议论文 前10条
1 王道堂;林春哲;张凯;;软件测试用例构造方法与手段[A];计算机技术在工程建设中的应用——第十二届全国工程建设计算机应用学术会议论文集[C];2004年
2 李磊;曹先彬;;基于进化的软件测试用例生成方法[A];2005年“数字安徽”博士科技论坛论文集[C];2005年
3 徐李勤;王洁宁;;基于层次有色Petri网的软件测试用例选取研究[A];全国第二届信号处理与应用学术会议专刊[C];2008年
4 林春哲;张凯;王道堂;;软件测试用例设计分析[A];计算机技术在工程建设中的应用——第十二届全国工程建设计算机应用学术会议论文集[C];2004年
5 张侠影;李志蜀;;一种优化的测试用例约简方法[A];2008'中国信息技术与应用学术论坛论文集(一)[C];2008年
6 张德平;聂长海;徐宝文;;划分测试用例选择策略研究[A];第五届中国测试学术会议论文集[C];2008年
7 郭从颖;;场景驱动测试用例设计及其测试自动化技术研究[A];中国计量协会冶金分会2008年会论文集[C];2008年
8 郭从颖;;场景驱动测试用例设计及其测试自动化技术研究[A];2008全国第十三届自动化应用技术学术交流会论文集[C];2008年
9 周晓燕;李兵;潘伟丰;覃叶宜;;基于错误传播概率网络的软件回归测试用例选择[A];第五届全国复杂网络学术会议论文(摘要)汇集[C];2009年
10 万琳;张威;马雪雁;陈曼青;;基于路径的测试用例自动生成技术[A];第十届全国容错计算学术会议论文集[C];2003年
相关重要报纸文章 前6条
1 深圳市信息无障碍研究会 戴杰;“听”软件的IT工程师[N];人民政协报;2014年
2 谢敏 沈雪芳 戴金龙;解决软件测试的近忧和远虑[N];计算机世界;2005年
3 计算机世界实验室 韩勖;拨云见日[N];计算机世界;2008年
4 《网络世界》记者 郑楠;ONF测试步伐有条不紊[N];网络世界;2014年
5 ;找错[N];计算机世界;2002年
6 信息产业部软件与集成电路促进中心 于明邋唐仕武;驶入测试“快车道”[N];计算机世界;2007年
相关博士学位论文 前10条
1 罗玲;扩展π演算的建模、验证与测试[D];西安电子科技大学;2015年
2 王志强;基于模糊测试的漏洞挖掘及相关攻防技术研究[D];西安电子科技大学;2015年
3 涂径玄;基于覆盖分析的自动化错误定位关键技术研究[D];南京大学;2016年
4 苏亭;基于覆盖准则的软件测试用例自动化生成方法的研究与实现[D];华东师范大学;2016年
5 李丽;航天相机主控软件测试用例自动生成技术的研究[D];中国科学院研究生院(长春光学精密机械与物理研究所);2010年
6 黄如兵;组合测试用例的自适应随机生成与优先级排序方法研究[D];华中科技大学;2013年
7 张娟;软件测试中测试用例复用的研究[D];上海大学;2012年
8 游亮;回归测试用例选择技术研究[D];华中科技大学;2012年
9 谢晓东;基于模型比较的软件测试用例生成方法研究[D];华中科技大学;2007年
10 李根;基于动态测试用例生成的二进制软件缺陷自动发掘技术研究[D];国防科学技术大学;2010年
相关硕士学位论文 前10条
1 田春艳;基于灰色关联逼近理想解方法的测试用例评价模型研究[D];昆明理工大学;2009年
2 唐海鹏;基于Additional策略回归测试用例优先级排序优化研究[D];西南大学;2015年
3 陈梦云;基于圈复杂度和调用次数的测试用例排序方法[D];上海师范大学;2015年
4 姚瑞超;广东电网测试用例自动生成工具的研究与设计[D];华南理工大学;2015年
5 张泽林;基于数据挖掘的软件多故障定位与分析技术[D];南京理工大学;2015年
6 邹炳松;嵌入式软件的图形化测试用例生成系统设计与实现[D];哈尔滨工业大学;2015年
7 李锦程;基于微信平台的医疗就诊系统设计与实现[D];哈尔滨工业大学;2015年
8 赵群;软件错误定位中的巧合正确性问题研究[D];哈尔滨工业大学;2015年
9 常龙辉;Web应用的测试用例优化生成与优先级技术[D];上海大学;2015年
10 王令赛;基于粒子群优化算法的测试用例生成技术研究[D];中国矿业大学;2015年
,本文编号:1919857
本文链接:https://www.wllwen.com/shoufeilunwen/xxkjbs/1919857.html