QC遇到了什么无法逾越的障碍

我们公司的主要业务是项目外包,一般的项目都在2-3个月的周期,采用瀑布模式。这种模式本身是相对简单,且十分成熟的模式。但是在实际的工作中,我们还是遇到了前所未有的挑战。

提测质量差

例如200-300人天的项目,提测bug数量基本在400-600左右,最高纪录应该是一个400人天的项目,我们总共提交了1200个bug。数据的冲击力可能没有那么大,那换个描述方法:几乎所有的功能都有bug。在项目提测时,仍然会伴有大量的严重和阻塞问题,从一个功能模块不可用,都一条业务流程跑不通。各种问题层出不穷。

无法设置准入准出标准

在面对较差的提测质量时,首先想到的是做准入准出标准,如提测后的冒烟测试不能有核心问题,严重问题小于2个等等。准入准出在业内属于比较普及的方法了,我见过很多公司在这方面执行的非常顺畅。但是在我们团队却无法落地——周期不允许。对于项目外包团队,周期就是成本,时间就是生命。如果我们严格的执行准入标准,那实际情况就是一轮一轮提测,一轮一轮被打回,周期会被拖的非常长。所以这个方案没有落地就被扼杀了。

测试周期不可控

当bug数量到达这个程度时,提bug-改bug-回归bug的工作量就显得非常可观了。庞大的bug基数,意味着改完这一遍相当于把整个项目的代码重新写了一遍,随之而来的就是新的麻烦——bug激活/新增。我们的bug新增/激活率基本维持在13%~21%这个区间,例如回归400个bug的项目,在回归之后可能要激活或者新增80个bug。整体的测试周期也被迫拉长,个别项目还会变的失控,比如1200个bug要测试四轮到五轮。

QA又翻过了哪些高山

年初的时候公司引入了企业管理内训,带着我们重新理解了PDCA的循环。在这个过程中我们分析了以往工作和项目中的问题,发现过程管控是我们很薄弱的环节。方案的最初的方向是测试前置,在考虑了历史项目的经验和查阅了大量资料之后,决定将方向定位设立QA职能。

QA方案从最初的设想到最终在项目中落地,前后历时近两个月,过程中经历诸多的问题。

选模型

首先在网上查阅了很多的资料,其中生产型企业的QA模型比较多,不知道怎么往IT行嫁接。后来又与业内的小伙伴们交流了很多,有像幽灵一样处处盯着的,也有技术大牛review代码的,基本不符合我们的现状和诉求。其实这个时候我们犯了一个比较常见的错误——拿来主义。一心想着能有一套特别适合公司现状的模型,可以直接拿过来用。每一套流程都只适用它当时所处的环境,不是说不可复制,而是需要针对性的进行裁剪。在意识到这个问题之后,我们把这些裁剪成了我们心里想像的样子:

1 QA参与项目全流程工作,对过程和结果进行数据收集和监督;
2 收集全路程文档,记录,数据信息,并汇总整理,做数据储备;
3 组织各个环节负责人,对项目过程的每个环节制定工作标准,如代码规范,bug规范,需求规范等;
4 综合数据分析,对各类型项目设置安全阈值,对触发阈值的过程点及时干预;
5 对项目过程中的各个环节,提供改进意见,并反馈至总监和项目负责人;
6 跟进项目组成员实时填写的风险列表,推进关键风险及时解决;
7 以事实数据为依托,对项目过程和结果进行质量评估。

当然,这个不是最终执行的内容,因为下面还有好多坑。

定标准

 

既然是检查监督,肯定是需要有参考标准,就是这个标准可把我们给愁坏了。历史工作保留下来的数据少之又少,想从数据分析上得出结论已经不可能了,就只剩下拍脑门了。最后一拍脑门,将标准一分为二:
一部分是流程标准,即规范流程内容。包括制定了任务创建规范,详细描述了任务创建的格式和标准,引入了“结果定义五明确”,规定了任务的检查及流转规则;规范了计划模板的格式及修订更新规则等。
另一部分是质量标准,引入CI/CD机制,规范了扫描问题的数量标准以及处理规则。

专业能力

 

