[发明专利]一种面向失败测试用例稀少情况的软件错误定位方法有效
| 申请号: | 201310001120.9 | 申请日: | 2013-01-04 |
| 公开(公告)号: | CN103019943A | 公开(公告)日: | 2013-04-03 |
| 发明(设计)人: | 郑征;郝鹏 | 申请(专利权)人: | 北京航空航天大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京慧泉知识产权代理有限公司 11232 | 代理人: | 王顺荣;唐爱华 |
| 地址: | 100191*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 面向 失败 测试 稀少 情况 软件 错误 定位 方法 | ||
所属技术领域
本发明涉及一种动态的软件错误定位方法,尤其涉及一种面向失败测试用例稀少情况的软件错误定位方法,它是一种面向拥有大量成功测试用例和极少数失败测试用例的使用情况,涉及对成功测试用例集进行拆分和对多重语句可疑度进行集成操作的软件错误定位方法。该方法属于软件测试技术领域。
背景技术
软件已深入到我们日常生活中的每个角落,但与此同时,软件中的bug(错误)也是无处不在。为查找软件中潜在的bug,许多自动化的错误定位技术被相继提出。
基于谱的软件错误定位方法(Spectrum-based Fault Localization,简称SBFL。该方法本质上是一种算法)通过比较程序语句在成功测试用例和失败测试用例运行时执行信息的差异,来查找最有可能与程序缺陷有关的语句。该类算法所基于的假设是:如果一条可执行语句只被失败测试用例覆盖而没有被成功测试用例所覆盖,则该可执行语句被认为越与程序缺陷相关。
在现有的基于谱的软件错误定位方法中,最具有代表性的是Tarantula算法(该名称是算法的发明人命名,现在暂无中文名称)。Tarantula算法是琼斯等人在“一种利用可视化信息的缺陷定位方法”(详见2002年《第二十四届国际软件工程会议》)一文中提出的,其选择的插桩方法是语句插桩,即对所有可执行语句进行插桩,统计成功和失败测试用例对每条可执行语句的覆盖情况。其余几种基于谱的软件错误定位方法与Tarantula算法所使用的插桩方式以及信息类型都相同,只是彼此可疑度计算公式不同。纳什等人在“一种基于谱的软件诊断模型”(详见2011年ACM出版社出版的《软件工程方法》杂志)一文中对现有的33种基于谱的软件错误定位方法进行了总结。
由于基于谱的软件错误定位方法的定位效果会受使用的测试用例集质量的影响,因此,如何有效利用测试用例集成为了软件错误定位领域里关注的热点。测试用例集缩减技术被证明能够有效提高对测试用例的利用效率,但是,现有研究主要集中于减少测试用例集的大小,却忽略了测试用例集的组成,例如测试用例集中成功测试用例与失败测试用例的类别比例。测试用例集中的类别不均衡现象是指一类测试用例的数量要远远多于另一类测试用例的数量。在现实生活中,已发布的软件通常都是含有大量的成功测试用例,仅含有少量的失败测试用例。例如,服务于2008年北京奥运会信息管理系统的基础中间件产品,它的成功测试用例与失败测试用例的比例就高达8500:1。对于验证错误定位方法定位效果的实验程序,这种由于失败测试用例稀少所导致的类别不均衡现象更是广泛存在。
研究如何消除测试用例集类别不均衡现象对基于谱的软件错误定位方法所产生的不利影响正是本发明所基于的考虑。
发明内容
本发明一种面向失败测试用例稀少情况的软件错误定位方法,其目的是:克服基于谱的软件错误定位方法容易受到测试用例集类别不均衡现象影响的缺点,提出一种拆分—集成操作,使得基于谱的软件错误定位方法在面对失败测试用例稀少情况时仍能发挥很好的定位作用。
本发明一种面向失败测试用例稀少情况的软件错误定位方法,其设计思想是:首先,对成功测试用例进行拆分。将原始测试用例集中的成功测试用例分成几个等份,确保每一份中成功测试用例的数量与原始测试用例集中失败测试用例数量相同。其次,将失败测试用例成批复制,并与拆分后的每份成功测试用例进行配对,构成新的类别均衡的子测试用例集。之后,依次输入每份类别均衡的子测试用例集,收集测试用例运行时程序的动态执行谱,调用基于谱的软件错误定位方法进行计算,生成相应的语句排位表。最后,对多重语句排位结果进行集成,合成综合排位表,程序开发人员根据综合排位表来查找程序中的缺陷。
更具体地,本发明一种面向失败测试用例稀少情况的软件错误定位方法,其步骤包括以下五步:
第一步对原始测试用例集中的成功测试用例进行拆分。将原始测试用例集中的成功测试用例P分成等份,第i份(1≤i≤m)成功测试用例用Pi表示。其中,u表示原始测试用例集中成功测试用例P的数量,v表示原始测试用例集中失败测试用例F的数量。Pi中包含v个成功测试用例,这v个成功测试用例均是通过对原始测试用例集中的成功测试用例进行随机不放回抽取而得到;
第二步成批复制失败测试用例,与拆分好的每份成功测试用例配对。经过此步后,将得到m份新的类别均衡的子测试用例集Si,其中,每份子测试用例集包含v个成功测试用例和v个失败测试用例;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310001120.9/2.html,转载请声明来源钻瓜专利网。





