QA: Quality Assurance

在Wiki上,QA指的是品质保证。实际上,QA就像他名字所赋予的责任一样,承担了对质量的保证,但却不是只有QA对质量的负责,而是整个团队对整个产品的负责。

QA的使命,职责

QA的使命有很多种解释:

  • 报更多的bug
  • 保证产品的质量
  • 快速定位问题
  • 快速找出问题
  • 对产品质量提出评估
  • 改进产品
  • 控制成本、帮助预测
  • ...

在我看来,QA的职责是:提供高测试覆盖率的测试案例,尽快尽早发现问题,准确报告问题,定位问题,借此来保证产品质量。

其实,QA不仅仅是测试人员了。

在Agile中,测试人员为了更快测试,在Dev开始coding之前就开始requirement review。尽量在早期发现design上面的issue,而不是后期才发现,那会儿的代价也会越来越高。于是,QA几乎在coding之前和之后,都处于忙碌的状态中,已经不再是那种跟着DEV走的状态了。

QA是个坐标

QA在一定程度上,是BA A,PM A, PjM A和DEV A。正是QA的存在,整个team在明确自己的当前状态。此外,测试人员报bug的速率DefectArrivalRate也能够在一定程度上面反映产品的质量,是项目开发的明灯。

QA不是那群只会躲在角落里面偷笑的人儿

《测试之美》第一章中提到测试人员因为一个泄露bug的案例而偷笑的故事。他们测试过,知道有这样的issue。但是PM和PjM决定不修这样的问题,所以QA不会因此而负责,相反,他们会偷笑。但是他们之前告诉过你这事。

但是QA也常常会迷失,注意在那不是很重要的area去测试。这也不能够怪QA,在QA眼里,所有的area,都尽可能测到。只能够说,priority不是那么高而已。QA侧重的是缺陷,而客户注重的是满足自己需求的功能。测试需要常常和BA,PM以及客户(如果可能)沟通,拿到第一手资料,帮助以后的测试。

QA是好奇的

你为啥不修这个?DRE为啥要这么算?为什么会出现这个bug?为什么之前没有?为什么这个是P3的,明明是P2的issue?什么是DAR?能够说明什么?产品为什么要这么设计?市场是什么?运营呢?我们可以这样改进不?

QA,永远对这个世界充满着好奇。

QA是幽默的

QA的视觉是悲观的,有时候又不得不在悲观中形成一种难以捉摸的幽默。“哈哈,我又发现一个bug!” 很难理解发现bug还会高兴的事儿。但是,QA是最能够接受现实的人:“改变了不了现实,就只能够改变自己!”

此外,QA的心理素质要好一些才行,否则,在如此悲观的环境里面不会得到快乐的。

QA是痛苦的

QA是痛苦的:发现不了所有的问题,找不完所有的bug,覆盖不了所有的scenario,不可能写出完全覆盖的test plan,没有也不可能有completed测试,所有的issue没有办法修完。。。种种纠结,种种挣扎。

QA希望每个issue都能够被fix掉

QA怀着美好的希望,希望每个issue都能够被fix掉,但是事实是不可能的。同时,QA也是聪明的。“好嘛,A、B、C你都可以不修了。但是,D是必须要修的!” 如果你不修D,那么他就要求你修A、B、C。

QA不适合去做PjM

QA不适合去做PjM,因为QA总是希望所有的东西都修好。所以,QA一般需要BA/PM的介入,必要的时候告诉QA这个可以不去理睬。注意:PM对于这种问题的处理、分析的角度,对于QA来说,是很重要的一个部分,有助于QA下次报bug的时候衡量priority。

QA定位issue指南

QA发现问题的时候,要定位问题出在哪里,即find the root cause。一般步骤为: code change areas > core function > main function > reliability > common scenario > rare scenario. 随着产品前台,后台的了解深入,越加可能找到重要的问题。

QA沟通的那些事儿

曾经我试图去拯救世界。当时,修好的bug又再次重现,自己就想冲过去抽DEV:“这个是怎么回事嘛?!前天还是好好的!” 后来,我毕竟没有能够拯救世界,也差点闹得和DEV水火不容。沟通那事,对于QA很重要,要让别人很舒服地帮你做事又不伤感情,还是比较困难的。

就拿环境稳定性来说吧!环境不稳定,对于测试的进度有很大的影响。需要告诉上面的头头们,否则,他们以为你们没有做事呢!

一个好的QA

每个人对于好的QA有不同的定义,比如,好奇心,学习能力等等。在我看来,有如下几点是必要的:

  • 对于所观察到的现象的好奇。
  • 解释所观察到现象的能力。
  • 分析描述这些现象的能力。
  • 测试设计的选择。