摘自http://www.51testing.com/html/90/n-3721090.html
问题
通常,我在面试测试相关候选人时,除了技术等硬性标准外,我还非常希望候选人回答这么一个问题 ——如果让你负责一个项目的质量保证工作,你会怎么做?
之所以问这么个问题,主要是想考察候选人在过往的经历中,有没有全局性的思考如何把控一个项目的质量状况;有没有对自己日常的工作有个清晰的认识,甚或者有没有观察过你的leader或经理,他们是如何带项目的。这是个开放性的问题,不同行业,不同公司背景下的QA人员,得出的认识,可能会有不同。这里,我将谈谈我的理解。
从项目的一般生命周期说起
很多候选人听到我这个问题,一般会从项目的生命周期说起,将焦点聚焦在测试人员及其工作本身上。
比如会谈到测试人员要参与需求评定,充分理解需求。之后还要设计测试用例以及用例评审。最后就是基于用例做最后的验收测试。基于此,部分同学还会提到,需要做的测试种类,比如功能测试,性能测试。做移动端的同学还会提到各版本,各机型的兼容性测试等等。
这种说法确实没错,测试人员做好了这些工作,很大程度上会保障好项目质量。但通常这种模式,比较倾向于传统QA,QA属于研发线的下游。且实际表明,这种模式对QA人力有一定的要求。太少了,工作就开展不起来。按我观察到的现象来看,这种模式下,开发测试比,一般可以达到2:1 甚或者1.5:1.
很明显这种比例对创业公司来说太高了,创业公司一般追求的是极致的投入,以及更加极致的产出。而传统意义上,测试的产出却并不是那么明显。所以在追求质量保证的道路上,我们需要考虑是否还有其他道路呢?
影响项目的质量因素
仔细思考上面的描述,你会发现候选人默认将项目质量聚焦在测试人员身上, 而非项目本身。但做项目是个系统工程,涉及到的是方方面面。所以这里,我们不妨放大关注点,先不把目光局限在测试人员身上,而是考虑下这个问题的实质——影响项目的质量因素到底有哪些?
正所谓,过程决定结果。所以我认为做好过程质量,会让我们在追求项目质量的道路上事半功倍!
从过程质量出发,我将质量保证工作,简要的划分为下面几个环节,如图:
研发质量
研发阶段是项目最重要的时期,代表着一个项目从无到有,从1到100的研发及逐渐迭代的过程。做好这个阶段的质量保证工作,其正面意义毋庸置疑。
我推荐将这个阶段的工作按分层模式来搞,从最初的代码检查,到最终的e2e测试,性能测试等,全方位,立体化来逐渐保卫产品质量。这里的每一项工作都不是独立的。而应该按照持续集成,流水线的模式,对每一次的代码改动进行筛查和测试。
测试同学这阶段的目标应该是保证这条流水线的畅通,以及部分测试工作的完善,比如测试框架,e2e等。但不是说这里的每一项工作都要有测试同学来搞。而应该尽可能的发动开发和测试一起来协作。这样才会得到更高效率。
上线质量
也就是发布环节的产品质量保证。之所有把这个单拎出来,主要是面向服务端程序来说。因为这个过程是产品代码从研发到线上,真正面对用户的分水岭。这个环节处理不好,就很容易出问题。这里我将这个阶段,影响质量的因素,主要归结为版本控制,配置控制,以及上线流程三个方面,需要测试人员着重关注。当然,有同学会说,在我们公司,几个因素主要是运维部门在负责,但是测试作为质量监察者,和布道师,同样应时刻关注,且针对其中的问题或薄弱环节,着力推动和解决相关事宜。总之,项目质量相关的问题,QA都应该有义务关注。
特别的,QA在这个阶段最好能产出,或者协助产出,线上功能的冒烟测试集,以方便做发布后的及时验证。
线上质量
产品上线或者交付了,并不代表质量工作的完结,我们还应该时刻关注用户对产品的反馈。
应该定期组织线上bug分析,研究如何做才能避免这类bug的遗漏。对于线上事故,更要慎重对待,最好能对每一粒事故都给出测试端的改进。
还有一点可能大家比较忽视的就是,产品使用姿势分析。这一方面,虽然通常有专门部分来分析,但是如果有可能,我们同样应该关注,用户是如何使用我们产品的。这对我们在测试策略的制定上,非常具有指导意义。
对QA同学的技能要求
通过上面的分析,你会发现,要想做好这些工作,需要对QA同学提出更高的要求。
首先,技术要过关。在七牛,我们要求测试同学在技术上与开发并无二致。只有这样,你在质量布道和流程改进时,才会与开发同学产生更多的共鸣。同时,你还需要有一定的沟通技巧,和项目管理能力。测试同学面对是整个团队,要能适应每一位人员。在平时的技术沟通,需求讨论时,高效应对,维护好良好的人际关系,以方便后续工作的开展。但同时也要有全局意识,坚守质量底线,把控各个环节,防止出现质量漏洞。对质量工作的如何开展要有清晰的认识,不能被带偏。
篇后语
很多次,候选人都会问我,你们是手动测试多还是自动化测试多。我都会给他们强调,测试是对质量负责,不管是手动还是自动,都只是一种手段,依赖于测试人员的技术水平。我们希望所有的测试同学,都应该是以测试开发为标准,以质量布道为方向。用owner精神,做好整个项目的质量保证工作。