什么是测试案例优先级?

测试案例优先级是一种方法,其中调度测试用例的执行顺序以最大限度地提高软件测试效率。

考虑软件开发生命周期中的常见困境:必须进行测试,但没有足够的时间来运行完整的回归套件。通过优先化方法,可以计划测试执行,使得仅运行覆盖最多源代码的测试子集。此方法可减少测试软件所需的时间,同时最大限度地提高测试效率。

但我们如何确定正确的测试子集?并且,通过扩展,我们如何确定我们的测试套件提供的源覆盖范围?答案:使用代码覆盖工具。

代码覆盖分析

蛙人’S鳞COCO是一种多语言代码覆盖分析工具链。使用自动源仪器,COCO可以确定手动,单位,GUI或集成测试执行给出的源覆盖范围。它提供专门用于测试案例优先级的功能。椰树’s CoverageBrowser. 程序将计算使用少量测试可以快速达到高码覆盖的测试的执行顺序。 Coco将提供一个执行顺序,其中首先列出了具有最高覆盖率的测试。第二个测试是一个使得额外的代码覆盖尽可能高,等等。所有这些都是自动计算的,按下按钮。

We’ll look into Coco’使用简单的C ++程序测试案例优先级的方法,该程序充当基本表达式的解析器(或,或计算器)。此示例包含在所有COCO包中。

逐步示例

解析器 示例包括一组单元测试。为了利用Coco’S测试案例优先级, 您必须首先仪器应用程序并执行所有单元测试一次。 该文件包括 逐步指南 做那个。

一旦 解析器 程序由仪器编译,并进行测试,我们’ll查看覆盖范围结果 CoverageBrowser. 。执行测试后生成两个文件: unittests.csmes. unittests.csexe. 。前者包含覆盖率测量所需的信息,而后者包含代码执行的结果。

将这些装入Coco’s CoverageBrowser. :

$ coveragebrowser -m unittests.csmes -e unittests.csexe

要计算优化的测试执行顺序,请按照下列步骤操作:

  1. 选择中的执行 执行 窗户。 (在此示例中,一个测试失败—您可以取消选择本机测试。)
  2. 从顶部菜单栏中,选择 看法>优化的执行顺序…
  3. 在出现的窗口中,单击 计算 .

窗口显示优先级。它显示了在执行这些测试的聚合覆盖级别和聚合时间。注意:对于结果中的每条新行,它会显示累积的覆盖范围。例如,单元测试 testvar. 提供29.208%的代码覆盖,计算时间为0.000681秒。第2行, testsyntax. ,列出两者的添加覆盖范围 testsyntax. 和前面的测试, testvar. ,32.921%。

我们选择了14个总单元测试中的13个优先考虑。但是,你’LL注意仅11个单元测试显示在优化的执行顺序窗口中。优化只关注覆盖范围。也就是说,如果两个测试涵盖相同的代码,COCO将使它们识别为冗余,并将忽略其中一个。这对于例如烟雾测试来说是有道理的,但是 不推荐 用于全功能测试运行。

优化的执行顺序

现在,在未来的测试中,时间是时间是限制约束,您只能选择在最短的时间内提供最高覆盖的测试。例如,如果您的测试方法包括许多手动测试,则证明有用。

未来阅读的建议

测试影响分析,另一种提高测试效率的优化方法,用于确定哪些测试执行特定代码。例如,此分析非常有用’ve将最后一分钟的修补程序提交给源代码,但没有足够的时间来运行完整的测试套件。你’D仍然想进行一些风险评估。通过测试影响分析, 您可以专门显示已更改的代码行的代码覆盖,并在覆盖它们的大型套件中找到测试。我们’在这个主题上写了一篇文章,你可以找到 这里 .

概括

测试案例优先级可以节省大量的时间和精力,尤其是在时间是限制约束的发展方案中。使用DEMISC COCO等代码覆盖工具,您可以使用单击按钮确定优化的执行顺序。

发表评论

您的电子邮件地址不会被公开。 必需的地方已做标记 *

复制链接