软件测试中的测试覆盖率
什么是测试覆盖率?
测试覆盖率被定义为软件测试中的一种指标,用于衡量一组测试所执行的测试量。它将包括收集有关在运行测试套件时执行程序的哪些部分的信息,以确定已执行条件语句的哪些分支。
简单来说,它是一种技术,可以确保您的测试正在测试您的代码,或者通过运行测试来测试您执行了多少代码。
测试覆盖率起什么作用?
- 查找一组测试用例未实现的需求区域
- 帮助创建额外的测试用例以增加覆盖率
- 确定测试覆盖率的定量指标,这是质量检查的间接方法
- 识别不会增加覆盖率的无意义的测试用例
如何实现测试覆盖率?
- 测试覆盖率可以通过使用同行评审、检查和演练等静态评审技术来实现
- 将临时缺陷转化为可执行的测试用例
- 在代码级或单元测试级,可以通过利用自动代码覆盖或单元测试覆盖工具来实现测试覆盖
- 可以借助适当的测试管理工具完成功能测试覆盖
软件工程中测试覆盖率的好处
- 可以保证测试的质量
- 它可以帮助确定代码的哪些部分在发布或修复时实际被触及
- 它可以帮助确定应用程序中未经测试的路径
- 防止 缺陷 泄漏
- 时间、范围和成本可得到控制
- 项目生命周期早期阶段的缺陷预防
- 它可以确定应用程序中使用的所有决策点和路径,从而可以提高测试覆盖率
- 可以轻松找到需求、测试用例和单元级及代码级缺陷之间的差距
代码覆盖率和测试覆盖率之间的主要区别是什么?
代码覆盖率 和测试覆盖率是允许您评估应用程序代码质量的测量技术。
以下是这些覆盖方法的展位之间的一些关键区别:
参数 | 代码覆盖率 | 测试覆盖率 |
---|---|---|
定义 | 当应用程序运行时执行应用程序代码时使用的代码覆盖率术语。 | 测试覆盖率是指总体的测试计划。 |
目标 | 代码覆盖率指标可以帮助团队监控他们的自动化测试。 | 测试覆盖率详细说明了应用程序的书面编码的测试级别。 |
亚型 | 代码覆盖率分为语句覆盖率、条件覆盖率、分支覆盖率、Toogle 覆盖率、FSM 覆盖率等子类型。 | 没有测试覆盖方法的子类型。 |
测试覆盖率公式
要计算测试覆盖率,您需要遵循以下步骤:
步骤1) 您所关心的软件质量的代码行总数 测试
步骤2) 所有测试用例当前执行的代码行数
现在,您需要找到 (X 除以 Y) 乘以 100。此计算的结果就是您的测试覆盖率。
例如:
如果系统组件中的代码行数为 500 行,并且所有现有测试用例中执行的行数为 50 行,则您的测试覆盖率为:
(50 / 500) * 100 = 10%
测试覆盖率示例
例如1:
例如,如果“刀”是您想要测试的物品。那么您需要重点检查它是否能准确地切蔬菜或水果。但是,还有其他方面需要考虑,例如用户是否能够舒适地使用它。
例如2:
例如,如果您想检查记事本应用程序。那么检查它的基本功能是必须的。但是,您需要涵盖其他方面,例如记事本应用程序在使用其他应用程序时做出预期的响应,用户了解应用程序的用途,当用户尝试执行某些不寻常的操作时不会崩溃等。
测试覆盖率的缺点:
- 由于没有自动化工具,测试覆盖范围内的大多数任务都是手动的。因此,分析需求和创建测试用例需要花费大量精力。
- 测试覆盖率允许您统计特征,然后根据多个测试进行衡量。然而,判断错误总是存在的。