精确测试

简介: # 定义 直接引用百度的 : 精准测试是一套计算机测试辅助分析系统。精准测试的核心组件包含的软件测试示波器、用例和代码的双向追溯、智能回归测试用例选取、覆盖率分析、缺陷定位、测试用例聚类分析、测试用例自动生成系统,这些功能完整的构成了精准测试技术体系   # 背景 集团的同学分享了...

# 定义

直接引用百度的 :

精准测试是一套计算机测试辅助分析系统。精准测试的核心组件包含的软件测试示波器、用例和代码的双向追溯、智能回归测试用例选取、覆盖率分析、缺陷定位、测试用例聚类分析、测试用例自动生成系统,这些功能完整的构成了精准测试技术体系

 

# 背景

集团的同学分享了关于精准测试的文章,看了下简单记录一下

 

# 正文

(以下都是个人理解,如果有不对欢迎留言讨论)

1. 做测试的朋友都可能碰到过:漏测/少测,根本原因是不知道研发改动了什么/影响到什么 or 是知道了改动了什么但因为一些需求历史不清楚,导致不知道影响到了什么;

1. 精准的对立就是模糊,精准测试说白了就是当研发提交一个新版本过来的时候,你知道它改动了什么,影响到哪些接口/方法,然后针对改动点去测试。是从测试的角度去看待问题,提高测试的效率,毕竟之前是要求全量回归的,现在只需要测试部分;

2. 精准测试 跟 回归测试有没有悖论呢 ?回归测试,验证新功能会不会对其他原有功能造成影响;而精准测试貌似说是可以发现这些影响面? 了解了精准测试的大致原理,我只能说很难发现,why?

3. 精准测试的大致思路:研发改动了什么 --> 影响面评估 -->  筛选用例 --> 用例执行 ;

 

# 没有精确测试

1. 提测 -- 研发提交代码,告知改动点,可能的影响面,自测点,测试重点(这里需要靠谱的研发!!)

2. 用例编写 -- 针对这次需求/改动点编写用例,用业务经验/技术经验来评估影响面来新增用例;

3. 用例review -- 用例发给组内同学一起讨论下,从别人的角度看待问题;

4. 用例执行 ;

总结: 其实用业务经验、技术经验、用例组内review就是一种精确测试,只是人工的形式罢了

 

# 有了精确测试

1. 提测 -- 通过git工具获取本次提交的变更记录,获取改动的情况,可具体到哪个文件;

2. diff --  通过diff工具,git也有diff功能,class文件的diff,目的就是找出方法级别的改动;

3. 分析调用链路 -- 通过分析源码,找到入口,也就是top方法,java的service层,controller层

4. 筛选用例 --  根据链路上的影响分析需要回归哪些用例;

总结:整体大致流程就是:代码push --> 触发精准测试任务 --> 通过git工具获取改动详情(文件,方法,入口)--> 在用例库中筛选用例自动化执行 --> 报告输出(用例+覆盖率)

 

# 精确测试好处

1. 评估影响面,对长链路测试有帮助,A-B-C-D,修改了C,能评估中ABD中方法级别的影响;

2. 提高测试效率,避免了不必要的用例执行;

 

# 精确测试的疑问

1. 如果同一个工程中的链路,用精确测试确实可以精确的发现影响面,提供测试效率,但是多系统之间呢 ?如购物车系统 + 订单系统,两个不同的团队之间的链路,只能评估到比较粗的粒度;

2. 数据依赖的,无法解决;A系统的代码变更导致写入DB中的数据变化了,B系统知识根据数据来走业务流程,那么A跟B的联系 就断开了,目前看到的文章只能在代码级别做关联;

 

# 可借鉴的

1. 思路:从代码追溯到接口级别的改动来筛选用例,可以帮忙评估影响面,结合CI流程,是不是每次代码push可以有个大致的影响面评估图呢?

虽千万人,吾往矣!
目录
相关文章
|
Java fastjson API
Springboot 整合 xxljob 动态API调度任务(进阶篇)
Springboot 整合 xxljob 动态API调度任务(进阶篇)
7765 0
Springboot 整合 xxljob 动态API调度任务(进阶篇)
|
人工智能 Python
玩转AIGC(人工智能生成内容)需要一些小技巧
使用这些小技巧可以更好地发挥AIGC的潜力,创造出更符合预期和创意的内容。
491 1
|
Java Linux Maven
要自定义编译和打包Seata-All
要自定义编译和打包Seata-All
353 2
|
存储 安全 Java
解析 Java 的 MultipartFile 接口:实现文件上传的全面指南
在现代的 Web 开发中,文件上传是一个常见的需求,而 Java 中的 `MultipartFile` 接口正是用来处理这类任务的重要工具。无论是上传图片、音频、视频还是其他文件类型,`MultipartFile` 都提供了便捷的方法来处理文件的接收和存储。本文将带您深入探索 Java 中的 `MultipartFile` 接口,揭示其功能、用法以及在实际开发中的应用场景。
|
前端开发 JavaScript 数据库
https页面加载http资源的解决方法
https页面加载http资源的解决方法
780 7
|
10月前
|
Go Python
Python中的round函数详解及使用示例
`round()`函数是Python内置的用于四舍五入数字的工具。它接受一个数字(必需)和可选的小数位数参数,返回最接近的整数或指定精度的浮点数。本文详细介绍其用法、参数及示例,涵盖基本操作、负数处理、特殊情况及应用建议,帮助你更好地理解和运用该函数。
1462 2
|
Java 关系型数据库 MySQL
springboot学习五:springboot整合Mybatis 连接 mysql数据库
这篇文章是关于如何使用Spring Boot整合MyBatis来连接MySQL数据库,并进行基本的增删改查操作的教程。
2784 0
springboot学习五:springboot整合Mybatis 连接 mysql数据库
|
JavaScript 前端开发 应用服务中间件
Vue3 + Vite + TypeScript + Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(2)
Vue3 + Vite + TypeScript + Element-Plus:从零到一构建企业级后台管理系统(前后端开源)(2)
|
存储 运维 Linux
Linux磁盘精准缩容:操作详解与技巧
在Linux系统管理中,有效的磁盘空间优化对于维护系统性能至关重要。本文将深入探讨如何在Linux环境下安全地进行磁盘缩容,帮助你合理调整存储资源,确保系统高效运行。跟随本篇的步骤,一起优化你的Linux系统磁盘空间!
Linux磁盘精准缩容:操作详解与技巧
|
前端开发 JavaScript API
带你入门前端工程(十一):微前端(上)
带你入门前端工程(十一):微前端
247 0