拒绝背锅:测试项目中的风险管理一定要知道
测试经理除了要管理产品线的质量保障和日常部门事务工作外,另一项比较重要的就是测试项目全流程的管理。
今天不聊整体的测试项目流程如何开展,而是想聊一聊在同行中比较高频出现的一个字眼:风险管理。
什么是风险管理
引用百度上的解释:“风险管理是指如何在项目或者企业一个肯定有风险的环境里把风险可能造成的不良影响减至最低的管理过程。风险管理对现代企业而言十分重要。”
那么从以上的这句话去理解的话:
首先,风险管理适用与项目或者企业。这里的项目其实范围很广,哪怕只是一个简单的测试活动或回归测试都是可以适用于项目这个字眼的,如果结合自身公司或团队的做事风格与特点整理出一套基础的SOP并且分段规划好的话,无论多小规模的测试活动都可以称之为项目。
其次,任何事情都有风险,只不过风险的大小是否在可接受的范围中。那么在一个有风险的环境中如何把风险出现后造成的负面影响减小到最低就是一个大家都需要思考的问题。
相信很多的测试同学都听过风险管理这个概念,但实际在工作中的话可能会因为自己的职能范围或权限无法很好的掌握项目全局或测试活动的整体面貌,所以这里才会说风险管理是测试管理层的职责所在。
如果一个测试管理连基本的风险管理也没办法做到位的话,其实他的部分工作是失职的,随着时间的推移,其中产生的风险导致的结果往往会让团队承担数倍的后果与负面评价。
如何进行风险管理
首先,这里有个很重要的概念:风险管理的核心管理对象是什么?
很多实际工作的情况中,在项目的前期计划阶段,经验不多的管理者会把产生风险的原因本身纳入风险管理的范畴。粗看下来貌似没什么问题,但博主不推荐这么做的原因和项目前要确定测试范围是一个道理,如果过于在意产生的原因会让管理者的关注重心发生偏移。
举个例子:测试同学经常会碰到项目中给与测试的时长不够或deadline无法撼动的情况,那么此时如果项目规划与资源分配的时候管理者做了两种不同的风险评估。
A:判断与分析测试时间不够的每个原因并预防,需求穿插没有收敛、功能模块逻辑复杂,研发时间延期、代码质量不足,反复冒烟、测试手段不足、测试资源不足、信息不同步等。基于以上的这些种种,如果想把原因作为风险管理的对象就会让项目变得难以开展,让管理者疲于奔命不说,还会造成项目成员对于项目的信心不足、长期负面心理暗示等尴尬境地。
B:针对预测到的测试时间不足的现状进行项目风险管理,基于项目前期排期与资源分配,已知测试对于本次迭代版本的测试时间不充足。针对这种即将发生的情况,那么本次开发与测试除了进行必要的时间扩充(加班)之外,严格的提测与准入标准、有重心的确保迭代版本的核心业务模块、及早的测试左移、以及利用现有测试用例开展不同部门之间的交叉测试都可以有效的解决测试时间不够的情况。
其实到了这里,还是会有测试同学不太清楚选A还是选B,我们接下来就一种国内大部分公司都有个情况在做一下说明。
博主之前遇到过很多测试同学都吐槽这个岗位在公司中的受到的“不公对待”,线上故障或Bug基本都会算在测试的头上,开发同学貌似也不用承担什么责任。
其实这样的想法本身就有问题,一般来说测试在整个项目流程中本身处于最下游,线上有故障或Bug的话最先进行的一定是问题定位与修复工作,确保线上服务正常后再来进行定责与事后完善。有问题是团队的责任,不管是测试与开发的管理者亦或是开发与测试的执行者。
其实这里的处理方式和风险管理是一致的,通过风险产生的不良影响或损失来进行对应的风险管理。预防与减少风险出现只是其中的一种,预防的对象不是产生的原因而是产生的现状,更多的是事后处理,我们都是通过产生某种问题来找到对应的原因,从而总结归纳出下一次不再犯同样类型错误的。
之前定义的“一个肯定有风险的环境里把风险可能造成的不良影响减至最低的管理过程”,就是在一次次的预测——>问题出现 ——> 解决处理 ——> 问题消失的循环中完善起来的。
总而言之将大部分的精力扩散至问题发生的所有原因,还是聚焦于问题产生后的现状再加之于解决完善,这里大家应该已经有了自己的答案了吧?
那么风险产生的原因就不重要了吗?当然不是。
-
每一次的项目中产生的问题各不相同,原因也大相径庭。我们无需了解可能产生风险的每一个原因,但当风险产生的时候原因却是解决问题的最终本质。通过一次次的总结与实践,当项目开展的前期我们可以把产生风险的可能原因列出并标明会出现的阶段或时间点,有了预期和准备之后才能在最短的时间内把风险控制在可控范围内。
-
另外,每个风险可能产生的情况与后果都需要在项目前期做好明确的说明,哪怕不是很准确也需要做好告警,因为当风险真正出现的时候再来评估风险的影响往往会变得比较的被动,特别是线上回归阶段,测试项目的末期出现风险的成本远远要高于项目前期。
-
最后测试项目中的每个节点也要明确好对应的负责人、具体时间点与阶段性输出物,当出现问题的时候可以用最小的成本快进行问题快速定位与解决响应,也方便在项目结束复盘时通过节点与输出物进行项目质量的判断与评估。
实施建议
1、当遇到项目前期一些可预见的风险时,将风险的现状、如果发生后可能产生的连带风险一并提出,方便团队对此做出评估与措施;
2、不要觉得写原因像甩锅,在出现问题时先自省是好事,但如果真的是其他团队导致的风险产生也要实事求是的将问题成因表述出来,以帮助整个部门提升项目的质量与口碑;
3、“测试准入标准”是个好东西,很多公司都提倡测试推动开发,提升整体研发质量,表面上看测试有点“吃力不讨好”,但实际上测试团队的地位与话语权也是靠这样慢慢的提升或巩固的,如果不“倒逼”开发提升自身的质量意识,代码质量不佳的提测版本只会让测试更痛苦,大量的精力浪费在一些低级Bug中,更不要提风险有多大了;
4、提前预测,提前预测,提前预测!重要的事情说三遍,道理说起来都很简单,但是做到准确的提前预测是需要在平时不断的积累,每一次测试项目过后作为管理者是否能将项目的节点与输出物做好总结归纳,提炼出问题成因并通过技术与管理手段完善以防掉在同一个坑里并不是一个特别困难的课题;
5、一口吃不成一个胖子,风险管理也是不是一蹴而就的。无论你是新手还是大佬,每个公司、每个业务线、都会有自己不同的问题存在其中,团队的磨合、技术的磨合、有时甚至是情绪的磨合都是风险出现的因素。我们没有精力对应每一个可能的成因,但是可以通过一次次的有效锻炼来达到相对较好的提升效果,不要怕出现风险,可怕的不是想不到风险何时会出现,而是风险出现后犹豫不决、唯唯诺诺的心态和不思进取、消极待事的态度。
最后,愿每一个测试管理者都能在自己的管理之路上走的更稳、更远。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取
相关文章:

