这篇把「精准测试」算是讲明白了

news2024/10/5 17:28:00

 

作为测试同学,我们经常在工作中会有这样的困惑:我写的用例真的有效且全面吗,我的测试真的做到有效覆盖了吗?回归阶段我到底需要回归什么,回归验证充分吗?这次的改动到底影响范围有多大?针对以上问题,精准测试应运而生,其目的是为了使得测试过程更加可视化、智能化、精准化。本文通过对精准测试的简单介绍,希望可以在以后的项目测试中,多思考,多向精准测试靠近,提升测试效率以及测试准确性。


什么是精准测试

精准测试产生的背景

传统测试的痛点:

  1. 测试效率低下: 常规的测试类型包括功能测试、回归测试、自动化测试、接口测试等,非常依赖于测试人员的测试经验,基于人工主观分析的黑盒测试,借助常规的用例设计方法来确保产品质量。
  2. 测试范围无法评估:多分支代码合并到主分支,修改哪个文件哪个行,测试不可控;代码更新影响哪些功能无感知;大部分的测试还是基于对业务的理解,与真实业务数据还有差距,准确性难以保证,盲测,风险大;
  3. 测试过程中的质量标准无法衡量: 怎么样判定测试完成,怎么样判定测的怎么样?质量控制贯穿于整个质量保障流程。 难道测试用例执行完了,回归测试执行完了,就算测试完成了吗?
  4. 敏捷模式和分布式微服务架构下的挑战:迭代周期短,需求频繁变更,软件系统越来越复杂

基于上述痛点,我们期望从以下方面解决:

科学地评估代码变更影响到的功能点,需要对这部分代码做准确的针对性的测试;对代码的逻辑进行深刻的理解,哪些分支代码被覆盖到,哪些分支代码没有被覆盖到,进行详细的分析,找出漏测的地方

精准测试的概念

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

精准测试的目的

精准测试的核心思想就是使用非常精确和智能的软件来解决传统软件测试过程中存在的问题,从根本上引领从经验型方法向技术型方法的转型。质量的评估不再完全靠个人经验和业务熟悉度,而是通过精准的数据来判定。在测试资源有限的前提下,将用例精简到更加有针对性,提高测试效率,有效的减少漏测风险。

精准测试的核心

精准测试由软件去采集测试过程执行的代码逻辑及测试数据的过程,自动建立测试用例与程序代码之间的逻辑关系。在测试过程加入软件的采集过程,可以形成正向和逆向的追溯:

通过正向追溯,开发人员可以看到测试人员执行用例的代码细节,以方便进行缺陷的修复,测试数据可以直接为开发调试提供依据,快速定位并修复缺陷。

通过逆向追溯,测试人员通过修改的源代码快速确定测试用例的范围,极大减少回归测试的盲目性和工作量,快速修订测试用例,达到测试覆盖率最大化。

精准测试思路

精准测试的核心是一自动化的软件对软件测试过程数据进行记录,从而实现精准测试用例推荐。通过精准测试,我们可以实现软件质量的实时监控,回归用例的智能筛选,测试覆盖率的精准分析以及软件缺陷的快速定位

我们希望的

  • 一眼过去就可以看出差异点(本次改动的逻辑)
  • 脑海中就有了差异的影响范围(缩小需要测试的范围)
  • 再一扫就看出哪些测试覆盖到了(确认测试覆盖率)

差异化分析

查看系统整体代码行数,代码各版本间的差异情况,包含增删改代码行数,详细到代码行的结果报告可以避免夹带移交并帮助测试人员快速定位关键测试点。

智能用例推荐

知识库构建

通过如图所示流程,构建知识库

获取推荐用例

在知识库里包含着测试用例和开发代码的关联关系,代码改动后,推荐改动关联的相应测试用例,争取做到,改哪里测哪里,达到精准测试境界;

执行用例

覆盖率统计

说到覆盖率统计,目前用的比较多的jacoco. 但是 jacoco代码覆盖率统计的是全量代码覆盖率,报告冗余,影响我们对报告的分析和查看,为了更精准衡量测试范围和评估影响面,所以需要对jacoco进行二次改造,使jacoco报告计算增量代码覆盖率 。