针对QA人员的转能技能,有两个比较突出的问题:1 是否有能力深入检查需求和开发的工作内容,比如review代码等;2 对项目风险的识别是否准确。
这两个问题的答案很简单,当前团队人员在综合素质达不到这个要求,而且也不是短期可实现的。于是我们决定将重点放在方案的流程上,努力做到不依赖于个人能力就可以完成这项工作。

利益平衡

 

推动项目流程的变革,势必会对损害既得利益者,这个似乎是所有的调整都会遇到的问题。对于如何识别和处理相关方,就是见仁见智的事了,无非就是做好向上,向下和横向沟通。我们针对这个问题的处理原则就是,尽量把影响降到最低。就像医院看病,能吃药就不打针,能打针就不输液,能微创就不开刀,都是一个道理。最钟也是因为领导的加持,这个问题没有特别凸显。

如何授权

 

QA到底在项目中处于什么样的角色,应该授予什么样的权利?这个问题在最初是有过争议的,有两点分歧:1 职权过大是否会干扰到项目经理的工作,产生不必要的争端或其他负面问题;2 职权过小是否起不到监督的效果,项目经理完全不理怎么办。
   
我的最初设想是,让QA像产线的质检QA一样,在问题超过控制线后有拉闸叫停生产线的权利。比如在过程中发现项目部分流程严重不合规,可以随时发起专题会议,警示和纠正相关方的工作。但是考虑到项目运行过程中可能会因此产生矛盾,于是放弃了这个想法。在解决如何避免项目经理不理会的问题时,我们引入了第一版的三方监督机制,即把总监、项目经理和QA三方绑定监督,QA监督项目经理,总监监督QA,总监监督项目经理,避免利益共同体的形成。后来证明这个三方监督的机制有一个致命的bug,后面会提到。
   
终于,关于授权的问题也有了初步的方案。

评分

 

最初版本中,有针对项目团队成员的评分制度,后来被砍掉了。原因是QA监督的这些维度,不能客观的反应团队成员的整体贡献度。例如,针对任务延期的考评,无法判断是否成员个人的原因造成还是项目经理临时安排了其他工作;任务提前完成有可能是项目经理调整了任务优先级,但是没有更新计划等等。如果要做到非常可观,又需要增加很多的流程规范,并不利于项目的执行。于是在权衡之后决定砍掉了评分制度,等到体系更成熟的时候再加回来。

稳定运行

 

任何流程制度,能持续的运行才算是好的制度。工作中遇到了太多的走着走着就散了的事,数不胜数。和小伙伴们交流的时候,也发现了类似的情况,要么就形成了利益共同体,要么就是不了了之。所以,我们在做方案时优先考虑了可持续性的问题。为此引入了上文提到的三方监督机制。前面也提到了,这个方案有个bug,就是当总监没时间检查的时候,项目经理就不管了。运行的时候就变成了总监有空,项目经理就会处理,总监没空,项目经理就不管。后来我们修复了这个bug,将QA接入到了我们现有的一套三方检查机制(质询会)中。简单的说就是每周一次管理层例会,大家相互提出各种待办事项并承诺完成时间,这些事项会计入质询单中,由助理每日推荐和检查,未完成的水果基金伺候。
   
还是这个观点,能持续运行的制度才是好的制度。

持续改进

 

在运行的过程中,我们会不断的发现问题。将这些问题整理总结,并与相关方讨论处理方案,再将方案优化到流程中。如此往复,就是一个PDCA的循环。比如我们规定流程中每增加一个规则,就加入到QA的监督检查项中。这样一个循环一个循环的持续成长,才会让我们的这套机制一直处于进步当中。

