首页 > 代码库 > 我在Thoughtworks是如何做测试的 (二)

我在Thoughtworks是如何做测试的 (二)

<style>p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; color: #454545 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; color: #454545; min-height: 14.0px } li.li1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC"; color: #454545 } span.s1 { font: 12.0px Helvetica } ol.ol1 { list-style-type: decimal }</style>

5. 平时发现多少Bug?

  我大概统计一下,我们每天做的story card里,有70%~75%左右会被移动回开发修改Bug。其中大多数情况下,一张卡有3到8个Bug(我们这里通常一张卡会是1到3个人天),最多有过一张卡将近20个Bug,但这种情况是极少数才会发生的。

 

6. 开发做测试为什么有天然的优势

  如有让你测试一个叫“八星高颗粒子旋转通道”的东西,你会测试吗?基本上没有几个人能测这个东西,因为没有人知道“八星高颗粒子旋转通道”是干什么的。但如果你恰好是“八星高颗粒子旋转通道”的技术开发人员,你做出了这个东西,那你对整个构建过程很熟悉,对每个影响最终产品质量的变量都有过切身的体验,那你就知道哪里容易把产品破坏掉,也知道哪些变量和输入有可能是做这个东西的人有可能遗漏的。因此你就容易发现这个产品的缺陷。

  而开发人员做测试的天然优势一,就是他非常了解做这个产品的整个过程,明白整个过程中有哪些变量会影响产品质量。他也知道自己在做开发时候,往往会疏忽大意遗忘那些点没做,因此也能预判到别人会在哪里出现遗漏和缺陷。因此开发经验越多,做测试越容易。

 

7. 如何培养开发的测试能力

  今年上半年时间,我主要工作的中心转到帮助开发团队提高测试能力上。我们有11个开发,一个QA,有时候测试忙不过来,也会让开发去从ready for QA列捡卡测试。我之前采用的方式是,写一些blog,分享一些测试经验,以及和开发一起结对测试。其中结对测试是传递知识比较有效的方式,开发和我坐在一起,共同使用一个大显示器,做探索式测试,根据系统的反馈决定接下来测试的内容。

   不过我现在又了解到了另一种提高开发测试能力的方法,以后有机会可以尝试一下:这个方法是QA不去测试任何一张卡,全部卡都由开发去测试。QA主要做两部分工作:

  第一步,在每张卡上加上注释,说明这张卡要关注的测试点,或者和开发面对面沟通一下需要着重测试那些点。 

  第二步,当开发交叉测试完后,必须给QA演示他测试的过程。这时候QA如果认为没有问题,那么这张卡就挪到done了。如果QA发现一些问题,那可能会修改之前写在卡上写的测试注释,同时,开发会补充测试这些之前没有测到的路径。

   上面这种方法好的原因是:

  a. 开发如果把Bug漏到产品环境后,经过几次教训,他自己测试的能力必然提高很快。

  b. 一个能做好测试的开发,他自己开发出的代码质量也必然会提高很多。减少Bug的出现可以节省一大笔项目成本。

 

8. 和一群优秀小伙伴合作的体验

  刚来Thoughtworks,能明显感觉到大家的技术能力不错,而且公司的技术交流氛围也很好。和一群优秀的技术达人合作,有几个好处:

   a. 沟通起来比较顺畅,说到技术点,都能一点就彼此都明白。

  b. 团队每个人都追求高质量的产品,如果研发实践没做到位,大家都不舒服。例如单元测试覆盖率补够,code review不充分等,大家都会尽量避免。

  c. 看到缺陷会积极的去修复,不推诿。

  d. 经常性的retro回顾会议,对项目进行持续的改进。

 

9. 测试工作的成就感。

  到目前为止,我很爱测试工作。每次探索式测试,就像从迷宫中寻找出路,或者像是解题过程,从各种蛛丝马迹中寻找可能存在的产品缺陷,这是测试让我感到愉快的第一部分内容。 第二部分内容是,在大部分情况下,我会从每张卡上找出一些列的问题给开发,等开发完成后,我可以感觉到这部分的产品质量已经不错了。有好的产品质量是让我感到有成就感的另外一部分原因。

我在Thoughtworks是如何做测试的 (二)