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

一种基于测试异味的不稳定测试根因分类方法技术

技术编号:35210812 阅读:31 留言:0更新日期:2022-10-15 10:23
本发明专利技术公开了一种基于测试异味的不稳定测试根因分类方法,该方法包括:将执行失败的测试用例重新执行指定次数,若出现至少有一次执行结果与之前不同的情况,则可以判断该测试用例为不稳定测试;针对筛选出来的不稳定测试,使用现有的技术检测其存在哪些测试异味;将测试异味检测结果输入到分类器算法中,分类器会预测导致该不稳定测试的根本原因。本发明专利技术提供的方法,利用测试异味和不稳定测试之间紧密的对应关系,通过测试异味来预测不稳定测试的根本原因,极大的降低了根因分析的耗时,有助于提升不稳定测试原因分析的效率和修复策略的推荐。略的推荐。略的推荐。

【技术实现步骤摘要】
一种基于测试异味的不稳定测试根因分类方法


[0001]本专利技术涉及软件测试技术,具体为一种基于测试异味的不稳定测试根因分类方法。

技术介绍

[0002]不稳定测试(Flaky Tests)是指使用相同代码运行测试,结果时而通过,时而失败。它们的问题在于:(1)可能会隐藏真正的缺陷,并且由于其不稳定性而难以再现。(2)增加了维护成本,因为开发人员可能不得不花费大量时间来调试不是真正的缺陷,而只是不稳定缺陷。更重要的是,从心理学的角度来看,不稳定测试会减少开发人员对测试的信心,可能导致真正的测试失败被忽略。
[0003]目前还不存在对不稳定测试的根本原因进行自动识别的技术。对于Flaky Tests原因的分析还是依靠人工完成,非常耗费人力。这导致很多企业没有足够的精力去维护和解决不稳定测试问题,反过来又导致了测试的不稳定性和维护成本的增加。据此本专利技术公开了一种基于测试异味的不稳定测试根因分类方法。

技术实现思路

