[发明专利]基于频繁子图挖掘的错误定位方法在审

专利信息
申请号: 201410713577.7 申请日: 2014-11-28
公开(公告)号: CN104536882A 公开(公告)日: 2015-04-22
发明(设计)人: 徐宝文;周骏贵;房春荣;高则宝;沈毅;陈振宇;张驰;濮力;程秀才;谢佩章 申请(专利权)人: 南京大学;江苏苏测软件检测技术有限公司
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 南京天翼专利代理有限责任公司 32112 代理人: 奚铭
地址: 210093 江*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 频繁 挖掘 错误 定位 方法
【说明书】:

技术领域

发明属于计算机技术领域,涉及软件测试技术,其是软件测试中自动化测试技术领域,为一种基于频繁子图挖掘的错误定位方法。

背景技术

自动化错误定位技术主要基于对程序源文件、覆盖信息、执行序列信息、测试结果进行分析,它能够有效辅助开发人员快速定位程序出错位置,提高调试效率。

自动化错误定位技术经过多年在学术界的发展,已经出现了多种不同类别的错误定位技术。该方法主要涉及基于程序动态执行的错误定位技术,该种类型的定位技术主要结合程序执行信息、测试用例执行信息已经以及一部分源程序分析结果,给出程序中可能出错的位置的排序。传统的自动化错误定位技术使用统计方法计算单个程序实体(语句、分支、语句块、方法等)为程序错误的可疑度,进而按照程序实体可疑度由高到低的顺序排序,提供给开发人员或者测试人员作为排查程序错误的优先顺序。

传统的自动化错误定位技术中最主要的一类技术被称为基于程序频谱的错误定位技术。频谱信息,当被插桩的程序执行包含成功测试用例和失败测试用例的用例池时,每个程序实体分别被成功(或失败)测试用例执行到(或未执行到)的次数。以频谱信息为基础,一系列的排序度量被提出用以计算每个程序实体的可疑度,进而排序筛选出可疑度较高的程序实体。一般来说,一个程序实体被失败的测试用例执行的次数越多,被成功的测试用例执行的次数越少,此程序实体为程序失败的可能性越高。

图挖掘程序错误定位方法结合机器学习领域已有技术,将最新的机器学习方法应用于错误定位领域,将程序的所有实体共同作为一个整体,通过图挖掘方法获取失败用例执行中的特征模式,进而实现更加准确且包含运行时上下文的自动化错误定位结果。

发明内容

本发明要解决的问题是:在现有自动化错误定位技术上,结合图挖掘程序错误定位方法,提出一种以频繁子图挖掘方法为基础框架的区分性子图挖掘方法,以更准确得定位程序中的错误。

本发明的技术方案为:基于频繁子图挖掘的错误定位方法,将程序的所有实体共同作为一个整体,通过图挖掘方法获取失败测试用例执行中的特征模式,进而实现更加准确且包含运行时上下文的自动化错误定位结果,包括以下步骤:

1)对程序执行频谱进行建模,基于测试用例对程序实体的执行顺序,构建出各测试用例的执行序列图,得到执行序列图集合;

2)根据执行序列图中每个边在所有测试用例的执行序列图中的比例,对执行序列图进行剪枝,移除可疑度较小的边,以提升后续挖掘算法的效率和精度;对剪枝后得到的测试用例的执行序列图集合,使用区分性子图挖掘方法,首先通过频繁子图挖掘算法从失败的测试用例的执行序列图中挖掘出频繁子图,再通过频繁子图的熵值从中确定出对成功和失败的测试用例执行序列图最有区分性的子图,也即最有可能导致程序行为失败的执行模式,由此定位程序中最可能导致测试用例失败的位置。

步骤1)对程序执行频谱的建模为:首先对程序插桩,记录程序运行时程序实体的执行顺序信息,执行测试用例池中的成功/失败的测试用例,基于测试用例执行时的程序实体的顺序,构建出成功/失败测试用例的执行序列图集合;最后采用最小深度优先算法来唯一标示一个执行序列图,完成程序执行频谱建模,为下一步处理做准备。

步骤2)所述区分性子图挖掘方法为:对于一个包含了执行成功和执行失败的测试用例的测试用例池,测试用例池的熵值Hc取决于池中成功的测试用例所占的比例pSuccess以及失败测试用例所占比例pFail,如公式(1)所示:

Hc=-pSuccess*log(pSuccess)-pFail*log(pFail)     (1)

设子图g为所有失败的测试用例执行序列图中挖掘出的频繁子图之一,首先依据测试用例是否包含子图g将所有执行序列图分为两类:包含子图g的执行序列图的集合S1,以及不包含子图g的执行序列图的集合S2;然后依据公式(1),根据S1和S2中包含的成功/失败测试用例的比例分别计算出S1和S2的熵值Hg1和Hg2,再根据S1的元素个数占所有测试用例池规模的比例pS1、S2的元素个数占所有用例池规模比例pS2加权,求出依据子图g划分下的测试用例池的的熵值Hg,如公式(2):

Hg=pS1*Hg1+pS2*Hg2              (2)

子图g在所有测试用例执行序列图上的划分的信息增益IG如下所示:

IG=Hc–Hg

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学;江苏苏测软件检测技术有限公司;,未经南京大学;江苏苏测软件检测技术有限公司;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201410713577.7/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top