[发明专利]基于搜索算法的多缺陷定位方法在审
申请号: | 201511014345.3 | 申请日: | 2015-12-28 |
公开(公告)号: | CN105760295A | 公开(公告)日: | 2016-07-13 |
发明(设计)人: | 王赞;樊向宇 | 申请(专利权)人: | 天津大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 天津市北洋有限责任专利代理事务所 12201 | 代理人: | 李素兰 |
地址: | 300072*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 搜索 算法 缺陷 定位 方法 | ||
技术领域
本发明涉及软件开发技术,特别是涉及一种软件缺陷定位方法。
背景技术
软件缺陷定位(softwarefaultlocalization)技术是在执行测试用例集后发现有部分测试用例执行失败时,确定缺陷所在具体位置的一种分析方法。在传统的软件开发过程中,通常是由开发人员手工调试、找到缺陷并进行修复。但这种传统的缺陷定位方法成本较高[1]。为了提高调试效率,把开发人员从枯燥的手工调试中解放出来,研究人员提出了大量的自动化缺陷定位方法用以辅助开发人员快速准确地定位缺陷。已有的自动化缺陷定位方法可以简单分为两类:静态定位方法和动态定位方法。其中静态定位方法[2]在程序运行前通过分析代码结构来定位缺陷,而动态定位方法[3,4,5]则通过分析测试用例的执行轨迹和运行结果来定位缺陷。在动态定位方法中,基于程序频谱的缺陷定位(programspectrumbasedfaultlocalization,简称SFL)技术表现出很好的定位效果[5]。它们通过计算出每个程序实体(可设置为语句、语句块或函数等)内含有缺陷的可能性,然后生成缺陷分析报告并以此来辅助开发人员进行调试,直至找到真正缺陷位置并完成修复。SFL是当前软件缺陷定位问题的研究热点,也是本文研究的问题。
程序频谱是执行测试用例时收集到的程序执行信息,包括测试用例的程序实体覆盖信息和执行结果。在大量SFL方法中,Tarantula[3]、Jaccard[6]、Ochiai[7]和Op[8]等方法取得了较好的效果。它们使用统计学方法计算出程序实体的可疑值,并依次排序。但这类方法在定位单缺陷时的效果要优于定位多缺陷时的效果[4]。已有的可疑度值计算公式一般基于论文中提到的8个假设[12,13],然而在实际软件开发过程中,被测程序内部含有的缺陷数难以预先获知,并且在绝大部分情况下都多于一个。
有研究人员利用谓词将程序划分成块,通过统计谓词在成功测试用例和失败测试用例中的执行情况来进行缺陷定位。Liblit等人[15]提出CBI方法来寻找与程序缺陷最相关的谓词,通过谓词在成功测试用例和失败测试用例执行过程中的取值信息计算谓词的可疑值。随后Liu等人[16]提出了SOBER方法,该方法通过搜集谓词的执行次数,比较谓词执行结果在成功测试用例和失败测试用例上的分布情况计算谓词的可疑值。并且实验结果表明SOBER方法要优于Liblit方法。郑征等人提出一种基于谓词执行序列的缺陷定位方法[17],通过搜集更多谓词执行信息能够进一步优化缺陷定位的效果。随后,他们又对此方法进行补充,提出一种自适应的缺陷定位方法[18],该方法能动态地选择每个谓词需要搜集的信息强度。
近年来,不断有新的方法被引入该研究领域,尤其是机器学习和基于搜索的方法[19]。Yoo提出一种通过遗传算法自动生成SBFL公式的方法,并且能得到跟人工设计公式相近的定位效果[20]。谢晓园等人使用基于搜索的方法从30个不同怀疑率计算公式中,发现了4个最优的公式[21]。玄跻峰等人使用机器学习的方法将多个排序指标结合使用,根据不同的程序选择最优公式[22]。
研究者还从测试用例维护和程序分析角度来进一步提高缺陷定位效果,充分考虑测试用例及程序本身的特性对缺陷定位结果的影响,并以此优化缺陷定位效果。郝丹等人从测试用例出发,通过消除相似测试用例[23]和有害测试用例[24]来优化测试用例集,从而优化缺陷定位的结果。贺韬等人使用变异分析来降低偶然因素的影响,并以此提高缺陷定位的效果[25]。Masri通过分析程序中的信息流来辅助缺陷定位,在分析过程中考虑程序间的依赖关系[26]。张震宇等人加入布尔表达式求值中的短路现象处理来提高缺陷定位效果[27,28]。此外,概率图模型[29,30,31]和程序切片技术[32,33]也被引入到程序缺陷定位技术。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津大学,未经天津大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201511014345.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:自动化测试控制方法、装置及终端
- 下一篇:一种嵌入式系统的调试方法及装置