软件测试质量度量之 “三级指标体系”

news2024/11/15 1:50:41

管理学大师彼得 - 德鲁克曾说过:无数据不管理。

数字是人们快速认知事物的一种有效方式。无论在生活还是工作,对事还是对人都息息相关。碰上难以的用数字描述事物或现象肯定是没有找对适用的指标和度量方式。尤其对于质量工程方面的工作,定量的呈现远比定性描述更有说服力。而 “三级指标体系” 就是在这一年的反复打磨中,逐渐清晰并成型的,能够将工程质量加以体系化度量的一种最佳实践。

为什么是三级?而不是四级或者更少?

通过一级指标,直观反馈在工程化过程中某个方面的水准,具有结果性质的指标,类似 “后视镜” 的作用,但也具有较大之后性且粒度较大;从而引入二级指标,对大颗粒度的一级指标进行拆解,分而治之以获取改善。由于粒度的均匀程度问题,需进一步纳入三级指标才具备可操作性,以便着手改善以最终影响到结果。通常情况下,三级指标即可起到有效的下钻分析并落入改进闭环的效果。

通过实践归纳,选取效率、质量、稳定、资源四个方面共同构建三级指标体系。四个方面的关系可描述为质量是立命之本,稳定是有效质量活动的自然结果;业务方期望的是有质量地(约束条件)快速交付,且尽可能少的资源投入,其中也隐含着对资源的高效利用的诉求。

简而言之就是 “多、快、好、省” 地把活干了。三级指标分别指的是:

  • 一级指标,即结果指标。起到 “后视镜” 的作用,有一定的延迟性。
  • 二级指标,即拆解指标/改善指标。对结果形成进行构成拆解或者直接可以作用以改善结果。
  • 三级指标,即改善指标。可以对应到一个或一组改进行为以获取对结果的部分改善。

下文针对上述四个方面一一展开相应三级指标构成、内在逻辑及应用说明。

 

一、效率

效率是工程团队与业务团队沟通的热点话题,也是工程团队被诟病的高频方面。从面向高效交付的质量保障工作为切口,进行应用说明。

效率方面,通过业务交付能力、计划保障能力以及过程协同能力自底向上逐级支撑与保障以实现高效的目的,也就是用数据呈现 “多” 与 “快”。

业务交付与响应,通过吞吐率这一相对值体现;绝对值方面采用总需求数对照观测,而需求上线率、需求分布体现的是对计划的保障能力。指标方面反映了业务方提了多少需求,排上了多少需求,排上了多少大需求,排上的按时完成了多少。

进而下钻到协同效率体现,其依赖于估时精准性,而过程中准时提测率作为契约支撑,自动化率以及工程配套可用率影响着测试执行效率。这趴指标侧重实施过程的能力说明,属于 “肌肉” 展示。解释了为什么能以及如何能保障效率。此处隐去了众多三级指标,以便清晰说明(下同)。

二、质量

软件的质量是开发出来的,程序(制品)一旦流转至测试流程后即被固化。这里指的是内建质量,是客观的程序质量。所有的测试行为是对这一客观质量的挖掘。因此,测试行为是通过场景覆盖尽可能地逼近这一客观的质量活动。

通常情况下,设置合理的准入标准有利于提前终止不达标制品的流转,保障流程的顺畅性,将提测质量独立度量,并对提测前进行延展收集成因数据以便形成结论。

提测质量是质量门禁的卡尺,是让研发流水线中的质量活动顺畅进行的必要保障。工程上,对于质量活动的投入为被动投入,即不可少,但期望尽可能减少投入。因此质量门禁的设置可以用相对低成本的方式,避免不必要的过渡资源消耗,就好比给汽车上蜡前,先让洗车工把车冲洗干净;否则,上蜡工不得不花费更多的时间去除车上覆盖的尘土,再进入关键工序。如下图,从缺陷成本曲线来看,是笔不划算的投入。

而内建质量,是一系列质量活动之后自然的描述结果。其中,缺陷引入率是最直接的描述。缺陷数这一绝对数量,结合其构成即缺陷分布,能够描述较为清晰的内建质量。

