软件测试中的测试覆盖率

什么是测试覆盖率?

测试覆盖率被定义为软件测试中的一种指标,用于衡量一组测试所执行的测试量。它将包括收集有关在运行测试套件时执行程序的哪些部分的信息,以确定已执行条件语句的哪些分支。

简单来说,它是一种技术,可以确保您的测试正在测试您的代码,或者通过运行测试来测试您执行了多少代码。

测试覆盖率起什么作用?

  • 查找一组测试用例未实现的需求区域
  • 帮助创建额外的测试用例以增加覆盖率
  • 确定测试覆盖率的定量指标,这是质量检查的间接方法
  • 识别不会增加覆盖率的无意义的测试用例

如何实现测试覆盖率?

  • 测试覆盖率可以通过使用同行评审、检查和演练等静态评审技术来实现
  • 将临时缺陷转化为可执行的测试用例
  • 在代码级或单元测试级,可以通过利用自动代码覆盖或单元测试覆盖工具来实现测试覆盖
  • 可以借助适当的测试管理工具完成功能测试覆盖

软件工程中测试覆盖率的好处

  • 可以保证测试的质量
  • 它可以帮助确定代码的哪些部分在发布或修复时实际被触及
  • 它可以帮助确定应用程序中未经测试的路径
  • 防止 缺陷 泄漏
  • 时间、范围和成本可得到控制
  • 项目生命周期早期阶段的缺陷预防
  • 它可以确定应用程序中使用的所有决策点和路径,从而可以提高测试覆盖率
  • 可以轻松找到需求、测试用例和单元级及代码级缺陷之间的差距

代码覆盖率和测试覆盖率之间的主要区别是什么?

代码覆盖率 和测试覆盖率是允许您评估应用程序代码质量的测量技术。

以下是这些覆盖方法的展位之间的一些关键区别:

参数 代码覆盖率 测试覆盖率
定义 当应用程序运行时执行应用程序代码时使用的代码覆盖率术语。 测试覆盖率是指总体的测试计划。
目标 代码覆盖率指标可以帮助团队监控他们的自动化测试。 测试覆盖率详细说明了应用程序的书面编码的测试级别。
亚型 代码覆盖率分为语句覆盖率、条件覆盖率、分支覆盖率、Toogle 覆盖率、FSM 覆盖率等子类型。 没有测试覆盖方法的子类型。

测试覆盖率公式

要计算测试覆盖率,您需要遵循以下步骤:

步骤1) 您所关心的软件质量的代码行总数 测试

步骤2) 所有测试用例当前执行的代码行数

现在,您需要找到 (X 除以 Y) 乘以 100。此计算的结果就是您的测试覆盖率。

例如:

如果系统组件中的代码行数为 500 行,并且所有现有测试用例中执行的行数为 50 行,则您的测试覆盖率为:

(50 / 500) * 100 = 10%

测试覆盖率示例

例如1:

例如,如果“刀”是您想要测试的物品。那么您需要重点检查它是否能准确地切蔬菜或水果。但是,还有其他方面需要考虑,例如用户是否能够舒适地使用它。

例如2:

例如,如果您想检查记事本应用程序。那么检查它的基本功能是必须的。但是,您需要涵盖其他方面,例如记事本应用程序在使用其他应用程序时做出预期的响应,用户了解应用程序的用途,当用户尝试执行某些不寻常的操作时不会崩溃等。

测试覆盖率的缺点:

  • 由于没有自动化工具,测试覆盖范围内的大多数任务都是手动的。因此,分析需求和创建测试用例需要花费大量精力。
  • 测试覆盖率允许您统计特征,然后根据多个测试进行衡量。然而,判断错误总是存在的。