质量保障之精准测试!

一、背景与概念

随着软件测试行业的长足发展,测试理念、技术都在发生着日新月异的变化。因此一套完整的自动化测试用例对于每个软件公司都是不可或缺的,然而虽然有如此规模宏大的自动化案例集资源投入,同时也有大量人力的投入,但是当版本更新时,无法精确知晓哪些功能受到影响,进而不能精准选取测试用例。

而金融科技更是发展迅猛,服务于银行业的软件越来越多,需求迭代越来越快,系统架构越来越复杂,测试周期也越来越短;而银行业务系统有着业务链条长、系统结构复杂、无法完全解耦等特性,因此基于经验是无法精准选取测试用例的,不足以保障测试范围准确。

为了解决这些难点,精准测试在2012年被提出,所谓精准测试是一种可追溯的软件测试技术,就是借助一定的技术手段,通过算法辅助对传统的软件测试过程进行可视化、分析和优化的流程,其核心思想就是对测试过程的活动进行监测,将采集到的监控数据进行分析,得到精准的量化数据进行质量评价。

程序的微小变动也会带来新的测试工作,通过经验进行质量评估很容易引入问题,而全量的回归测试也难以负荷。下图是目前的测试工作现状。

图片

因此使用精准的数据来判断,让测试人员精准地知道程序变更、测试范围、测试覆盖完整性等等,最终提供更加有效地测试分析结果。精准测试的目标如下图所示。

图片

目标一是通过识别变更代码获取变更程序。精准测试可以更精确地圈定需要回归测试的用例范围。

目标二是精准测试基于变更程序或调用链维度提供测试度量结果,用以判断本次测试的变更程序代码是否覆盖完全,进而帮助测试更精准地评估测试风险,并形成测试准出标准。

目标三是精准定位错误原因,在测试用例执行时,精准测试针对失败案例,提供可视化调用关系,帮助测试快速定位问题,提升开发测试的协同效能。

综上,精准测试在测试范围分析、测试度量和定位错误等方面提供分析手段,使得测试工作事半功倍。

二、业界实践

(一)爱奇艺精准测试体系

爱奇艺精准测试支持客户端和服务端多端使用,支持手工和自动化场景,内部多个平台联动,打通整体使用流程,可以准确获取单个用例的代码覆盖。服务端能做到系统级别串联,客户端则能实现多组件整合,已经实现用例和代码分支或代码块级别的关联。

下图为爱奇艺精准测试体系整体架构图:精准测试服务是核心,负责建立用例和代码映射关系知识库并根据git提交记录计算测试范围和影响范围。不同的终端用到的代码覆盖率工具也不相同,在与外围平台的集成上,服务端可以和环境平台相结合,通过环境平台实现代码覆盖率工具的安装;客户端则可以和构建平台做集成。

图片

(二)字节跳动精准测试实践

图片

上图为字节跳动研发团队常见的研发流程。需求研发分为了五个阶段,精准测试主要在自测和功能验收测试和回归测试节点。在三个节点中,业务通过请求SmartEye服务,可以分别获取到自测推荐用例、功能测试推荐用例以及回归测试推荐用例。其中,自测用例和功能测试推荐用例用于验证代码变更是否引起存量程序功能异常,将功能缺陷发现前置,为研发团队争取更多的修复时间。回归测试用例推荐用来精简回归测试人力,帮助业务节省回归测试人效。

图片

上图为精准测试整体方案,Code Graph平台为SmartEye提供数据支撑,Code Graph平台的双端静态代码调用链分析能力与整体调用链路拓扑数据,完成基于MR的变动DIFF分析以及上下游调用链分析,并针对变动DIFF部分,完成代码变动率的统计。

三、行内现状及发展

总体而言行内(中国工商银行)的精准测试目前缺少用例录制以及用例推荐功能。

1、覆盖率采集类型

我行在覆盖率采集方面有较深入的探索,目前支持多语言的覆盖率采集,包括JAVA、存储过程、CTP与MYBATIS。

2、使用覆盖率工具代码染色系统辅助测试

从GIT提交的JAVA变更获取到变更方法的维度,并支持采集变更存过,变更Mybatis方法,变更CTP文件。目前的覆盖率工具通过代码染色直观地展现了配置应用多种语言的增量覆盖率情况,为降低系统上线风险提供支持。

图片

配置接入代码染色的应用,可直观获取到对应月度版本的变更程序方法级别覆盖率,将此作为精准测试的实践数据,在后续可展开更深度的分析,并不断扩大推广规模以及深度,增强精准测试的应用效果。

3、支持静态调用链解析,全链路精准上,工行探索异构调用链之间的关系,给出的测试分析更为全面。

4、静态调用链解析包括 CTP、存过、JAVA三大类

5、同行内平台打通部署