执行完推荐用例后,我们可以手动执行一下覆盖率统计,获得增量代码覆盖率报告,报告会对变更的方法进行覆盖率统计,效果如图,包括从包、类、方法、代码各个级别的报告:



报告中:

  • 红色背景:这一行没有任何指令被执行;
  • 黄色背景:这一行有部分指令被执行;
  • 绿色背景:这一行的所有指令都被执行了;

通过对报告的分析,可以很明显的看到哪些没有覆盖,需要补充测试等。

小结:

精准测试是一个完整的质量体系架构,传统的黑盒测试与白盒测试相结合的模式,通过不断的对人的行为的分析得出不足点和漏洞点,引导开发和测试有针对性的改正纠偏,逐步的完善整个质量保障体系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/445511.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JAVA集成强密码校验

JAVA集成强密码校验 1 : 背景2 : 代码设计编写2.1 : 引入规则配置2.2 : 密码校验工具类 3 : 验证4 : 相关链接 1 : 背景 最近系统需要做用户密码升级,增加强密码校验,密码长度,复杂度等等,所以整理了一份通用的密码复杂度控制代码…

你了解这2类神经性皮炎吗?常常预示着这5类疾病!

属于慢性皮肤病,患者皮肤可出现局限性苔藓样变,同时伴有阵发性瘙痒。神经性皮炎易发生在颈部两侧和四肢伸侧,中年人是高发人群。到目前为止神经性皮炎病因还并不是很明确,不过一部分病人发病前常常出现精神神经方面异常&#xff0…

SLAM 十四讲(第一版)各章方法总结与理解

SLAM 十四讲(第一版)各章方法总结与理解 总结十四讲中各章各步骤提到的各种方法,以及具体方法在哪个 c 库中可以调用。目的在于能更直观地了解 slam 过程各步骤到底在做什么,以及是怎么联系在一起的。 2. 初识 SLAM SLAM&#x…

ggplot作图中的图例处理方法

文章目录 改变坐标轴和图例的名称方法1, labs()方法2,scale_xxx_discrete/continuous() 删除坐标轴和图例的名称方法1, labs()方法2,scale_xxx_discrete/continuous()方法3,theme()方法4,guides()可以去图例名称 改变图…

怎么挣点零花钱,哪里可以赚点零花钱?以下这些方式值得参考一下

想赚零花钱的人群包括但不限于:大学生、宝妈/宝爸、自由职业者、比较有闲暇时间的上班族。 他们想要赚零花钱的原因不尽相同,但主要就是这几点:经济需求、个人发展、好奇心和乐趣等等。想赚取零花钱的人具有实际需求和个人发展的目标&#xf…

【hello C++】模板初阶

目录 1. 泛型编程 2. 函数模板 2.1 函数模板的概念 2.2 函数模板格式 2.3 函数模板的原理 2.4 函数模板的实例化 2.5 模板参数的匹配原则 3. 类模板 3.1 类模板的定义格式 3.2 类模板的实例化 4. STL简介 4.1 什么是STL 4.2 STL的版本 4.3 STL的六大组件 4.4 STL的重要性 4.5 …

基于.Net开发的ChatGPT客户端,兼容Windows、IOS、安卓、MacOS、Linux

2023年目前要说最热的点,肯定是ChatGPT了。 ChatGPT官方提供的网页版本,还有需要科学上网,很多人都会基于此进行封装。 现在是移动互联网时代,基于手机APP的需求还是很大的。 所以,今天给大家推荐一个ChatGPT客户端开源项目,兼容苹果和安卓手机、PC。 项目简介 这是…

若依管理系统修改页面标题和logo

一:修改网页上的logo 把public目录下favicon.ico,换成自己logo 注:替换图片的名字最好还是以favicon.ico命名,如果改变,就要改public目录下的index.html代码 二:修改页面上的logo 把src/assets/logo/logo.png换成自己l…

【Chano的SFM教程】3dmax 面部表情.VTA基本制作教程

本篇教程作者为:小鸟Chano,转载请表明作者和出处:CSDN 欢迎观看本次教程 本教程将会为你演示使用3D MAX 制作一个基本的SFM表情控制器【表情滑条】并导入SFM进行使用。 Chano自己也是近期才掌握的这项知识,所以过程中可能有很多…

