首页 > 其他分享 >测试覆盖率

测试覆盖率

时间:2022-10-21 11:32:39浏览次数:58  
标签:覆盖 覆盖率 代码 测试用例 测试 自动化

名称

分母

分子

示例

手工测试覆盖率

所有测试用例

手工测试执行的用例

A系统目前3个测试工程师参与了4个月,写了近300条测试用例,那目前的300条就作为整个测试覆盖率的分母

接口覆盖率

接口总数

测试涉及的接口总数

系统有10个接口,对其中8个做了接口自动化测试,那么覆盖率就是80%

自动化测试覆盖率

测试用例总数

自动化测试涉及的测试用例总数

系统有100条测试用例,其中有60条用例已经被自动化脚本化测试,那么覆盖率是60%

测试用例覆盖率

测试功能点总数

自动化测试涉及的测试功能点

系统有100条测试用例,400个测试功能点(checkpoint),其中200个Checkpoint已经被自动化测试脚本测试,那么覆盖率是50%

需求覆盖率

所有用户故事或任务

已被测试的用户故事或任务

目的:测试的行为覆盖了每一个需求

缺陷覆盖率

已被发现并修复的缺陷数量

对缺陷进行自动化测试的数量

A系统上线前共发现了70个缺陷,测试工程师将这70个“已经被修复”的缺陷写成了自动化测试用例

代码行覆盖率

代码总行数

被执行过的代码行数

一个Java应用有10W行代码,执行了一次手工回归测试,同时也触发了自动化测试脚本,然后利用Jacoco组件查看看测试覆盖率,发现10W行代码中,有3W行代码已经被覆盖了,那么代码行覆盖率就是30%

代码分支覆盖率

代码总分支数

被执行过的代码分支数

本质上与代码行覆盖率一样,只是统计的维度不一样

 

自动化测试覆盖率的案例分享

思路:剔除无意义的套路代码,结合不同的覆盖率指标,综合得出一个相对有价值的覆盖率数据。

做法

1,搭建测试覆盖率环境

Java使用的是Jacoco组件,其他编程语言可以使用其他覆盖率统计组件

2,执行自动化测试脚本

触发自动化测试脚本执行,等待执行完毕。

测试覆盖率_测试用例

 

 

上图说明:

  • 绿色区域:代码行覆盖率充分,100%覆盖了该代码。
  • 黄色区域:代码行覆盖不充分。
  • 红色区域:代码行未经过覆盖。
  • 绿色钻石:代码分支覆盖率充分,100%覆盖了该代码分支。
  • 黄色钻石:代码分支覆盖率不充分。
  • 红色钻石:代码分支未经过覆盖。

请注意,此时请勿打开测试环境的系统页面、接口调用等操作,保证数据的真实性。

测试覆盖率_自动化测试_02

 

 

3,筛选掉无意义的套路代码

以SpringBoot框架为例,如bean、model、entity、util、mapper、dao、constant、config等目录,大部分都是套路的代码统统过滤掉。

留下有业务意义的代码目录:controller、service目录和自己封装的业务函数类,服务端代码的业务逻辑运算、接口的代码逻辑都在这里,这才是代码的核心部分。

自动化脚本执行完成后,Jacoco测试覆盖率从0%变成了多少,那么目前的自动化测试脚本覆盖率就是多少。

 

重点

代码覆盖率本身具有局限性,因为100%的代码覆盖率并不能说明系统质量没有问题。所以除了关注已被测试行为覆盖的代码,更重要的是观察未被覆盖的代码,因为这部分是没有测试用例覆盖到的,让测试工程师自己发现思维的不足、遗漏的用例,这才更有价值。

 

  作者:Syw



标签:覆盖,覆盖率,代码,测试用例,测试,自动化
From: https://blog.51cto.com/u_15739244/5781765

相关文章

  • Postman----登录接口返回的reponse中token值传递给其他接口的一个简单接口测试示例
    注:在进行接口测试时,我们都需要使用登录,并且其他的接口都要在登录后进行,那么必不可少的会使用到将登录接口的reponse返回结果中的某些参数值需要进行返回,并传递给其他接......
  • 接口及测试
    前端和后端不管是web端还是移动端,我们看到的就是前端,除了展示页面,还做一些简单的校验、逻辑控制;而像下单购买、扣减库存,是由后端实现的,前端和后端的交互,就是通过接口实现......
  • 单元测试
    1.pom.xml<dependency>  <groupId>org.springframework.boot</groupId>  <artifactId>spring-boot-starter-test</artifactId>  <scope>test</scope></......
  • C# 抽象类继承接口简单测试
    classIA_TEST{interfaceITest{voidTest();}abstractclassIATest:ITest{publicabstractvoidTest();}c......
  • robotframework自动化测试框架实战教程:创建及使用测试库
    创建测试库测试库的实现可以是Python模块,也可以是Python类.Python模块   Python类 测试库通常在Setting表格中设置 Library 来导入,库名称跟在 Libra......
  • 测试开发jmeter设置线程序号
    测试开发jmeter设置线程序号${__threadNum}需要在请求的名称后面加上${__threadNum}    然后运行结果如下: ......
  • 软工大数据期中测试
    Result文件数据说明:Ip:106.39.41.166,(城市)Date:10/Nov/2016:00:01:02+0800,(日期)Day:10,(天数)Traffic:54,(流量)Type:video,(类型:视频video或文章article)Id:8701(视频或......
  • 聊聊测试工程师的核心竞争力
    核心竞争力实际上就是个人价值诉求的一种表达。我划分了四个较为通用的维度,从这几个维度出发,聊聊不同阶段我的一些看法和建议。思维导图 时间维度1、小白入门在这......
  • 5G 增强型“智能垃圾箱”测试
    英国桑德兰市正在试行多项5G增强型智慧城市技术,包括“智能垃圾箱”。试验期间,在全市范围内安装了许多智能垃圾箱。智能垃圾箱是该市议会与BAICommunications(BAI)合......
  • Google Analytics 测试
    集成谷歌分析之后官方提供了测试工具——DebugView可以通过这个工具验证sdk集成的是否正确官方文档:https://firebase.google.com/docs/analytics/debugview测试步骤:......