[发明专利]一种基于动态反馈权重的测试用例优先级排序方法及系统有效
申请号: | 201811501062.5 | 申请日: | 2018-12-10 |
公开(公告)号: | CN109783349B | 公开(公告)日: | 2022-02-15 |
发明(设计)人: | 黄如兵;张犬俊;陈锦富 | 申请(专利权)人: | 江苏大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 212013 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 动态 反馈 权重 测试 优先级 排序 方法 系统 | ||
1.一种基于动态反馈权重的测试用例优先级排序方法,其特征在于,包括如下步骤:
步骤1,根据测试用例集在基础版本的程序集上运行情况,收集测试用例集代码覆盖信息;
步骤2,将测试用例集在迭代错误版本上运行,获得测试用例集在各个版本上的错误检测情况;
步骤3,使用动态反馈权重排序方法,根据获得的代码覆盖信息进行测试用例排序,输出已排序的测试用例序列;具体实现包括如下:
步骤3.1,根据动态反馈权重进行每轮排序,在每轮排序之前,根据为各粒度进行权重重置,其中StcoverNum[j]为粒度被覆盖次数,CoverageMatrix为覆盖矩阵,之后根据每个用例的评估值进行排序;
步骤3.2,当某一轮多个用例拥有相同的最大评估值时,则随机挑选一个最大评估值的用例;
步骤3.3,重复执行步骤3.1和3.2,当没有候选测试用例时结束本次排序,并输出已排序用例序列。
2.根据权利要求1所述的一种基于动态反馈权重的测试用例优先级排序方法,其特征在于,所述步骤1的具体实现包括如下:
步骤1.1,根据已获得的测试用例集,将其转换为测试用例脚本,输出该用例集代码覆盖信息;
步骤1.2,对基础版本的程序集,执行上述的测试用例脚本,获得该测试用例集的覆盖信息文件;
步骤1.3,编写脚本,对上述覆盖信息文件进行解析,生成测试用例集在程序集上的覆盖矩阵,其中每行代表测试用例,每列代表该程序集每种覆盖粒度,0代表该测试用例没有覆盖该粒度,1代表该测试用例覆盖该粒度。
3.根据权利要求1所述的一种基于动态反馈权重的测试用例优先级排序方法,其特征在于,所述步骤2的具体实现包括如下:
步骤2.1,根据已获得的测试用例集,将其转换为相应的测试用例脚本,输出该用例集在程序集上的执行结果;
步骤2.2,将上述测试用例脚本在基本版本与相关迭代版本的程序集上分别运行,获得测试用例集在各个版本程序上的输出信息;
步骤2.3,编写脚本,对测试用例集在基础版本和错误迭代版本上的输出信息进行对比,生成测试用例集的错误检测矩阵,其中每行代表测试用例,每列代表植入的错误,0代表该测试用例未检测到该错误,1代表该测试用例检测到该错误。
4.根据权利要求1所述的一种基于动态反馈权重的测试用例优先级排序方法,其特征在于,还包括步骤4,根据已排序的测试用例序列和测试用例集的错误检测情况,计算该测试用例序列的评估值并进行统计分析。
5.根据权利要求4所述的一种基于动态反馈权重的测试用例优先级排序方法,其特征在于,所述步骤4的具体实现包括如下:
步骤4.1,使用贪心算法,即Total和Additional策略,在statement、branch和function粒度上重复步骤3,生成各个方法的已排序测试用例序列;
步骤4.2,根据各个方法的已排序测试用例序列以及测试用例集的错误覆盖矩阵FaultMatrix,生成各个方法的排序结果的评估值,以平均错误检测速率APFD为例,其评估值公式为:其中n代表测试用例数量、m代表程序中错误数量,TFm代表检测到第m个错误的第一个测试用例在排序中的执行次序;
步骤4.3,对获得的APFD值进行图形化显示,画出各个方法在每种粒度下的盒图,直观显示与比较;
步骤4.4,对获得的APFD值进行统计分析,计算各方法的wilcox p-value以及计算effect size,以及根据上述结果对本方法进行评估。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏大学,未经江苏大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811501062.5/1.html,转载请声明来源钻瓜专利网。