在行内环境集成之上,现已嵌入PAAS平台,改造后的应用只需要配置三个PAAS参数即可下载工具包,使用服务。若为非云环境的was,我们会从cmdb上取到配置信息做夜间的自动部署。 

图片

该示意图展现了数据流向,最底层的Docker镜像解析服务通过解析.dockfile文件获取字节码内容;向上是数据采集,客户端采集到的覆盖率结果通过覆盖率集群输送到消息中间件支上,同时静态调用链解析服务,会进行一个静态文件的解析;再向上是数据存储层,将覆盖率数据存在redis上,把海量覆盖数据,调用链数据存在hbase里面,环境相关的方法信息存在oracle里面;然后是服务层,根据拥有的数据提供实时变更方法覆盖率采集展示,投产日维度覆盖率报表,一级入度调用链覆盖报表三大功能。

四、进一步建设

1、目前的变更影响分析中,主要是基于静态调用链分析,但静态代码存在局限性,如反射,未来还需要进一步结合动态代码分析的结果进行修正和补充调用链。

2、精准测试智能化,主要体现在测试用例推荐方面,准确地推荐案例,形成“精准分析->自动化测试->覆盖度量”地测试闭环。目前中国工商银行内也在推进这方面发展,上研已提出“智能规范推送工具”基于现有的需求数据、案例内容、测试规范库的信息进行智能化提取,在无需额外投入的情况下,实现智能化案例推荐,用以提高测试效能。

3、在服务层的三项服务基础上进行拓展,基于数据基础层提供的数据支持,提供全链路精准打通不通异构程序间的关系,支持微服务之间的调度,全方位度量包含调用链的测试分析。

 

总结:

感谢每一个认真阅读我文章的人!!!

作为一位过来人也是希望大家少走一些弯路,如果你不想再体验一次学习时找不到资料,没人解答问题,坚持几天便放弃的感受的话,在这里我给大家分享一些自动化测试的学习资源,希望能给你前进的路上带来帮助。

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

 

          视频文档获取方式:
这份文档和视频资料,对于想从事【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!以上均可以分享,点下方小卡片即可自行领取。

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

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

相关文章

虚拟仿真云平台在教育应用中的优势和意义

虚拟仿真云实验教学平台作为一种新型的教学方法,近年来在高校教育中得到了十分广泛的应用。它通过模拟真实的实验场景和实验操作,让学生在计算机上进行实验操作和数据处理,为学生提供了更加便捷、可靠、有效的实验学习环境。本文,…

Python如何绘制直流电机开闭环特性曲线?matplotlib

import matplotlib.pyplot as plt from pylab import mplmpl.rcParams[font.sans-serif] [FangSong] # 指定默认字体 mpl.rcParams[axes.unicode_minus] False # 解决保存图像是负号-显示为方块的问题# 数据集1 n1 [1206, 1174, 1141, 1116, 1037, 986] Id1 [0.505, 0.55…

【多模态】30、GPT4V_OCR | GPT4V 在 OCR 数据集上效果测评

文章目录 一、背景二、测评2.1 场景文本识别2.2 手写文本识别2.3 手写数学公式识别2.4 图表结构识别(不考虑单元格中的文本内容)2.5 从内容丰富的文档中抽取信息 三、讨论 论文:EXPLORING OCR CAPABILITIES OF GPT-4V(ISION) : A QUANTITATIV…

centos7.6安装mysql

博客主页:花果山~程序猿-CSDN博客 文章分栏:MySQL之旅_花果山~程序猿的博客-CSDN博客 关注我一起学习,一起进步,一起探索编程的无限可能吧!让我们一起努力,一起成长! 目录 1.在网页中寻找mysql…

【QT】QT环境搭建

本专栏内容为:QT学习专栏 通过本专栏的深入学习,你可以了解并掌握QT。 💓博主csdn个人主页:小小unicorn ⏩专栏分类:QT 🚚代码仓库:小小unicorn的代码仓库🚚 🌹&#x1f…

WordPress 管理员密码重置方法汇总

最近明月碰到一个 WordPress 站长求助咨询,说是自己 WordPress 站点的管理员密码被恶意篡改了,对 WordPress 了解的都知道这一般都是恶意代码造成的,问题大多出在使用了所谓的破解版、去授权版的插件或者主题被植入了恶意代码、后门木马。明月…

洗地机哪个牌子好性价比高又实惠?高性价比洗地机推荐【避坑指南】

洗地机是一种智能清洁家具,具有强大的清洁能力,可快速有效地清洁各种地面污渍,操作简便,省时省力。其一键操作功能使其易于上手,无需频繁清洗拖布和更换水,大大提高了清洁效率。部分高端洗地机还具备智能感…

全国防灾减灾日主题活动投稿我可算找对了投稿方法

作为一名社区公众人员,我深知对外信息宣传的重要性。特别是在全国防灾减灾日这样的特殊时刻,我们不仅要向居民普及防灾减灾知识,还要通过媒体将社区的活动和成果展示给更多人。然而,在投稿的过程中,我最初却遭遇了诸多挑战。 起初,我采用传统的邮箱投稿方式,将精心撰写的稿件发…