从QC到QA的更多相关文章

  1. 质量管理三个概念:QC、QA和QM,你能分得清吗?

    今天这里谈的QC.QA和QM,不是岗位或职位,而是一种概念或质量管理的不同时期所关注的重点. 1.产品 早期的质量管理(工业化雏形期)侧重于对终产品的检测.测试,即QC(品质控制)时代. 这个时期的质 ...

  2. Linux学习笔记4-三种不同类型的软件的安装(绿色软件、rpm软件、源代码软件)

    在Linux下软件分三种: 1.绿色软件:即不用安装直接就能用的软件 2.rpm安装包:以rpm结尾的可执行文件  3.源码文件:没有进行过编译和打包的文件,需要编译后再进行安装 一.绿色软件的安装 ...

  3. CoreCRM 开发实录 —— 单元测试、测试驱动开发和在线服务

    测试不是问题,问题是怎么测试. ## 单元测试 我认为单元测试已经是无可争议的最佳开发实践之一.但是很多人并不同意这个观点.他们的说法无非是:写测试需要花很多时间,需求又经常变动,一但变动,一大片测试 ...

  4. 201521123039 《java程序设计》第七周学习总结

    1. 本周学习总结 2. 书面作业 ArrayList代码分析 1.1 解释ArrayList的contains源代码 答:ArrayList的Contains的源码如上图所示,如果o为null,那么 ...

  5. 【贪心+博弈】C. Naming Company

    http://codeforces.com/contest/794/problem/C 题意:A,B两人各有长度为n的字符串,轮流向空字符串C中放字母,A尽可能让字符串字典序小,B尽可能让字符串字典序 ...

  6. The difference between QA, QC, and Test Engineering

    Tuesday, March 06, 2007 Posted by Allen Hutchison, Engineering Manager and Jay Han, Software Enginee ...

  7. QC、IQC、IPQC、FQC、OQC、QA分别的定义

    QC:即英文(Quality Control)的简称,中文意义是品质控制,其在ISO8402:1994的定义是“为达到品质要求所采取的作业技术的活动”.有些推行ISO9000的组织会设置这样一个部门或 ...

  8. Testing - 软件测试知识梳理 - 比较质量保证(QA)与质量控制(QC)

    QA QC QM 概念 Quality Assurance (质量保证) Quality Control (质量控制) Quality Manage (质量管理) 定义 为达到质量要求所采取的作业技术 ...

  9. 软件测试QA、QC、QM的关系与区别

    01概念上 QA:Quality Assurance (质量保证) QC:Quality Control (质量控制) QM:Quality Manage (质量管理) 02定义上 QA:为达到质量要 ...

随机推荐

  1. Python - 反向遍历序列(列表、字符串、元组等)的五种方式

    1. reversed() a = [1, 2, 3, 4] for i in reversed(a): print(i) 2. range(len(a)-1, -1, -1) a = [1, 2, ...

  2. 解决for循环插入同一元素无法重复插入问题

    var el = document.createElement("div"); el.appendChild(document.createTextNode("hello ...

  3. 并发之ATOMIC原子操作--CAS乐观锁原理(二)

    1.乐观锁介绍 程序完成并发操作时,访问数据时每次不加锁,假设没有冲突去完成某项操作,如果因为冲突失败就重试,直到成功为止.就是当去做某个修改或其他操作的时候它认为不会有其他线程来做同样的操作(竞争) ...

  4. Django_模型

    1. ORM 2. 简单使用 3. 外键 2.0以上的版本要这样写s_grade = models.ForeignKey(Grade,on_delete=models.CASCADE) 3. 修改表名 ...

  5. Digital filter

    https://ww2.mathworks.cn/help/signal/examples/practical-introduction-to-digital-filter-design.html D ...

  6. Linux新建用户,切换后只显示$问题

    1,执行以下命令创建一个新的用户 useradd -d /home/sam -m sam -s /bin/sh -g group -G adm,root 这个命令中指定了这个用户登录的shell 是/ ...

  7. 每天进步一点点------Allegro 铺铜详解

    铺铜在设计PCB板时很重要,为了加深理解,笔者写下这篇学习的过程. 首先要理解什么是正片和负片,结合网上的资料来理解一下: 正片实际就是能在底片上能看到的就是存在的 负片实际上就是在底片看到的就是不存 ...

  8. n阶高精度乘法,(求高阶阶乘)

    先来复习一下小学数学 : 大家还记不记得小学算多位数的乘法是怎么算的? 卖个关子,大家一定要好好想想! 好了,别管到底还能不能想起来我们都要一块复习一下: 我们借助一下源自百度的图片 来复习下 相信大 ...

  9. linux下如何部署php项目?

    linux下部署php项目环境可以分为两种,一种使用Apache,php,mysql的压缩包安装,一种用yum命令进行安装. 使用三种软件的压缩包进行安装,需要手动配置三者之间的关系.apache和p ...

  10. BT详解,BT原理

    请参考以下链接: https://www.cnblogs.com/EasonJim/p/6601146.html