大多数人都觉得出了质量问题,就是测试同学的问题,关注QA就可以了,这个想法是错的。
项目管理者有义务让整个项目组都有基本的质量意识,质量管理需要从需求、研发、测试、上线、运维全流程来把关,越从源头把控,越会事半功倍。
为什么需要全流程质量管理,因为越是源头出的问题,造成的损失越大,一个没有想清楚的需求,如果到了测试阶段才发现问题,再推倒重来,代价是很大的,对项目的风险也是很大的。另外,从源头防范问题代价也是最小的,比如刚才说的需求设计的问题,如果我们在需求评审阶段被发现,很快就解决了,没必要浪费人力去开发一个错误的版本。再比如研发单元测试能发现的问题,如果到了联调阶段才发现,排查问题的代价也比原来要高很多。
那怎么从全流程来把控质量呢,首先要让整个项目组充分认识到质量的重要性,如果产品质量出了问题,再好的内容用户也没法接受,在质量、速度、资源三点的制约上,我们要有所平衡。在每个环节都要加入质量的管控措施,并且管控措施尽量进行前置。那么下面说一下每个环节如何进行质量管控。
一、需求评审阶段
这个阶段我们要给产品同学留足充分的需求设计时间,尽量挖掘需求内在的动力,而不是表面的外向展现,对需求的认知越深刻,设计出来的产品越有生命力,出现的问题也会越少。
同时,需求设计完毕后,我们要进行需求评审,评审完毕后,大家充分了解需求后,要进行需求的反述,也就是让开发、测试同学来阐述自己对需求的理解;这样两次讲解需求,会让项目组的人对需求有了充分的理解。
需求评审完成后,要进行测试用例评审和架构设计评审,通过这些环节,来管控架构设计和需求设计可能出现的问题。
二、研发测试阶段
研发阶段其实可以分为几个里程碑,一个是单元功能研发阶段,这个阶段重要的是工程师的自测,这个非常重要,如果单元测试没有进行,进入了联调阶段,发现和排查问题的代价都会变大。
第二个是联调阶段,建议一定要完成自测后再进行联调,有条件的情况下,单元测试也需要测试人员介入。
第三个是测试阶段,需要注意的是,上线之前,一定要进行封版测试,这个阶段代码变更需要进行严格的控制,如没有充足的必要,就不要再加新的需求,代码需要封版,进行全功能测试。如果有App的开发,还要进行兼容测试等等;如果有需要,这个阶段也要进行压力测试。
三、上线阶段
上线之前,一定要进行仿真环境的测试,仿真环境尽量要与线上环境保持一致,这样才能尽可能提前发现真实线上环境才会出现的问题。
对线上系统的变更是可能出问题的最大的来源,这个阶段所需要配合的人员也最多,先是运维同学操作上线,然后研发同学进行验证,然后测试同学进行回归测试,然后产品和其他项目组成员进行验收,最终才算上线完毕。这个阶段的建议是,上线之前一定要做好上线步骤和回归策略的制定,需要整个项目组达成共识,一旦出现了问题可以立即回滚,避免造成更大的损失。同时建议对整个过程进行清单检查,列出各个环节的检查点,如果能将清单固化为系统就更好了,没有的话,也可以采用签字单等方式进行。
如果对线上的功能改变较大,不清楚用户的接受程度怎么样,或者对系统的稳定性还存有疑问,最好进行灰度发布,限制可能影响的用户数。
四、运维阶段
系统上线才只是质量管控的开始,整个运维阶段,还需要我们做大量的工作,这个阶段的建议是第一步就要抓好监控报警,这是所有问题的起点,监控的越细致,排查问题越简单,对用户的影响也会越小。
总结一下,项目质量是项目组每个人的事情,质量控制需要在全过程的每个节点进行,不只是QA自己的事情。这里很多的细节没有展开,下次再跟大家展开聊下的。