精准测试——持续测试

news2024/11/16 1:46:38

前面已经介绍了黑盒测试和白盒测试。从前面的介绍中可以知道,黑盒测试是一种面向业务流程的测试,针对需求设计测试用例,在运行的系统上执行测试用例,完成测试。

整个测试过程中测试工程师对于测试代码是如何运行的一无所知,只能通过输入、输出评价系统的逻辑处理是否正确。

而白盒测试恰恰相反,测试人员需要面向代码测试,根据代码逻辑、覆盖路径设计测试用例。对于白盒测试用例而言,被测系统的代码是可见的,测试需要检查程序的内部结构,从程序逻辑入手,得到测试数据。

在黑盒测试中,针对需求的测试用例,代码覆盖率一般为60%~70%,如果要提高系统的测试覆盖率,需要投入的测试成本会远远高于覆盖率达到70%时的测试投入。

同时,黑盒测试过程中代码是不可见的,如果要获取更高的覆盖率,就只能设计大量的冗余测试用例,但是大量的冗余测试用例只使得提升覆盖率变成一种可能的行为,这并不是一个充分必要的方法。

冗余的测试用例会导致测试投入高、测试用例难以维护等连锁反应。针对上述这种情况,白盒测试在提升测试覆盖率上的效果就好很多。

因为白盒测试中的代码逻辑是可见的,所以每增加一个测试用例,我们就可以直观地看到覆盖率的提升。但是白盒测试用例的设计人员需要理解代码逻辑及调用关系,会编写测试代码,这会提高白盒测试的门槛。对于一般的业务测试工程师来说,这是一道难以逾越的鸿沟。

要解决黑盒测试和白盒测试的问题,同时兼有这两种测试的优点,就需要精准测试。精准测试借助一定的技术手段,通过辅助算法对传统软件测试过程进行可视化、分析与优化,使测试过程更加可视化、智能、可信和精准,从而实现测试用例和被测系统的双向追溯。精准测试的原理如图5-9所示。

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

逆向追溯指测试人员通过修改的源代码快速确定测试用例的范围,极大地减轻回归测试的工作量,快速修订测试用例,达到测试覆盖率最大化。通过推动精准测试的落地,我们可以帮助缩小回归范围,节省人力成本,同时防止缺少测试用例导致的漏测,前置测试,让测试工作和开发工作可以并行执行,提升项目敏捷度,缩短测试独占周期等。

精准测试也以持续交付流水线为基础,通过持续集成完成代码的构建、编译、静态扫描和测试环境部署,使用自动化测试平台完成回归测试用例的执行,通过测试监控分析,精确、详细地记录测试用例的运行过程,收集全部过程数据,进行缺陷分析、链路跟踪,建立测试用例和系统代码的映射关系,实现测试用例和系统代码的双向追溯,真正实现有所测,有所不测。

差异分析指分析两次提交的代码的变化,这主要依靠现在版本控制系统实现,目前通常使用Git。通过Git提供的diff方法,我们可以获取代码的变更,通过git diff命令可以获悉哪个文件的哪几行代码有变动,以差异小结的形式标注。

其中如果有变化,则对于删除的代码会标注减号,对于其他改动的代码会标注加号。通过这种方式,我们就可以获悉是否有代码发生变动,只要有变动,就需要通过内部映射关系推荐的回归测试用例进行回归。

代码染色是通过覆盖率监控实现的,在Java项目中覆盖率监控部分绝大部分是基于Jacoco实现的。

首先,Jacoco通过ASM字节码注入的探针标注代码是否执行过,这样就可以记录代码模块是否执行过,从而达到代码染色的目的。

然后,通过Jacoco的dump、merge、report生成测试报告。其中,dump先从Jacoco的代理中请求覆盖率的数据exec文件,然后通过merge命令将多个exec文件合并,最后通过report进行展示。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

在这里插入图片描述

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!   

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

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

相关文章

深度学习算法模型转成算能科技平台xx.bmodel模型的方法步骤

目录 1 docker镜像下载 2 SDK下载 3 下载sophon-demo 4 修改docker镜像的脚本 5 创建个文件夹 6.source 7.转模型 1 docker镜像下载 可以在dockerhub看到镜像的相关信息 https://hub.docker.com/r/sophgo/tpuc_dev/tags 用下面的命令下载 docker pull sophgo/tpuc_d…

vim练习题

在普通模式 / 可以用来寻找 . 是重复上次的动作,$ 是移动到末尾 直接查找 .vimrc 保存后重启 安装curl 出现问题 宏 通过记录在寄存器中,让寄存器知道怎么操作 宏只能在1 2 4 寄存器上面使用 替代命令,将匹配到的,包括这些内容…

【力扣每日一题】2023.8.27 合并区间

目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 那么合并区间是在什么情况下才能合并呢? 我总结为两种情况 第一种情况就是这样,第二个区间的左区间大于第一个区…

算法通关村第十四关——堆