职能的作用是什么?这一灵魂拷问结合上图做必要的说明,从价值视角阐述其内在导向以及良性的促进闭环逻辑。

测试执行从价值视角切入,尽可能体现质量活动投入而产生的价值,从缺陷价值、回归价值两发面着手并形成正向闭环指导测试设计。简而言之:

  • 发现高价值缺陷。结合 PRD 及技术实现,覆盖用户场景的同时,刻意针对技术实现方式设计用例。如幂等校验、异常处理等。并参考覆盖率报告增补用例,确保覆盖相对全面性。
  • 自动化高价值回归用例。抓住核心、稳定两个关键词,随着回归用例的与日俱增,定期 review 进行有效用例增补与无效用例剔除以减少不必要的维护成本。

三、稳定

稳定,一般情况下是有效质量保障的自然结果。往往由运维团队主导,对线上进行实时监控,故障应急响应。生产故障数及其分布是主要核准指标。策略上遵从:不出大问题,小问题快速恢复,将故障影响尽可能最小化,即:故障影响 = 故障严重等级 x 故障修复时长。

具体指标表现为 P1P2 生产故障数减少或清零,P3P4 生产故障数收敛减少。通常故障定级标准,除了影响面作为一个维度,如资损金额、客诉量等,也会将故障恢复时间作为一个必要维度进行阶梯式定义。

另外,由于生产故障的滞后性,针对某次生产故障的复盘而产生的待办项是有效改善上述结果指标的措施,所以,待办闭环率是该方面的改善指标。

此处需要说明的是,系统性的风险累计最终会导致某次生产故障。这是质量保障工作的 “黑天鹅事件”,也是最难解释质保策略有效性的部分。老 J 给出的说法是质量保障和稳定性治理双管齐下,互相补充。局部的优化即使达到炉火纯青的地步,难抵一次结构性的破坏。而生产故障驱动的系统性复盘能够指导局部优化策略的迭代,使其更加夯实与全面。所以,这是整体与局部的二元互补增强的循环过程。

四、资源

提及资源,主要聚焦在人的维度进行最优配置,即:面向目标,将合适的人用在合适的的地方,并发挥出效益。围绕着下面三个方面进行动态调优。

  • 配置多少人?
  • 集中用在哪?
  • 效益如何放大?

这是一个配置策略的问题,而策略本身源于目标,在一段时间内解决一个什么样的问题,应该符合 “SMART 原则” 而设定与开展。

分别引入资源开测比、预实比及直接反馈职能效益的时均用例执行数与上述三个方面一一对应。其中:

  • 资源开测比反映的是增益投入(开发)与被动投入(测试)的结果。
  • 预实比反应的是资源利用率及有效投入情况。
  • 时均用例执行数是反映职能从事质量活动的效率水平。依赖内建质量质量、协同效率、测试策略及配套工程手段的综合情况。

总结

“无数据不管理”。数据是工作过程中的一种低成本沟通方式。定性的描述,故事性的讲解都不如定量的摆事实来的直接与高效。

总结下三级指标指的是:

  • 一级指标,即结果指标。起到 “后视镜” 的作用,有一定的延迟性。
  • 二级指标,即拆解指标/改善指标。对结果形成进行构成拆解或者直接可以作用以改善结果。
  • 三级指标,即改善指标。可以对应到一个或一组改进行为以获取对结果的部分改善。

“三级指标体系” 能够将工程质量加以体系化度量的一种最佳实践。历经基线建立,数据校准,特别是与体感的拟合,这也是体系打磨的主体工作,极为耗时耗力,最后是系统化收集与可视化呈现,让数据实时服务于日常工作。

效率、质量、稳定、资源四个方面的关系可描述为一下三句话:

  1. 质量是职能线立命之本,稳定是有效质量活动的自然结果;
  2. 累加效率这一约束条件,以实现有质量地快速交付;
  3. 同时,尽可能少的投入资源。

