当前位置: 首页 > 专利查询>四川大学专利>正文

一种回归测试中测试用例优先级排序方法技术

技术编号:30641981 阅读:14 留言:0更新日期:2021-11-04 00:40
本发明专利技术涉及一种回归测试中的测试用例优先级排序方法。首先根据测试用例的文本主题和覆盖率相似性对测试用例进行聚类;再用最大化代码覆盖率、历史执行失败率和最小化执行时间作为目标,使用多目标优化算法结合聚类结果对测试用例进行排序;最后再利用测试用例间的关联关系动态调整排序结果,最终得到测试用例优先级的排序顺序。该方法融合了数据挖掘技术和多目标优化技术,结合了测试用例的静态文本信息和动态执行信息,是集白盒测试用例优先级排序和黑盒测试用例优先级排序的优点于一体的全新方案,提高了缺陷检测速率,考虑更加全面,实验证明能得到更好的排序结果。实验证明能得到更好的排序结果。实验证明能得到更好的排序结果。

【技术实现步骤摘要】
一种回归测试中测试用例优先级排序方法


[0001]本专利技术属于软件工程中的软件测试领域,尤其涉及一种回归测试中的测试用例优先级排序方法。

技术介绍

[0002]回归测试是用于检验程序或代码更改是否对现有功能造成负面影响的软件测试,在软件行业中的应用非常普遍。然而,测试用例规模通常很大,在回归测试中完全执行所有测试用例的成本会很高。将测试用例优先级排序,可以使更有可能检测出故障的测试用例优先执行,在可用测试时间内提供更大的故障检测能力,从而提高测试效率,减少时间和资源开销。如何有效地计算测试用例的优先级,是回归测试中的一个重要内容。
[0003]现有的回归测试中测试用例优先级排序方法通常基于单一信息确定测试用例相似性,这样并不能全面地考虑测试用例在各方面的相似性;同时,很多排序方法只考虑了将能够发现缺陷的测试用例排在前面,而没有考虑它们是否揭示不同的缺陷。

技术实现思路