GDB调试实验

一、实验准备 在 Linux 环境软件开发中,GDB 是调试 C 和 C 程序的主要工具。本次实验围绕着GDB常用的调试操作进行。 1、设置断点的意义 当我们想查看变量内容,堆栈情况等等,可以指定断点。程序执行到断点处会暂停执行。break 命令用来设置…

React 条件渲染组件

组件通常需要根据不同的条件显示不同的内容,以及根据应用的状态变化只渲染其中的一部分。 在 React 中,可以使用 JavaScript 语法有条件地呈现 JSX,比如 if 语句、&&和 ?: 操作符。 根据条件返回 JSX Demo.js 文件: …

【高危】vm2 <3.9.17 沙箱逃逸漏洞(POC)(CVE-2023-30547 )

漏洞描述 vm2 是一个基于 Node.js 的沙箱环境,可以使用列入白名单的 Node 内置模块运行不受信任的代码。 由于 CVE-2023-29199 的修复不完整,vm2 3.9.17 之前版本的 transformer.js 文件中的 transformer 函数异常处理逻辑存在缺陷。攻击者可以利用这个…

【01-Java Web先导课】-如何进行JDK的安装(或Java环境的配置)

文章目录 一、JDK(jdk-8u371-windows-x64.exe)的下载1、下载网址2、选择相应版本进行下载 二、JDK(jdk-8u371-windows-x64.exe)的安装1、JDK安装2、系统环境变量配置3、classspath环境变量设置 免责说明 一、JDK(jdk-8…

❤echarts 南丁格尔玫瑰图的使用以及南丁格尔玫瑰图详细配置

❤echarts 南丁格尔玫瑰图的使用以及南丁格尔玫瑰图详细配置 1、认识 使用可以参考之前文章,会使用直接跳过1 引入官网的南丁格尔玫瑰图效果如下: 使用函数配置分为三个部分:初始化> 设置配置> 地图使用参数 配置代码如下 option…

法学考生必看—外经贸法学专业在职研究生

法学专业就业面比较广,但很多人工作后都觉得还是缺少核心竞争力,想通过读研来改变现状,23考研已经落幕,想要今年就能入班学习的院校有吗?有法学专业的吗? 一、学校介绍 对外经济贸易大学创建于1951年&…

STM32 USB资料整理

CypressUSB中文文档 https://img.anfulai.cn/bbs/90026/AN57294%20USB%20101%20An%20Introduction%20to%20Universal%20Serial%20Bus%202.0%20(Chinese).pdf RL-USB教程 https://www.armbbs.cn/forum.php?modviewthread&tid99710 USB应用实战教程第3期:手把…

Java Jvm中的垃圾回收机制

jvm的垃圾回收机制是什么 jvm的垃圾回收机制是GC(Garbage Collection),也叫垃圾收集器。 GC基本原理:将内存中不再被使用的对象进行回收;GC中用于回收的方法称为收集器,由于GC需要消耗一些资源和时间&…

认识BASH这个Shell

文章目录 认识BASH这个Shell硬件、内核与shell为什么要学命令行模式的Shell?Bash Shell的功能命令与文件补全(TAB)命令别名设置(alias)历史命令(history)任务管理、前台、后台控制(jobs,fg,bg)通配符程序化脚本 查询命令是否为Bash shell 的内…

前端--移动端布局--2移动开发之flex布局

目标: 能够说出flex盒子的布局原理 能够使用flex布局的常用属性 能够独立完成携程移动端首页案例 目录: flex布局体验 flex布局原理 flex布局父项常见属性 flex布局子项常见属性 写出网首页案例制作 1.flex布局体验 1.1传统布局与flex布局 传…

nacos 部署 配置

文章目录 一、Nacos简介 1、为什么叫Nacos2、Nacos是什么3、能干嘛4、去哪下二、安装并运行Nacos 2.1 基础环境及配置:三、Nacos作为服务注册中心演示 3.1 基于Nacos的服务提供者 2、POM文件3、YML文件4、主启动5、业务类6、测试7、nacos控制台3.2 基于Nacos的服务消…