三级指标体系是系统化的、体感拟合的、可持续积累的研发数字化资产。随着持续的积累与应用,可以通过局部组合解决特定阶段的工程问题,如组合冒烟通过率、冒烟缺陷率、延期提测率反应提测质量,即门禁质量。而针对其组合指标的改进行为是被验证过的有效措施,通过总结落入一套 “专家意见库”,成为团队的经验与可复制能力,甚至是企业的无形财富。

同样,结合上线前的质量评审机制,通过对测试前、中、后三个阶段,选取组合并通过算法计算而形成质量风险预警效果的 “红绿灯” 提示,是数据可视化应用的一种有效尝试。

综上,设计一套有效的指标体系,并不断积累数据,能帮助我们选取合理、科学的路径实现一个个工程目标的达成。

最后: 为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取 【保证100%免费】

 全套资料获取方式:点击下方小卡片自行领取即可

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

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

相关文章

从小白到大神之路之学习运维第70天-------Docker容器引擎基础

第四阶段提升 时 间:2023年7月31日 参加人:全班人员 内 容: Docker容器引擎基础 目录 一、Docker概述 (一)容器背景: (二)云计算模式: (三&#x…

Python+OpenCV实现自动扫雷,挑战扫雷世界记录!

目录 准备 - 扫雷软件 实现思路 - 01 窗体截取 - 02 雷块分割 - 03 雷块识别 - 04 扫雷算法实现 福利:文末有Python全套资料哦 我们一起来玩扫雷吧。用PythonOpenCV实现了自动扫雷,突破世界记录,我们先来看一下效果吧。 中级 - 0.74秒 …

大数据技术之Clickhouse---入门篇---安装

星光下的赶路人star的个人主页 努力到无能为力,拼搏到感动自己 文章目录 1、ClickHouse的安装1.1 准备工作1.1.1 确定防火墙处于关闭状态1.1.2 CentOS取消打开文件数限制1.1.3 安装依赖(所有节点都进行依赖安装)1.1.4 CentOS取消SELINUX 1.2 …

OPC DA 客户端与服务器的那点事

C#开发OPC客户端,使用OPCDAAuto.dll。在开发过程中偶遇小坎坷,主要记录一下问题解决办法。 1、建立客户端,参考链接。建立WinFrom工程,将博客中代码全部复制即可运行: https://www.cnblogs.com/kjgagaga/p/17011730.…

Linux 查看服务器内存、CPU、网络等占用情况的命令

1、查看物理CPU个数:cat cat /proc/cpuinfo | grep "physical id" | sort | uniq | wc -l 2、查看服务器CPU内核个数:cat 每个物理CPU中core的个数(即核数) cat /proc/cpuinfo | grep "cpu cores" | u…

【数据库】事务隔离级别

事务特征ACID 原子性(Atomicity):事务中的所有操作要么全部执行成功,要么全部失败回滚,没有中间状态。它确保了数据的完整性。一致性(Consistency):事务执行后,数据库从…

02_modbus从站从开始初始化到接收一帧数据的流程

0. 协议栈接收状态的变化图 1.协议栈的初始化和使能 void eMBRTUStart( void ) {ENTER_CRITICAL_SECTION( );/* Initially the receiver is in the state STATE_RX_INIT. we start* the timer and if no character is received within t3.5 we change* to STATE_RX_IDLE. This…

网络请求fetch

fetch()是 XMLHttpRequest 的升级版,用于在 JavaScript 脚本里面发出 HTTP 请求。浏览器原生提供这个对象 fetch()的功能与 XMLHttpRequest 基本相同,但有三个主要的差异。 与 Ajax 类似,Fetch 也是前后端通信的一种方式。Fetch 要比 Ajax …

DBeaver远程连接使用DM数据库

DBeaver 工具版本使用 21.3.2 测试可用 数据库连接驱动包 需要提前下载DM数据库连接驱动DmJdbcDriver18.jar 驱动下载地址:https://eco.dameng.com/document/dm/zh-cn/app-dev/java-MyBatis-Plus-frame.html 配置数据库驱动 数据库 ---- 驱动管理 新建驱动 驱动…

Web3Space空间梅州站盛大开业:探索web3.0新时代的无限可能!

7月28日,Web3Space空间梅州站在广东省梅州市区盛大开业。 在互联网3.0时代,社会的生产关系与生产力都将发生变革,企业与个体都将拥抱数字化时代。可以预见未来企业的组织形态将会由过往的庞然大物”转向无数个小而美的“超级个体"。而We…

六.安装harbor

1、下载 harbor-offline-installer-v1.9.3 链接:https://pan.baidu.com/s/1dTCy2KPqRhYKxTyE7vlrPg 提取码:6666 需要安装docker-compose 2、修改配置 vim harbor.yml 修改hostname和port 3、安装 [rootlocalhost harbor]# ./prepare prepare b…

语音转录成文本:AI Transcription for mac

AI Transcription是一种人工智能技术,它可以将音频和视频文件转换成文本格式。这种技术可以帮助用户快速地将大量的音频和视频内容转换成文本格式,方便用户进行文本分析、搜索和编辑等操作。 以下是AI Transcription的几个特点: 高效性。AI …

【每日一题】142. 环形链表 II

【每日一题】142. 环形链表 II 142. 环形链表 II题目描述解题思路 142. 环形链表 II 题目描述 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针…

《Java极简设计模式》第02章:抽象工厂模式(AbstractFactoty)

作者:冰河 星球:http://m6z.cn/6aeFbs 博客:https://binghe.gitcode.host 文章汇总:https://binghe.gitcode.host/md/all/all.html 源码地址:https://github.com/binghe001/java-simple-design-patterns/tree/master/j…

【运维】hive 终端突然不能使用:Hive Schema version does not match metastore‘s schema version

文章目录 一. 问题描述二. 常规排查1. 元数据库2. hive-site.xml相关meta连接信息检查 三. 正解 一. 问题描述 进入hive终端,执行如下命令报错: hive> show tables; FAILED: SemanticException org.apache.hadoop.hive.ql.metadata.HiveException: …

初学HTML:采用CSS绘制一幅夏天的图

下面代码使用了HTML和CSS来绘制一幅炎炎夏日吃西瓜的画面。其中&#xff0c;使用了伪元素和阴影等技巧来实现部分效果。 <!DOCTYPE html> <html> <head><title>炎炎夏日吃西瓜</title><style>body {background-color: #add8e6; /* 背景颜…

浏览器中的自动化操作插件:Automa

相信很多小伙伴跟我一样&#xff0c;每天都有大量基于浏览器的重复操作&#xff0c;比如&#xff1a;查看任务、查看新闻、查看各种每天要关注的内容&#xff0c;甚至可能还需要对其做一些操作。那么这些任务是否有办法自动化执行呢&#xff1f; 今天就给大家推荐一个浏览器扩…

对角线遍历——力扣498

文章目录 题目描述法一 直接模拟 题目描述 法一 直接模拟 class Solution { public:vector<int> findDiagonalOrder(vector<vector<int>>& mat){int mmat.size(), nmat[0].size();vector<int> res;for(int i0;i<mn-1;i){if(i%2){int x i<n …

50家公司Java,C++招聘要求

目录 &#x1f34d;前言 &#x1f34d;总结 &#x1f333;基本要求 &#x1f333;加分项 &#x1f34d;信息 &#x1f442;下一秒&#xff08;电视剧《微微一笑很倾城》插曲&#xff09; - 张碧晨 - 单曲 - 网易云音乐 招聘要求 --> &#x1f34d;信息 &#x1f34d;…

分享一个 VUE 侧边导航共用组建

项目效果图&#xff1a; 项目描述&#xff1a;加载组建时&#xff0c;隐藏&#xff0c;鼠标滑动到指定区域的时候该菜单选中高亮&#xff0c;点击菜单跳转到指定模块&#xff0c;每个页面都适用。 html 部分&#xff1a; 提示&#xff1a;我这里有英文所以有$i18n.localezh…