小程序常用组件

小程序常用组件 1.组件的定义2.常用组件3.引入外部字体图标库4.组件样式5.示例代码 1.组件的定义 组件就是指微信定义的具有特殊功能的标签&#xff0c;在wxml中只能使用微信定义的标签。 2.常用组件 <view>&#xff1a;用于页面布局的块级组件&#xff0c;类似于html中的…

jmeter分布式集群压测

目的&#xff1a;通过多台机器同时运行 性能压测 脚本&#xff0c;模拟更好的并发压力 简单点&#xff1a;就是一个人&#xff08;控制机controler/调度机 master&#xff09;做一个项目的时候&#xff0c;压力有点大&#xff0c;会导致结果不理想&#xff0c;这时候找几个人&a…

OS复习笔记ch5-4-2

引言 承接上文我们介绍了信号量机制和应用信号量机制实现的进程同步和互斥&#xff0c;这一节我们将围绕一些经典问题对信号量机制展开更深入地探讨。 读者/写者问题 读者/写者问题与我们之前遇到的问题类型不同&#xff0c;它描述的是&#xff1a; 有读者和写者两组进程&am…

ohmyzsh的安装过程中失败拒绝连接问题的解决

1.打开官网Oh My Zsh - a delightful & open source framework for Zsh 在官网能看到下面的界面 有这两种自动安装的方式 个人本次选择的是: wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O - 1.打开终端输入安装的指令 sh -c "$(wget…

软件需求工程习题

1.&#xff08;面谈&#xff09;是需求获取活动中发生的需求工程师和用户间面对面的会见。 2.使用原型法进行需求获取&#xff0c;&#xff08;演化式&#xff09;原型必须具有健壮性&#xff0c;代码质量要从一开始就能达到最终系统的要求 3.利用面谈进行需求获取时&#xf…

K邻近算法

简介 介绍了非常简单的算法&#xff1a;K邻近算法&#xff0c;即KNN。 基本介绍 K-近邻算法&#xff08;K-Nearest Neighbors&#xff0c;简称KNN&#xff09;是一种基本且广泛应用的监督学习算法&#xff0c;主要用于分类和回归任务。 工作原理非常简答直观&#xff1a;所谓…

爆款小红书免费流量体系课程(两周变现),小红书电商教程

课程下载&#xff1a;小红书电商教程-课程网盘链接提取码下载.txt资源-CSDN文库 更多资源下载&#xff1a;关注我。 课程内容&#xff1a; 10-爆款标题(三段式取标题).mp3 11-爆款封面怎么作图.mp3 12-爆款内容的模板(三段式模板).mp3 13-小红书流量推荐背后的秘密(四大流…

数据结构与算法-排序算法1-冒泡排序

本文先介绍排序算法&#xff0c;然后具体写冒泡排序。 目录 1.排序算法简介 2.常见的排序算法分类如下图&#xff1a; 3.冒泡排序&#xff1a; 1.介绍&#xff1a; 2.动态图解 3.举例 4.小结冒泡排序规则 5.冒泡排序代码 6.优化 7.优化后时间 代码&#xff1a; 运…

讯方·智汇云校4月HCIE通过28人!证书量总计123!

智汇云校捷报 —4月华为认证证书量123本— 智汇云校4月IE捷报来了 讯方技术2024年PMP第一期3月考期顺利结班&#xff0c;考试全员通过~ 2024年4月&#xff0c;云校HCIA、HCIP、HCIE共通过123人&#xff01; 62人通过HCIA 33人通过HCIP 28人通过HCIE 祝贺以下学员通过HC…

simulink-仿真以及PID参数整定/PID tuner 的使用流程

控制器搭建与参数整定 搭建一个前馈PID控制器控制系统PID tuner使用 一个懂点控制但不多的小白&#xff0c;因为需要利用simulink仿真&#xff0c;所以不得不学习一些仿真的知识&#xff0c;这篇文章适合和我一样的新手入门&#xff0c;有理解错误的地方希望大手们能够指出来共…

Llama3-Tutorial(Llama 3 超级课堂)-- 笔记

第1节—Llama 3 本地 Web Demo 部署 端口转发 vscode里面设置端口转发 https://a-aide-20240416-b4c2755-160476.intern-ai.org.cn/proxy/8501/ ssh -CNg -L 8501:127.0.0.1:8501 rootssh.intern-ai.org.cn -p 43681参考 https://github.com/SmartFlowAI/Llama3-Tutorial/b…

ssm123基于java web的网上书城系统的设计与实现+vue

基于java web的网上书城系统的设计与实现vue 摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势&#xff0c;商品交易当然也不能排除在外&#xff0c;随着商品交易管理的不断成熟&#xff0c;它彻底改变了…