[0004]本专利技术的目的在于提供一种基于测试异味的不稳定测试根因分类方法,以解决上述
技术介绍
中提出的问题。
[0005]为了解决上述技术问题,本专利技术提供如下技术方案:一种基于测试异味的不稳定测试根因分类方法,其特征在于,所述方法如下:
[0006]步骤1:将执行失败的测试用例重新运行指定次数,若出现至少有一次执行结果与之前不同的情况,则判定该测试用例为不稳定测试;
[0007]步骤2:针对筛选出来的不稳定测试,使用现有的技术检测其存在哪些测试异味;r/>[0008]步骤3:将测试异味检测结果输入到分类器算法中,分类器会预测导致该不稳定测试的根本原因。
[0009]不稳定测试筛选过程中,对执行结果为失败的测试用例重跑指定的阈值次数,在阈值次数内,若出现执行通过的情况,说明该用例为不稳定测试,阈值次数根据项目的具体要求来确定。
[0010]测试异味检测过程中,使用现有的测试异味检测工具对筛选出来的不稳定测试进行检测,主要检测的异味有:资源乐观、间接测试、测试运行时冲突、休眠测试这4种测试异味。
[0011]不稳定测试根因分类过程中,将不稳定测试的根本原因划分为5类,分别是:测试运行环境类、异步等待类,并发类,测试顺序依赖类和其他。当测试异味检测结果输入到分类器算法后,分类器会分别预测该不稳定测试的根因是否与测试运行环境类有关,是否与异步等待类有关,是否与并发类有关,是否与测试顺序依赖类有关,若都不是,则将其根本原因分为其他类别。
[0012]本专利技术所达到的有益效果在于:提供了一种自动化的不稳定测试根因分析方法。它利用测试异味和不稳定测试根因之间存在的强相关性进行预测,能够迅速并准确的预测出导致某个不稳定测试的根本原因有哪些类别。与人工分析相比,该方法能够明显节省不稳定测试根因分析所消耗的时间和人力,同时有着较高的准确度,因为不稳定测试根因预测结果有测试异味检测结果来支撑。该方法能够为企业提供一种快速有效识别不稳定测试根本原因的能力,有助于消除不稳定测试,从而帮助企业优化测试用例质量。
附图说明
[0013]附图用来提供对本专利技术的进一步理解,并且构成说明书的一部分,下面将结合服务对本专利技术作优选的详细描述,其中:
[0014]图1是本专利技术一种基于测试异味的不稳定测试根因分类方法的的流程图;
[0015]图2是本专利技术一种基于测试异味的不稳定测试根因分类方法的示意图。
具体实施方式
[0016]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,本领域技术人员可由本说明书所描述的内容轻易地了解本专利技术的其他优点与功效,显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0017]本文使用术语“测试异味”,被定义为测试代码中的不良编程实践(例如测试用例是如何组织、实现和相互交互的),它表明测试源代码中潜在的设计问题。
[0018]本文使用术语“资源乐观”,是一种测试异味,是指对外部资源的状态做出乐观假设的测试用例,这可能会导致不稳定的测试结果。
[0019]本文使用术语“间接测试”,是一种测试异味,是指使用来自其他类的方法去测试被测类。
[0020]本文使用术语“测试运行时冲突”,是一种测试异味,当测试方法分配的资源也被其他测试方法使用时,就会产生不稳定的情况。
[0021]本文使用术语“休眠测试”,是一种测试异味,在测试用例中显式使线程休眠时发生,它可能会导致不稳定测试的结果。
[0022]本文使用术语“不稳定测试”,是指对相同的代码执行测试,每次的执行结果都可能不同的情况,导致不稳定测试的原因有很多,可能有测试用例本身,测试用例运行的框架或测试系统本身,测试系统所依赖的环境等。
[0023]本文使用术语“测试运行环境类”,是导致不稳定测试根因的一个分类,主要包括网络、IO和资源泄漏问题,其中网络问题主要是指测试执行结果会受到网络性能的影响,IO问题是指测试方法没有正确管理外部资源,而资源泄漏指的是测试方法没有正确地获取或释放其所使用的资源。
[0024]本文使用术语“异步等待类”,是导致不稳定测试根因的一个分类,例如一个测试进行了一次异步调用,但是没有等待异步调用的结果。
[0025]本文使用术语“并发类”,是导致不稳定测试根因的一个分类,例如测试用中存在
不同的线程以不可避免的方式相互作用。
[0026]本文使用术语“测试顺序依赖类”,是导致不稳定测试根因的一个分类,主要指的是测试结果会受到测试用例执行顺序的影响。
[0027]本文使用术语“TestQ”,是一个现有的测试异味检测工具,该工具为开发人员提供了一个可视化界面来,以探索测试套件并能够检测12种测试异味。
[0028]本文使用术语“C4.5算法”,是由Ross Quinlan开发的用于产生决策树的算法,用于实现通过一系列规则对数据进行分类的过程。该算法是对Ross Quinlan之前开发的ID3算法的一个扩展。C4.5算法产生的决策树可以被用作分类目的,因此该算法也可以用于统计分类。C4.5算法与ID3算法一样使用了信息熵的概念,并和ID3一样通过学习数据来建立决策树。
[0029]实施例1:
[0030]本实施例的技术方案适用于从失败用例中找到不稳定测试,并预测这些不稳定测试的根本原因的情况,该方法可以由测试平台或测试系统来执行或实现,具体包括如下步骤:
[0031]步骤110、将执行失败的测试用例重新运行指定次数,若出现执行结果与之前不同的情况,则判定该测试用例为不稳定测试。
[0032]其中,执行失败的测试用例是指执行测试用例集后未通过的用例,可能是由于代码存在缺陷,也可能是不稳定测试导致的;重跑是指在代码和环境都不变的情况下,重新运行该测试用例。
[0033]本实本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种基于测试异味的不稳定测试根因分类方法,其特征在于,所述方法如下:步骤1:将执行失败的测试用例重新运行指定次数,若出现执行结果与之前不同的情况,则判定该测试用例为不稳定测试;步骤2:针对筛选出来的不稳定测试,使用现有的技术检测其存在哪些测试异味;步骤3:将测试异味检测结果输入到分类器算法中,分类器会预测导致该不稳定测试的根本原因的类别。2.根据权利要求1所述的基于测试异味的不稳定测试根因分类方法,其特征在于,步骤1中的不稳定测试筛选过程包括:对执行结果为失败的测试用例重跑指定的阈值次数,在阈值次数内,若出现执行通过的情况,说明该用例为不稳定测试,阈值次数根据项目的具体要求来确定。3.根据权利要求1所述的基于测试异味的不...

【专利技术属性】
技术研发人员:刘博涵张贺詹泽晔荣国平周鑫邵栋
申请(专利权)人:南京大学
类型:发明
国别省市:

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

1