[发明专利]基于程序行为网络聚合的测试用例动态排序方法有效
申请号: | 201711449875.X | 申请日: | 2017-12-27 |
公开(公告)号: | CN108021509B | 公开(公告)日: | 2020-08-18 |
发明(设计)人: | 刘烃;池剑磊;贺安成;郑庆华;屈宇 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06K9/62 |
代理公司: | 西安通大专利代理有限责任公司 61200 | 代理人: | 田洲 |
地址: | 710049 陕*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 程序 行为 网络 聚合 测试 动态 排序 方法 | ||
1.基于程序行为网络聚合的测试用例动态排序方法,其特征在于,包括以下步骤:
步骤S1:基于动态插桩技术,对执行待测程序的所有测试用例执行过程进行监控;对每个测试用例对应的栈操作序列Traces进行清洗过滤,将每一个测试用例Ti对应的Tracei转换成一张有向带权的子图CGi,将所有子图进行并集操作,获得程序调用总图TG;
步骤S2:采用图编辑距离度量方法计算每两张子图之间的图编辑距离Dij,随后,利用图编辑距离计算图相似度σij,构建图相似度矩阵Mi,j;
步骤S3:采用K-medoids聚类算法将测试用例划分至n个簇中;
步骤S4:利用极大极小距离抽样策略从聚类结果簇中获得所需的测试用例序列T';
步骤S1中,对每个测试用例对应的栈操作序列Traces进行清洗过滤,将每一个测试用例Ti对应的Tracei转换成一张有向带权的子图CGi,将所有子图进行并集操作,获得程序调用总图TG,具体包括以下步骤:
步骤S201:记录函数调用记录格式为:
(type,hashcode,mName,SessionID,UserID,TraceID,sTime,eTime,cName,eoi,ess),取其中mName、TraceID、eoi、ess四项用于构图,mName表示函数名及其返回值,传递参数信息;TraceID为Trace编号,同一条Trace拥有同样的hashcode编号;eoi表示栈操作序号;ess表示栈操作深度;
步骤S202:根据eoi和ess构建方法调用图CG=(V,E,w),其中V代表点的集合,点的标签为方法名;E代表边的集合,边的权重w代表两个方法之间的调用频度;
步骤S203:将子图序列{CG1,CG2.....CGn}取交集归并,重复的边权重相加,获得软件调用总图TG。
2.根据权利要求1所述基于程序行为网络聚合的测试用例动态排序方法,其特征在于,步骤S1中使用动态插桩工具Kieker,在待分析程序的执行代码前后插入监控代码,实现对程序的函数级监控。
3.根据权利要求1所述基于程序行为网络聚合的测试用例动态排序方法,其特征在于,步骤S2中,利用子图序列{CG1,CG2.....CGn}与总图TG,计算图CGi和图CGj之间图编辑距离Dij,图编辑距离公式如下:Dij=VC+EC+RC,VC代表点变换产生的开销,EC代表边变换产生的开销,RC代表点标签名变换产生的开销;随后,利用图编辑距离计算图相似度构建图相似度矩阵Mi,j。
4.根据权利要求1所述基于程序行为网络聚合的测试用例动态排序方法,其特征在于,步骤S3中,使用改进后的K-means算法,将与周围测试用例相似度最高的测试用例作为核心medoid,具体聚类步骤如下:
步骤S301:选取K个测试用例作为初始核心;
步骤S302:根据图相似度矩阵Mi,j将其余测试用例分配至K个簇中;
步骤S303:重新计算簇的核心测试用例,如果核心发生改动,转入步骤S302,如果核心未发生改动,结束聚类算法,输出K个簇。
5.根据权利要求1所述基于程序行为网络聚合的测试用例动态排序方法,其特征在于,步骤S4中,采用极大极小距离抽样策略从聚类结果簇中获得所需的测试用例序列,公式如下:具体抽样策略如下:
步骤S401:将步骤S3获得的各个簇按簇中元素规模排序,将K个核心测试用例置入T'中;
步骤S402:每个簇中,取与已经加入T'的K个核心分别距离最远的测试用例置入T';
步骤S403:步骤S402中,记每个簇中已取得元素集合为k为大于等于1且小于等于n的一个自然数;n为测试用例的个数;测试用例之间距离min dij为簇中某个测试用例与Ci之间最小距离,即minσij,分别取簇中剩余元素min dij为最大值的测试用例加入T'中;如果该簇中不存在剩余元素,跳过;
步骤S404:若剩余簇中还有测试用例未加入T',跳至步骤S403;否则输出T'。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711449875.X/1.html,转载请声明来源钻瓜专利网。