堆是将一组数据按照完全二叉树的存储顺序,将数据存储在一个一维数组中的结构。堆有两种结构,一种称为大顶堆,一种称为小顶堆,如下图。 小顶堆:任意节点的值均小于等于它的左右孩子,并且最小的值位于堆顶&am…

哪个蓝牙耳机打电话比较好,打电话降噪蓝牙耳机推荐

近年来,骨传导耳机的市场表现出了显著的增长,其市场竞争也变得异常激烈,与传统无线耳机相比,“骨传导耳机”的知名度还达不到举世皆知的地步,但对于运动群体以及部分有听力损伤的群体来说,骨传导耳机还是有…

大数据和人工智能之间如何的相互促进

文章目录 大数据为人工智能提供支持人工智能加速大数据的分析和应用紧密联系和合作方式综合效应:智能化决策和创新结论 🎈个人主页:程序员 小侯 🎐CSDN新晋作者 🎉欢迎 👍点赞✍评论⭐收藏 ✨收录专栏&…

回归预测 | MATLAB实现SSA-ELM麻雀搜索算法优化极限学习机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现SSA-ELM麻雀搜索算法优化极限学习机多输入单输出回归预测(多指标,多图) 目录 回归预测 | MATLAB实现SSA-ELM麻雀搜索算法优化极限学习机多输入单输出回归预测(多指标,多图)效果一览基…

Java基础数据结构

二叉查找树 二叉查找树,又称二叉树或者二叉搜索树 特点:每一个节点上最多又两个子节点 任意节点左子树上的值都小于当前节点 任意节点右子树上的值都大于当前节点 二叉查找树添加节点:规则 小的存左边 大的存右边 一样的不存 平衡二叉树&am…

小研究 - JVM 逃逸技术与 JRE 漏洞挖掘研究(二)

Java语言是最为流行的面向对象编程语言之一, Java运行时环境(JRE)拥有着非常大的用户群,其安全问题十分重要。近年来,由JRE漏洞引发的JVM逃逸攻击事件不断增多,对个人计算机安全造成了极大的威胁。研究JRE安…

libdrm全解析二十三 —— 源码全解析(20)

接前一篇文章:libdrm全解析二十二 —— 源码全解析(19) 本文参考以下博文: DRM 驱动程序开发(VKMS) 特此致谢! 前一篇文章已提到,drmModeGetResources函数值得深入地进行讲解。本回…

C语言练习题Day1

从今天开始分享C语言的练习题,每天都分享,差不多持续16天,看完对C语言的理解可能更进一步,让我们开始今天的分享吧! 题目一 执行下面的代码,输出结果是() int x5,y7; void swap()…

Vue2向Vue3过度核心技术自定义指令

目录 1 自定义指令1.指令介绍2.自定义指令3.自定义指令语法4.指令中的配置项介绍5.代码示例6.总结 2 自定义指令-指令的值1.需求2.语法3.代码示例 3 自定义指令-v-loading指令的封装1.场景2.需求3.分析4.实现5.准备代码 1 自定义指令 1.指令介绍 内置指令:v-html、v…

基于JSP+Servlet+mysql学生宿舍管理系统

基于JSPServletmysql学生宿舍管理系统 一、系统介绍二、功能展示四、其它1.其他系统实现五.获取源码 一、系统介绍 项目类型:Java web项目 项目名称:基于JSPServlet的学生宿舍管理系统[sushe] 项目架构:B/S架构 开发语言:Java…

免费开源跨平台视频下载器 支持数百站点视频和音频下载-ytDownloader

ytDownloader: ytDownloader是一款免费开源跨平台视频下载器,帮助用户从数百个网站下载不同格式的视频和提取音频,使用简单,复制视频链接粘贴即可下载,支持4K画质视频下载,支持Linux、Windows 和 macOS平台…

DBO优化SVM的电力负荷预测,附MATLAB代码

今天为大家带来一期基于DBO-SVM的电力负荷预测。 原理详解 文章对支持向量机(SVM)的两个参数进行优化,分别是:惩罚系数c和 gamma。 其中,惩罚系数c表示对误差的宽容度。c越高,说明越不能容忍出现误差,容易过拟合。c越小&#xff0…

基于Java+SpringBoot+Vue前后端分离图书电子商务网站设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

大数据(二)大数据行业相关统计数据

大数据(二)大数据行业相关统计数据 目录 一、大数据相关的各种资讯 二、转载自网络的大数据统计数据 2.1、国家大数据政策 2.2、产业结构分析 2.3、应用结构分析 2.4、数据中心 2.5、云计算 一、大数据相关的各种资讯 1. 据IDC预测&#xff0…

软件工程(十五) 行为型设计模式(一)

1、责任链模式 简要说明 通过多个对象处理的请求,减少请求的发送者与接收者之间的耦合。将接受对象链接起来,在链中传递请求,直到有一个对象处理这个请求。 速记关键字 传递职责 类图如下 由类图可以比较容易的看出来,其实就是自己关联自己,形成了一个链,并且自己有…

开源与区块链:去中心化的未来

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

基于Java+SpringBoot+Vue前后端分离人力资源管理系统设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…