拒绝背锅:测试项目中的风险管理一定要知道
测试经理除了要管理产品线的质量保障和日常部门事务工作外,另一项比较重要的就是测试项目全流程的管理。 今天不聊整体的测试项目流程如何开展,而是想聊一聊在同行中比较高频出现的一个字眼:风险管理。 什么是风险管理 引用百度上的解释&a…...
20-js本地存储
js本地存储 localStorage localStorage是window下的对象,可以使用window.localStorage调用,也可以直接使用localStorage调用。 浏览器关闭,localStorage也不会消失 示例: <body><h2>localStorage</h2><…...

ABAP 辨析ON INPUT|REQUEST|CHAIN-INPUT|CHAIN-REQUEST
1、逻辑流 在屏幕开发中,存在如下逻辑流: PBO(Process Before Output):屏幕输出之前触发 PAI(Process After Input):用户在屏幕中执行操作触发 POH(Process On Help-…...
LeetCode:逆波兰式;
150. 逆波兰表达式求值 给你一个字符串数组 tokens ,表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意: 有效的算符为 、-、* 和 / 。每个操作数(运算对象)都可以是一个整…...

为什么阳康后,感觉自己变傻了?
不少人在阳康后出现脑力下降的情况,好像脑子里被雾笼罩。脑雾并不是新名词,已经存在了十几年。以前慢性疲劳综合征患者和脑震荡患者会用它来形容自己的症状。脑雾其实是认知障碍,它可由多种原因引起。比如过度劳累、长期酗酒、缺乏睡眠、久坐…...

考公和大厂40万年薪的offer,选哪个?
眼看毕业将至,相信很多小伙伴已经摩拳擦掌,在为毕业季就业做准备了。2023年高校毕业生规模预计1158万人,同比增加82万人。在资深人力资源服务家汪张明看来,2023年的就业态势不仅是大学毕业生数量有增加,还存在一定的存…...
多线程环境下调用 HttpWebRequest 并发连接限制
.net 的 HttpWebRequest 或者 WebClient 在多线程情况下存在并发连接限制,这个限制在桌面操作系统如 windows xp , windows 7 下默认是2,在服务器操作系统上默认为10. 如果不修改这个并发连接限制,那么客户端同时可以建立的 http 连接数就只有…...

vue3-element-admin搭建
vue3-element-admin 是基于 vue-element-admin 升级的 Vue3 Element Plus 版本的后台管理前端解决方案,是 有来技术团队 继 youlai-mall 全栈开源商城项目的又一开源力作功能清单技术栈清单技术栈 描述官网Vue3 渐进式 JavaScript 框架 https://v3.cn.vuejs.org/Ty…...

蓝海创意云vLive虚拟直播亮相2023昆山元宇宙产品展览会
2月15日-19日,由中国计算机行业协会“元宇宙创见未来”2023元宇宙产品展览会在江苏昆山隆重召开,共吸引了省内外32家企业参展,展出近百款元宇宙产品或技术,涵盖芯片、显示、VR、AR等硬件设备,以及工业、文旅、娱乐、教…...
ThreadLocal线程变量
首先看下ThreadLocal的set()方法存数据的过程,首先获取当前的线程中保持的ThreadLocalMap,每个线程的ThreadLocalMap都是不一样的,因此存储的值是不同的。 public void set(T value) {Thread t Thread.currentThread();ThreadLocalMap map …...

【linux安装redis详解】小白如何安装部署redis,linux安装部署只需5步骤(图文结合,亲测有效)
【写在前面】前端时间接触了一下redis,也是迫于页面查询响应太慢,没办法听说redis这个可持久化内存数据库,于是乎便想着在自己的机器上安装一套,接下来就重点和大家说说怎么从小白开始摸索redis 目录1、下载2、安装2.1 创建文件存…...

2023只会“点点点”,被裁只是时间问题,高薪的自动化测试需要掌握那些技能?
互联网已然是存量市场了,对人员规模的需求正在放缓。在存量市场里,冗余人员和低效人员会被淘汰、被外包。而优秀的人才也会一直受到招聘方的青睐。所以我们就看到了近期行业里冰火两重天的一幕,一边是大量的低端测试工程师被淘汰、求职屡屡碰…...

C语言【柔性数组】
柔性数组🫅什么是柔性数组🫅柔性数组的使用🫅柔性数组的优势🫅什么是柔性数组 也许你从来没有听说过柔性数组(flexible array)这个概念,但是它确实是存在的。 C99 中,结构中的最后一…...
AcWing275. 传纸条
AcWing275. 传纸条小渊和小轩是好朋友也是同班同学,他们在一起总有谈不完的话题。一次素质拓展活动中,班上同学安排坐成一个 m行 n 列的矩阵,而小渊和小轩被安排在矩阵对角线的两端,因此,他们就无法直接交谈了。幸运的…...

圆角矩形的绘制和曲线均匀化
摘要: 圆角矩形是软件 UI 等视觉设计中的常见表达,一种常见的绘制方法是将矩形的四角替换为与边相切的四分之一圆弧,然而这种绘制方式会在连接处产生视觉上的切折感,这是因为圆弧和直线的连接处只满足 G1G^1G1 连续性。本文探究了…...

【Linux】环境变量,命令行参数,main函数三个参数保姆教学
目录 ☃️1.奇奇怪怪的现象和孤儿进程 ☃️2.环境变量 ☃️3.深刻理解main函数的前两个参数和命令行参数 ☃️1.奇奇怪怪的现象和孤儿进程 首先回顾一下之前我们学过的fork()创建子进程 fork(void)的返回值有两种 注意fork()头…...
美国访问学者生活中有哪些饮食文化特点?
美国的教育毋庸置疑,排在世界数一数二的位置,美食美景更是数不胜数,那么他们有哪些饮食习惯,下面51访学网小编为你们详细介绍这些内容吧。 一、美国饮食文化特点 1、美国的饮食文化体现科学、适度、快捷,以满足人体的…...
RxJava中的Subject
要使用Rxjava首先要导入两个包,其中rxandroid是rxjava在android中的扩展 implementation io.reactivex:rxandroid:1.2.1implementation io.reactivex:rxjava:1.2.0Subject Subject 既可以是一个 Observer 也可以是一个 Observerable,它是连接 Observer 和…...
vue-element-admin在git 上 clone 之后无法install
一. 无法install的原因因为vue-element-admin引入的富文本编辑插件所导致 由于tui-editor变更 名字 导致 依赖查询找不到对应的版本二. 解决的办法先删掉package.json中tui-editor:1.3.3找到 \src\components\MarkdownEditor\index.vue 把所有的import 替换成下面4个import cod…...

Linux线程调度实验
Linux线程调度实验 1.获取线程属性 #include <stdio.h> #include <sys/types.h> #include <unistd.h> #include <pthread.h> #include <time.h> #include <stdlib.h> #include <errno.h> #define _GNU_SOURCE#define handle_error…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器
——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的一体化测试平台,覆盖应用全生命周期测试需求,主要提供五大核心能力: 测试类型检测目标关键指标功能体验基…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
#Uniapp篇:chrome调试unapp适配
chrome调试设备----使用Android模拟机开发调试移动端页面 Chrome://inspect/#devices MuMu模拟器Edge浏览器:Android原生APP嵌入的H5页面元素定位 chrome://inspect/#devices uniapp单位适配 根路径下 postcss.config.js 需要装这些插件 “postcss”: “^8.5.…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
漏洞概览 漏洞名称:Apache Flink REST API 任意文件读取漏洞CVE编号:CVE-2020-17519CVSS评分:7.5影响版本:Apache Flink 1.11.0、1.11.1、1.11.2修复版本:≥ 1.11.3 或 ≥ 1.12.0漏洞类型:路径遍历&#x…...
go 里面的指针
指针 在 Go 中,指针(pointer)是一个变量的内存地址,就像 C 语言那样: a : 10 p : &a // p 是一个指向 a 的指针 fmt.Println(*p) // 输出 10,通过指针解引用• &a 表示获取变量 a 的地址 p 表示…...