[0004]本专利技术提出了一种回归测试中的测试用例优先级排序方法,首先结合测试用例的静态和动态信息计算测试用例的相似性,对测试用例进行聚类;然后结合聚类结果,对多目标优化排序结果进行调整;最后将测试用例是否揭示相同的缺陷纳入关联规则的考量中,进一步调整测试用例排序结果。实验证明,该方法具有更好的排序效果。
[0005]为了实现上述目的,本专利技术采用一种回归测试中测试用例优先级的排序方法,包括以下三大步骤:步骤1,根据测试用例的文本主题相似性和语句覆盖率相似性进行测试用例聚类;所述步骤1,根据测试用例的文本主题相似性和语句覆盖率相似性进行测试用例聚类,包含以下步骤:步骤1.1,将测试用例文本进行预处理,对预处理后的文本进行主题建模,计算测试用例的文本主题相似性;执行该步骤的原因是,测试用例文本中包含测试用例的各种信息,因此可以从测试用例的静态文本信息角度出发,判断其在功能上的相似性;步骤1.2,统计测试用例的语句覆盖情况,计算测试用例的语句覆盖相似性;执行该步骤的原因是,语句覆盖情况描述程序源代码被测试用例测试的比例和程度,因此可以从测试用例的动态执行信息角度出发,判断其在代码覆盖范围上的相似性;步骤1.3,根据实验确定两种相似性的加权系数,并计算加权相似性总和;步骤1.4,根据加权相似性总和对测试用例进行层次聚类,得到聚类结果;将测试用例按相似性划分为N个不同类;步骤2,对测试用例进行多目标排序,并根据聚类结果调整排序序列;所述步骤2,对测试用例进行多目标排序,并根据聚类结果调整排序序列,包括以
下步骤:步骤2.1,以代码覆盖率最大化、历史执行失败率最大化和执行时间最大化为排序目标,使用多目标遗传算法对测试用例进行多目标排序,得到排序序列;步骤2.2,根据步骤1得到的聚类结果,调整步骤2.1所得排序序列,使得排在前面的测试用例属不同聚类类别;执行该步骤的原因是,排序序列可能出现检测相同错误的测试用例一起排在序列前端的情况,因此需要根据聚类结果调整排序,以提高检错速度。
[0006]步骤3,根据测试用例的历史执行结果挖掘关联规则,动态调整排序序列;所述步骤3,根据测试用例的历史执行结果挖掘关联规则,动态调整排序序列,包括以下步骤:步骤3.1,根据测试用例历史执行信息,挖掘测试用例间的执行失败的关联规则;步骤3.2,若得到的关联规则,其前件和后件揭示相同缺陷,则丢弃该关联规则;执行该步骤的原因是,当某个测试用例执行失败,只有在揭示的缺陷不同时,另一个测试用例才有立即执行的必要。
[0007]步骤3.3,执行步骤2得到的排序序列,过程中若某一测试用例执行失败,则查找以该测试用例为前件的关联规则,将其后件测试用例调整为立即执行;执行该步骤的原因是,保证在某一测试用例失败后,立即执行后面与其具有执行失败关联的测试用例,且该测试用例揭示不同缺陷,以提高检错速率。
[0008]最终得到的测试用例执行序列就是优先级排序序列。
[0009]本方法根据测试用例的文本主题相似性和语句覆盖率相似性,分别从静态和动态维度衡量测试用例的相似性,并对测试用例进行聚类;再用最大化代码覆盖率、历史执行失败率和最小化执行时间作为目标,使用多目标优化算法结合聚类结果对测试用例进行排序;最后再利用测试用例间的关联关系动态调整排序结果,最终得到测试用例优先级的排序顺序。该方法是一种融合数据挖掘技术和多目标优化技术的全新方案,结合了测试用例的静态信息和动态执行信息进行相似性判断,提高了缺陷检测速率,考虑更加全面,能得到更好的结果。
附图说明
[0010]图1为本专利技术方法的总体流程示意图。
具体实施方式
[0011]为了更清楚地展示本专利技术的目的和技术方案,下面将结合附图更加详细地说明本专利技术的具体实施方式。
[0012]一种回归测试中测试用例优先级的排序方法,如图1所示,总体上包括以下三大步骤:步骤1,根据测试用例的文本主题相似性和语句覆盖率相似性进行测试用例聚类;该步骤使用文本主题相似性和代码覆盖率相似性分别衡量测试用例的相似性,并使用权值结合两个相似性,再使用层次聚类方法对测试用例进行聚类,将相似的测试用例归为一类,得到聚类结果。
[0013]所述步骤1,根据测试用例的文本主题相似性和语句覆盖率相似性进行测试用例聚类,如图1所示,包含以下步骤:步骤1.1,将测试用例文本进行预处理,对预处理后的文本进行主题建模,计算测试用例的文本主题相似性;所述测试用例文本预处理是指,提取测试用例文本的语言数据,获取测试用例中的业务关注点;所述主题建模是指,使用主题向量表示每个测试用例与不同语义主题的相关性,近似测试用例的功能;所述测试用例的文本主题相似性是指,通过计算测试用例的文本主题向量之间的距离来度量测试用例间的文本主题相似性,距离越小,代表测试用例越相似。
[0014]步骤1.2,统计测试用例的语句覆盖情况,计算测试用例的语句覆盖相似性;所述测试用例的语句覆盖情况是指,使用测试用例执行被测程序时,将会执行被测程序源代码中的哪些语句。两个测试用例的语句覆盖范围重合越多,代表它们越相似;所述测试用例的语句覆盖相似性是指,使用杰卡德距离计算两个测试用例间基于语句覆盖的相似性,杰卡德距离越小,代表测试用例越相似。
[0015]步骤1.3,根据实验确定两种相似性的加权系数,并计算加权相似性总和;如给文本主题相似性St分配权值0.7,给语句覆盖相似性Sc分配权值0.3,则加权相似性总和为St*0.7+Sc*0.3。两个加权系数的确定,通过在实际项目数据上进行实验后得出。
[0016]步骤1.4,根据加权相似性总和对测试用例进行层次聚类,得到聚类结果;如将层次聚类的阈值设定为N,就将测试用例按相似性划分为了N个不同类,作为聚类结果。
[0017]步骤2,对测试用例进行多目标排序,并根据聚类结果调整排序序列;该步骤结合代码覆盖率最大化、历史执行失败率最大化和执行时间最小化三个目标,使用多目标遗传算法对测试用例进行多目标排序,然后根据步骤1得到的聚类结果调整排序序列,使得序列中靠前的测试用例均分属不同类。该步骤本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种回归测试中测试用例优先级排序方法,其特征在于,包括以下步骤:步骤1,根据测试用例的文本主题相似性和语句覆盖率相似性进行测试用例聚类;步骤2,对测试用例进行多目标排序,并根据聚类结果调整排序序列;步骤3,根据测试用例的历史执行结果挖掘关联规则,动态调整排序序列;从而实现对测试用例优先级的排序。2.根据权利要求1所述的方法,其特征在于,所述步骤1,根据测试用例的文本主题相似性和语句覆盖率相似性进行测试用例聚类,包括以下步骤:步骤1.1,将测试用例文本进行预处理,对预处理后的文本进行主题建模,计算测试用例的文本主题相似性;步骤1.2,统计测试用例的语句覆盖情况,计算测试用例的语句覆盖相似性;步骤1.3,根据实验确定两种相似性的加权系数,并计算加权相似性总和;步骤1.4,根据加权相似性总和对测试用例进行层次聚类,得到聚类结果;根据权利要求1所述的方法,其特征在于,所述步骤...

【专利技术属性】
技术研发人员:杨秋辉刘巧韵潘春霞
申请(专利权)人:四川大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1