深入探讨软件测试的质量度量指标
本文的目的是介绍项目中使用到主要质量指标,这些质量指标可以分为以下三类:
- 质量保证过程指标
- 生产事故管理指标
- 度量质量文化指标
质量保证过程指标
质量保证指标可以通过测试覆盖率来度量功能和非功能测试的覆盖率,同时也可以根据测试发现的缺陷的状态、优先级和关键程度来度量质量,最终目的是提高用户的满意度。以下是常见的指标分类:
- 测试覆盖率:可以使用各种标准来度量,具体取决于测试类型。这些指标提供了对团队和产品内测试演变的洞察,以及了解代码行和用户故事方面的覆盖范围。此外,自动化水平表明整体质量活动的改进并减少了认证时间。(a)在单元测试中,度量是否符合已建立的质量门是至关重要的,以确保代码在其最原子级别正确运行并遵守单元测试指南。验收测试通过考虑每个用户故事可用的测试用例数量来评估覆盖率。(二)它们通常按测试类型(例如冒烟、理智、回归、集成)、优先级以及它们是手动测试还是自动测试来组织。这些测试包括来自 UI 级别的端到端场景和来自后端的 API 测试场景。
- 测试执行时间:该指标度量验证用户故事所需的时间,同时考虑执行的测试的数量和类型,以及在发现缺陷的情况下重新运行测试所需的时间。随着手动测试水平的提高,用于确保质量和交付生产功能的时间也会增加。考虑自动测试与手动测试的时间,目的是优化时间并尽早执行测试,无论是在开发周期开始时还是通过在整个过程中进行连续测试。
- 代码复杂性:代码质量可以使用不同的指标来度量,包括代码行数、最佳实践和开发技术,以及复杂性循环的数量。静态代码分析工具用于获取此信息,从而可以识别软件质量问题,例如漏洞和“代码气味”等。一些最著名的工具包括 Sonarqube、Checkmarx、PMD、Codacy 和 Deep Source 等。
- 缺陷率:该指标根据发现的缺陷数量度量软件质量,并根据环境、优先级、严重性和状态进行分类,重点关注关键缺陷或在生产中检测到的缺陷。关键缺陷数量少表明软件质量更高,解决这些缺陷的能力也更快。根据该指标,如果存在大量严重缺陷,则可以实施“零错误”政策,规定如果发现严重缺陷,必须立即处理和解决。
- 用户满意度指数:该指标度量用户对系统的满意度。高满意度指数表明该软件满足用户期望。可以使用不同的方法来度量用户满意度指数,例如调查、投诉、应用程序商店中的评估、可用性测试以及用户检测到的关键缺陷的百分比。重要的是使用工具来监控和了解用户行为,以改进或计划可以增强用户体验并因此提高他们满意度的任务,例如 google analytics、google optimize 或 Hotjar。
- 技术债:该指标度量与软件质量或与此过程相关的任何其他活动相关的未决活动的数量。诸如审查生产中现有功能的未决覆盖率、增加自动化测试覆盖率、执行维护、重构、优化和自动化手动流程、审查测试、减少“不稳定测试”以及提高报告质量等活动。跟踪技术债务很重要,因为它会减慢软件开发的速度并增加缺陷和系统故障的可能性。
- 代码审查:通过跟踪代码审查期间发现的问题数量,团队可以深入了解代码库的整体健康状况。问题数量较多可能表示需要引起注意的潜在质量问题。此外,对已识别问题的严重性进行分类可以让团队确定优先级并迅速解决关键问题。为了有效地跟踪代码审查反馈,团队可以使用工具或平台来促进审查过程并以结构化的方式捕获反馈。这允许有效的问题管理、后续行动和进度监控。
- 非功能测试覆盖率:根据项目和产品,可以建立质量指标来度量此类测试的状态和演变、其合规性及其在程序中的采用情况。可以提及的指标包括:
生产事故管理指标
当然,针对线上事故也有多种指标用于度量事故解决流程的有效性。这些指标相互关联并梳理成特定的工作流程来处理事故,同时还测量每个阶段花费的时间并将其与预期结果进行比较。
为确保服务和应用程序具有可靠的性能,关注以下指标非常重要:
- 平均检测时间 (MTTD):这是发现问题所需的时间。通过最小化 MTTD,可以快速了解潜在问题并采取必要措施解决这些问题。
- Mean Time to Acknowledge (MTTA): MTTA 测量警报告警后操作所需的平均时间。MTTA 越短表示 IT 运维团队能快速响应并确保立即发现问题。
- 平均响应时间 (MTTR): MTTR 表示在确认服务问题后开始处理它所花费的平均时间。MTTR 越短意味着更快的响应速度。
- 平均修复时间 (MTTR):该指标度量从发现问题到解决问题所需的时间。MTTR 越短表示高效的故障排除和维修效率。
- 平均解决时间 (MTTR): MTTR 反映了完全解决问题和执行全面测试以确保相关系统正常运行所需的时间。
- 平均恢复时间 (MTTR): MTTR 表示将故障系统恢复到正常运行状态所需的时间。最大限度地减少 MTTR 有助于从故障中快速恢复正常的服务水平。
通过主动监控和优化这些指标,可以改善服务和应用程序的健康状况、可用性和可靠性。因此,可以更有效地实现任务目标并确保积极的用户体验。
度量质量文化指标
可以使用下面几个关键指标:成熟度级别、PROD中的事后分析事故以及 DevOps 和持续改进实践的。这些指标为组织的成熟度水平和维持质量标准的能力提供了宝贵的见解。
- 成熟度级别:指的是一个组织或企业在软件测试方面的成熟度水平。成熟度级别通常使用 CMMI(Capability Maturity Model Integration)模型进行评估,CMMI 是一种用于评估和改进组织成熟度的模型。CMMI 模型将软件测试成熟度分为五个等级,从初始级别到优化级别依次为:
-
- 初始级别(Level 1):测试过程是无序的,没有规划,也没有可重复的方法。测试工作通常是由个人完成,缺乏标准化和自动化。
- 可重复级别(Level 2):测试过程已经开始规划和标准化,测试工作已经可重复,但仍然存在一些不规范和不一致的地方。
- 定义级别(Level 3):测试过程已经得到了更好的规划和标准化,测试工作已经得到了更好的控制和管理,测试工作已经得到了更好的跟踪和监控。
- 管理级别(Level 4):测试过程已经得到了更好的管理和优化,测试工作已经得到了更好的自动化和工具支持,测试工作已经得到了更好的度量和分析。
- 优化级别(Level 5):测试过程已经得到了最佳的优化和改进,测试工作已经得到了最佳的自动化和工具支持,测试工作已经得到了最佳的度量和分析,测试工作已经得到了最佳的持续改进。
- PROD 中的事后分析事故:该指标度量生产环境中发生的事故的根本原因分析过程的有效性。它确保在功能、基础设施或质量测试级别采取纠正措施以防止再次发生。该过程涉及解决覆盖范围不足或特定测试类型的问题,对于保持产品质量至关重要。
- 采用 DevOps 和持续改进实践:该指标度量组织采用 DevOps 实践的程度和持续改进的水平。它提供了自动化与手动流程的数量、持续集成水平、发布到生产的频率以及监控和可观察性水平的视图。持续改进对于保持高水平的产品质量和提高开发过程的效率至关重要。
SLA、SLI 和 SLO
建立和使用 SLA、SLI 和 SLO 等工具也很常见,以确保达到既定的质量标准和服务水平、设定明确的目标并专注于持续质量改进。
这些术语与上述指标结合使用以度量和提高质量。
服务级别协议 (SLA):这是一份合同,用于确定将要提供的服务和必须满足的质量标准,在服务提供商和客户之间设定明确的期望。
服务水平指标 (SLI):它是一种度量标准,用于度量服务是否符合 SLA 中定义的标准,度量服务在质量和服务水平方面的表现。通常使用实时监控和跟踪工具。
服务级别目标 (SLO):这些用于确保满足 SLA 中定义的质量标准。
结论
质量指标的使用使公司能够提高其软件产品的质量、提高用户满意度并降低开发成本。通过在整个软件开发生命周期中仔细监控这些指标,团队可以查明需要改进的地方,度量质量目标的进展情况,并根据数据做出决策。对于软件开发团队而言,确定针对其特定项目、产品或质量目标量身定制的相关质量指标并将其无缝集成到质量管理流程中至关重要。通过这种方式,可以培养持续改进的文化并确保交付高质量的软件解决方案。
相关文章:
深入探讨软件测试的质量度量指标
本文的目的是介绍项目中使用到主要质量指标,这些质量指标可以分为以下三类: 质量保证过程指标生产事故管理指标度量质量文化指标 质量保证过程指标 质量保证指标可以通过测试覆盖率来度量功能和非功能测试的覆盖率,同时也可以根据测试发现…...
6.12作业
1、pinia和vuex的区别 1.pinia没有mutations,只有state,getters,actions 2.pinia分模块不需要modules (之前vuex分模块需要modules) 3.pinia体积更小(性能更好) 4.pinia可以直接修改state数据 2、Vue2和vue3的响应式原理分别是什么&#x…...
RabbitMQ集群部署之镜像模式
RabbitMQ集群的普通模式中,一旦创建队列的主机宕机,队列就会不可用。不具备高可用能力。如果要解决这个问题,必须使用官方提供的镜像集群方案。 官方文档地址:https://www.rabbitmq.com/ha.html 1.镜像模式的特征 默认情况下&a…...
【算法】Remove Zero Sum Consecutive Nodes from Linked List 从链表中删去总和值为零的连续节点
文章目录 Remove Zero Sum Consecutive Nodes from Linked List 从链表中删去总和值为零的连续节点问题描述:分析代码 Remove Zero Sum Consecutive Nodes from Linked List 从链表中删去总和值为零的连续节点 问题描述: 给你一个链表的头节点 head&am…...
音悦台项目测试报告
文章目录 项目背景项目功能测试计划与设计功能测试自动化测试 测试结果功能测试结果UI自动化测试结果 项目背景 现如今人们的生活压力大,容易使人疲惫,为了使得人们在闲暇之余可以听音乐放松,为此设计出一款轻量的听音乐网站,快速…...
数据库存储过程和函数
MySQL存储过程和存储函数 MySQL中提供存储过程(procedure)与存储函数(function)机制,我们先将其统称为存储程序,一般的SQL语句需要先编译然后执行,存储程序是一组为了完成特定功能的SQL语句集&…...
Spring依赖注入有哪些?各有什么优缺点?
文章目录 前言概述一、属性注入1.1 实例1.2 优点1.3 缺点 二、Setter注入2.1 实例2.2 优点2.3 缺点 三、 构造方法注入3.1 实例3.2 优点3.3 缺点 四、扩展 前言 IoC和DI是Spring中重要的两个概念,其中IoC指的是控制反转,DI(依赖注入)指的是IoC的具体实现…...
java八股文-并发篇
并发篇 1. 线程状态 要求 掌握 Java 线程六种状态掌握 Java 线程状态转换能理解五种状态与六种状态两种说法的区别 六种状态及转换 分别是 新建 当一个线程对象被创建,但还未调用 start 方法时处于新建状态此时未与操作系统底层线程关联 可运行 调用了 start …...
Elasticsearch8.6.0安装
Elasticsearch 8.5.0 安装 Elasticsearch 简介Elasticsearch 8.6.0 安装创建网络拉取镜像运行镜像设置密码修改kibana配置绑定ES代码绑定:手动绑定: 配置ik分词器扩展词词典停用词词典 Elasticsearch 简介 Elasticsearch(ES) 是一…...
Vue - 第五天 动态组件 插槽 自定义指令
动态组件& 插槽& 自定义指令 一、动态组件1.什么是动态组件2.如何实现动态组件渲染3.使用 keep-alive 保持状态4. keep-alive 对应的生命周期函数5. keep-alive 的 include 属性6.动态展示左右组件7.例子 二、插槽1.什么是插槽2.体验插槽的基础用法2.1 没有预留插槽的内…...
如何开展web自动化测试
Web 自动化是指使用测试脚本在 Web 上自动执行任务。它包括填写表单、导航网页、单击链接或按钮以及从网站中提取数据等任务。 它可用于各种目的,例如自动输入数据或测试网站的功能。有几种工具和编程语言可用于自动化网络上的任务,包括Selenium&#x…...
【博学谷学习记录】超强总结,用心分享 | 架构师 Maven学习总结
文章目录 Maven基本1.什么是Maven2.为什么用Maven?(1)jar 包的规模(2) jar 包的来源(3)jar 包之间的依赖关系 3.Maven目录结构4.maven仓库配置 Pom层次Pom文件简介Super POM 依赖管理1 依赖传递2 传递性依…...
PPT里文字太多如何排版-一口气教你7种布局瞬间让PPT高大上起来
简介 这是我们学PPT处于初级到中级进化阶段常做的一件事,就是拿了这种纯文字类版面来做布局。而且这种文字都是政企类的、相当苦涩难懂、无法创意。 因此我们会要求使用7种排版来优化这个版面。这和达芳奇画鸡蛋很像,这样的练习需要坚持一段时间,就是拿了纯文字来beautifu…...
Whistle(基于 Node 实现的跨平台抓包调试工具)的使用
Whistle(基于 Node 实现的跨平台抓包调试工具)的使用 基于Node实现的跨平台抓包调试工具 可以劫持网络请求,并进行请求和响应的修改,来提高我们的开发调试效率 1.一键安装(装包/证书) npm i -g whistle && w2 start --init 证书的问题 安装…...
数学模型:Python实现非线性规划
上篇文章:整数规划 文章摘要:非线性规划的Python实现。 参考书籍:数学建模算法与应用(第3版)司守奎 孙玺菁。 PS:只涉及了具体实现并不涉及底层理论。学习底层理论以及底层理论实现:可以参考1.最优化模型与算法——基于…...
Docker网路模型(四)使用 bridge 网络
使用 bridge 网络 在计算机网络中,一个 bridge(网桥)是一个链路层设备,负责在不同的网段之间转发信息。 bridge 可以是真实的硬件设备也可以是由宿主机底层提供的软件模拟设备。 在 Docker 中,bridge 网络使用了软件…...
数据结构与算法之美 | 排序(2)
归并排序(Merge Sort) 基本思想: 如果要排序一个数组,我们先把数组从中间分成前后两部分,然后对前后两部分分别排序,再将排好序的两部分合并在一起,这样整个数组就都有序了。 def merge_sort…...
【外企面试系列】必备口语短语与例句 - A系列
a big headache令人头痛的事情 I have a big headache from all the noise. (我因为噪音而头痛。)The paperwork is a big headache for me. (对我来说,文书工作是件头痛的事情。) a fraction of 一部分 She ate only a fraction of her meal. (她只吃了一部分饭…...
Java使用Opencv进行大图找小图并使用其找图功能进行bilibili视频下载案例
Java使用Opencv进行大图找小图并使用其找图功能进行bilibili视频下载案例 一、Opencv大图找小图说明二、Opencv的window安装1.下载windows下的安装包2.安装3.Java中Opencv加载测试 三、Java中通过Opencv进行模板匹配大图找小图四、进行多图查找五:案例下载bilibili视…...
肠道健康从核心菌属开始:肠道菌群的关键
谷禾健康 5月29日,是世界肠道健康日。肠道是人体最重要的消化系统之一,与人体健康紧密相关。而肠道菌群作为肠道重要组成部分,在肠道健康中发挥着重要的作用。 编辑 由于基因、环境、饮食、药物等因素的影响,每个人的肠道菌群都…...
深度学习实战37-NASNet(具有自动搜索能力的神经网络模型)的搭建与实战应用
大家好,我是微学AI,今天给大家介绍一下深度学习实战37-NASNet(具有自动搜索能力的神经网络模型)的搭建与实战应用,NASNet是由Google Brain团队开发的一种具有自动搜索能力的神经网络模型,利用强化学习和进化算法等技术来自动地搜索最优的神经网络架构。NASNet模型的设计灵感…...
碳排放预测模型 | Python实现基于机器学习回归分析的碳排放预测模型——随机森林、决策树、KNN 和多层感知器 (MLP) 预测分析
文章目录 效果一览文章概述研究内容环境准备源码设计KNNRandom ForestDecision TreeMLPModel Evaluation学习总结参考资料效果一览...
人体检测技术之毫米波雷达
人体检测技术之毫米波雷达 1.概述 智能人脸/视频锁领域的人体检测需求是要求远距离达到1m左右即可,一旦在此距离内检测人,则锁唤醒进行人脸识别,视频录制等操作。所以,人体检测技术非常关键。 选型主要是几个维度: 1.支持检测的距离范围,能否准确输出距离信息 2.支持…...
“Chain of Thought Reasoning“ 和 “Chain Prompts“ 是什么
"Chain of Thought Reasoning" 和 "Chain Prompts" 是什么 1. "Chain Prompts" 是什么2. “Chain of Thought Reasoning” 是什么 1. “Chain Prompts” 是什么 “Chain Prompts” 是指一系列相关的提示,它们之间有逻辑上的联系和依赖关系。用户…...
signal
读信号,dqs 是对齐到dq的边沿, 写信号,dqs 的边沿是对到中间的。 spec 就是这样规定的。我们在dq的最中间的采样,肯定是最安全的。 dqs 是对齐到dq的边沿 , 在silicon 内部,还是通过移位完成的。 rl: re…...
深度研究微软的资产负债表和财务状况以及未来投资价值
来源:猛兽财经 作者:猛兽财经 微软股票的关键指标 猛兽财经认为,微软公布的2023财年第三季度财务业绩,有三个关键指标值得投资者关注。 第一个关键指标是利息收入。微软的利息收入目前已经同比增长了44%,从2022财年第…...
Mac电脑删除第三方软件工具CleanMyMac X
经常使用Mac的人都知道,Mac除了可以在AppStore下载应用程序,还有许多软件是需要在网页上搜索下载的第三方软件。那么这类第三方软件软件除了下载方式不同之外还有什么是和从App store下载的软件有区别的吗?答案是肯定的,那就是这些…...
leetcode174. 地下城游戏(java)
地下城游戏 leetcode174. 地下城游戏题目描述 动态规划解题思路代码 动态规划专题 leetcode174. 地下城游戏 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/dungeon-game 题目描述 恶魔们抓住了公主并将她关在了地下城 …...
信号与系统复习笔记——傅里叶变换
信号与系统复习笔记——傅里叶变换 周期信号的傅里叶级数表示 特征函数 假设LTI系统的输入为 x ( t ) e s t x(t) e^{st} x(t)est 输出为: y ( t ) e s t ∗ h ( t ) ∫ − ∞ ∞ e s ( t − τ ) h ( τ ) d τ e s t ∫ − ∞ ∞ e − s τ h ( τ ) d…...
Allegor17.2版本WIN11系统CIS配置提示错误解决方案
错误提示: ERROR(ORCIS-6250): Unable to continue. Database access failed. Contact the database administrator to correct the following error(s), and then retry. ODBC Error Code: -1 Description: 在指定的 DSN 中,驱动程序和应用程序之间的体…...
web前端做网站地图/seo推广外包报价表
前言 一直以来 , 做弹窗功能的时候都是使用的Dialog , 布局复杂的弹窗则使用Activity , 把背景设置成透明, 最近了解到一个DialogFragment , 发现使用起来更加方便, 也是谷歌建议的做法. 简介 DialogFragment 继承自Fragment , 所以它的用法基本跟Fragment一致 , 也包含了一…...
手机网站seo怎么做/太原百度推广开户
问题 开始播放视频的时候,有一个闪动 原因 没有播放的时候,有封面图,开始播放之后,封面图消失,开始播放,这时候视频画面还没有展示,这个小的间隙就造成了闪动 修复 开始展示视频画面的时候…...
哈尔滨市网站建设公司/关键词代发排名
简介 Unicorn是一个轻量的跨平台、多架构CPU模拟器框架。 Unicorn is a lightweight multi-platform, multi-architecture CPU emulator framework. 功能: 多架构支持: ARM, ARM64 (ARMv8), m68k, MIPS, PowerPC, RISC-V, S390x (SystemZ), SPARC, TriCore & x86 (includ…...
简单静态网页模板css/seo外链工具
c语言合法标识符的要求是:标识符只能由字母(A~Z, a~z)、数字(0~9)和下划线(_)组成,并且第一个字符必须是字母或下划线,不能是数字。标识符定义变量时,我们使用了诸如 a、abc、mn123 这样的名字,它们都是程序员自己起的…...
网站建设工作室门头/网络营销工具有哪些
0. 前言 U-Net网络实际上是用于语义分割的,但深度学习在语义分割上的开山之作是 FCN,即全卷积神经网络。此节主要是想通过写一遍代码来捋一遍 U-Net 网络的结构。故此节不对网络结构具体的每部分作深入说明。主要是实现以下网络的每部分结构。 1. U-Ne…...
小豪自助建站/茂名seo顾问服务
备份与恢复数据库的存储过程这种方式感觉实现起来也不错,我是使用这种方式来完成数据库备份还原的功能的。 需要指出下面这些存储过程是在网上搜索到的。谢谢代码的提供者。在此转载 利用T-SQL语句,实现数据库的备份与还原的功能 体现了SQL Server中的…...