测试基础:测试中的语句覆盖率

2024-03-31   出处: DEV Community  作/译者:Arindam Majumder/Yilia

软件测试领域广泛使用语句覆盖率。 这种技术可以确保每一行代码都能得到测试运行,从而使软件变得强大并且没有错误。

本文将探讨什么是声明覆盖率、它的工作原理、它的好处等等!

什么是语句覆盖

语句覆盖是一种白盒测试技术,尝试执行源代码中的所有语句。 它的目标是代码中的每一条语句至少执行一次,以达到100%的语句覆盖率。

使用这种测试覆盖率技术,计算测试期间执行的源代码中的语句的百分比。

其公式为:

语句覆盖率 =(执行的语句/语句总数)* 100

语句覆盖率并不能确保所有功能的完整测试,它衡量的是被测试语句的数量

怎么运行的

首先,确定代码中存在的语句总数。 这包括所有可执行语句,例如 if 条件、循环、函数调用等。接下来,编写测试用例来执行尽可能多的语句。然后运行测试用例并确定执行的语句。最后,使用公式计算语句覆盖率。

例子

input (int a, int b) {
    int sum = a + b;
    If (sum > 0) {
        Print (This is the positive result);
    } else {
        Print (This is the negative result);
    }
}

对于这个例子,有两个case:

  • 一种是正向结果
  • 一种是负向结果。

Case 1:

如果结果为正,将 a 和 b 都视为正,其中 a 等于 3,b 等于 5。

由于总和是正数(大于零),因此它将执行 if 块,并跳过 else 块。

语句总数:5

执行的语句:3

报表覆盖率 = (3/5) * 100 = 60%

Case 2:

如果结果为负,将 a 和 b 都视为负,其中 a 等于 -3,b 等于 -5。

现在,总和将为负数,并且与前一个不同,它将执行 else 块并跳过 if 块。

语句总数:5

执行的语句:4

报表覆盖率 = (4/5) * 100 = 80%

合计 :

为了实现 100% 的综合测试覆盖率,目标是利用具有不同输入值的代码来执行所有可能的路径。 这种方法可确保系统经过严格的评估,并确保任何可能的问题都能得到及时识别和解决。

语句总数:5

已执行的语句:5

报表覆盖率 = (5/5) * 100 = 100%

通过这两个测试用例,至少执行了每条语句一次!

重要性

现在对什么是声明覆盖率及其工作原理已有了基本的了解! 你可能会想,为什么要关心这个? 其意义何在?让我们看看这种类型的测试覆盖率的好处:

  • 它可以帮助我们找到未经测试的内容。
  • 它充当测试彻底性的初始指标。
  • 通过分析语句的执行,它可以识别未使用的代码以将其删除。

声明:本文为本站编辑转载,文章版权归原作者所有。文章内容为作者个人观点,本站只提供转载参考(依行业惯例严格标明出处和作译者),目的在于传递更多专业信息,普惠测试相关从业者,开源分享,推动行业交流和进步。 如涉及作品内容、版权和其它问题,请原作者及时与本站联系(QQ:1017718740),我们将第一时间进行处理。本站拥有对此声明的最终解释权!欢迎大家通过新浪微博(@测试窝)或微信公众号(测试窝)关注我们,与我们的编辑和其他窝友交流。
148° /1487 人阅读/0 条评论 发表评论

登录 后发表评论