文档结构  
翻译进度:已翻译     翻译赏金:0 元 (?)    ¥ 我要打赏

这听起来有点搞笑而且有点意想不到, 但是对于很多软件开发人员来说,他们工作中最困难的一个部分就是如何与QA打交道, 也就是品质保证… 当然,也就是那些可怕的… 测试人员。

在上一章中,我们讨论了测试以及奠定了关于什么是测试以及它是如何进行的基础知识。

但仅仅因为你理解测试,并不意味着你就能了解测试人员。

所以,这就是这一简短的章节所要讲述的。

大体来说,这是关于你作为一个开发人员,该如何与测试人员和QA相处。

这篇文章是我即将出版的书《软件开发人员的完整职业生涯指导》的一章。我每周都在这个网站上写这本书。如果你 在这里输入您最常用的电子邮件地址,我给你发送之前的章节,让你跟上我的节奏 – 然后发送每一个新出来的章节!

第 1 段(可获 1.85 积分)

QA不是敌人

从本章节一开始就提出这个小小的秘密是很重要的…QA不是敌人。

我知道这似乎是这样。

我知道事情本来就是这样的。

我的意思是,这边你们在做东西、构建功能、解决难题、办各种事情,而那边QA在抠鼻子、进行冷嘲热讽、 阅读关于粘性思想的最新帖子,然后—噢,是的—破坏你的代码。

但是,他们真的破坏了你的代码吗?

你写的代码有bug,而QA只是试图找到这些bug,这真的是他们的错吗? 

当然不是。

第 2 段(可获 1.41 积分)

这是你的错,或者,如果你想成为那种总是说“让我们不要责怪任何人”的人,会说,谁都没有错。(但其实还是你的错。)

不管怎样,重点是你们是在同一个团队里

你们有着相同的最终目标:要生产出高质量的能够工作的软件。

诚然,有的时候你们看起来似乎是敌人,因为你们的目标看起来会有点冲突。

不可否认,有些测试人员总想破坏你的代码,从而使得代码无法交付。

有大量的QA人员忘了他们的目标其实是要创建能够使用的软件,而不是为了阻止软件发布。我们稍后会讨论这些人。

第 3 段(可获 1.7 积分)

但是,总的来说,你要清楚你跟他们不是对立的。

因为一旦你挑起了战争,那你就会使你的工作做起来困难重重。

无论你有什么关于QA都是敌人的思想,请统统丢掉吧。

这不会对你有好处的, 它只会对你的软件开发生涯不利。

没错,我说的是亲身经历。

相信我,这些年来,我和测试员进行了许多史诗般的战斗。

我甚至因为扔椅子而受到指控—完全是一派胡言。

了解你在测试的东西

第 4 段(可获 1.45 积分)

这里我们来举一个常见的例子来看看测试人员与开发人员是如何发生冲突的:

“嘿,你干啥呢,这不是一个bug。”

“谁说的,这就是个bug,你的代码没有对非字母字符进行正确的排序。”

“本来就不应该。你那个测试不合理。这个功能工作的很好。”

“胡扯,应该是这样的。它就是个bug。”

“不,不是bug。我真想把这把椅子扔到你这个傻X身上。”

这里我们看到的是沟通失败。

真的是彻底的失败。

其实,只要你在写代码前跟测试人员在一起讨论下要测试的内容,这些问题就可以很轻易的解决掉。

第 5 段(可获 1.43 积分)

在那种情况下,一个五分钟的谈话就可以使得一把完美的椅子不至于被毁掉。

如果当事的软件开发人员提前与测试者进行讨论,只是简单的讨论测试的内容,那么他就会知道应该如何编码处理非字母的字符。

或者他们可以在写代码之前就针对这件事抛出争论,那么他们之间的对话就可能会更加平和些。

毕竟你不可能在不知道要测试什么的时候就开始进行测试吧,对吧?

第 6 段(可获 1.35 积分)

比如说,很少有律师会在不知道考试内容的情况下就走进了律师资格考试的考场。

他们不会坐在考场里说,“我丝毫不知道这场考试会考些什么,但是我希望会是我所学习的内容吧。”

因此,不要写一些你知道将要被测试而你却不知道如何测试的代码。明白了吧?

先测试你自己的东西

我在其他章节里已经简要说过这方面内容,但是它太重要了,我就再赘述一遍吧。

先测试你自己的东西。

质量保证人员并不是一个可以为你测试代码而你就省去测试的保姆。

第 7 段(可获 1.71 积分)

QA应该是你的代码在发布并到达你的客户那里之前最后的防线。

不要寄希望测试人员会发现你的bug,并验证你的代码是否工作。

实际上,好的测试人员经常会把他们所做的事情称作验证,而不是测试。

(我曾经去过一个QA大会,我曾花了很长的时间都在听关于验证和手动测试的区别。)

总的来说,在将你的代码交给QA之前,你有责任测试你的代码。

当我说到这些时,一些软件开发人员有点生气,会问我,“如果我测试我的代码的话,那测试人员该做什么工作?对他们会有什么好处?”

第 8 段(可获 1.51 积分)

这是一个好问题。 在一些组织里,测试人员存在仅仅是为了进行手动测试,但是在一般情况下,一个测试人员的主要价值在于找出什么应该被测试,并且考虑清楚所有可能破坏软件的行为或者还有哪些用例还没有考虑到。

这样想下试试。

任何人都可以针对一个明显的功能特性应该如何工作能够想出那些基本的场景。

你应该在测试所有这些基本的明显的场景之后再把你的代码提交给QA。

但是一个好的测试人员可能会尝试运行这些不怎么明显的场景以及那些你可能还没有考虑到的边界用例。

第 9 段(可获 1.38 积分)

(当然,我仍然建议你在真正开始编码之前运行这些测试,然后决定应该测试什么。)

关键是,基本用例和任何你知道要测试的东西都应该能正常工作。

测试人员永远都不应该浪费时间去寻找那些在你的代码里很容易就能够捕获的bug。

这就引出了下一个问题。

避免Bug/修复的循环

同QA一起工作的主要原因与每个人的工作职责关系不大,更多是为了提高团队的整体效率。

第 10 段(可获 1.38 积分)

我们都想尽可能的避免发现bug,修复bug,验证bug是否被修复的这个过程的反复进行。

记录一个bug日志,并分配给开发人员,重现该bug,修复并反馈给QA,验证是否修复,然后将其标记为已修复,这个是一个比较耗时间和资源的过程。

我们希望尽可能避免过多的时间和开销。

这也是你应该测试你自己的代码的主要原因之一。

如果你在将代码发给QA去测试之前就发现了bug,你就应该尽早解决掉。

不过,还有另一种方法可以缩短这个循环。

第 11 段(可获 1.5 积分)

尽量直接和QA一起工作,在他们发现bug之后就马上修复掉,而不是等他们提出一个bug报告后再完整的走一遍正常的流程。

一个简单的办法就是邀请将要测试你的代码的测试人员到你的办公桌前,一起过一下几个场景用例,让他看下你做的东西,然后再将代码提交上去。

你还可以将代码放到一个开发服务器上,或者其他什么方式,让他们能够访问到。

或者,如果如果已经正式提交到了QA那里,你可以去他们的办公桌前观看他们执行测试。或者请他们一旦发现什么东西时就告诉你,这样你可以做快速的修复而不是让他们提出一个bug。

第 12 段(可获 1.75 积分)

有时,一个正式的bug报告会先被记录下来,然后再跟踪,排优先级,并且进行整个流程。

但是,一般来说,如果你能尽可能的避免bug/修复的循环周期,那么你就可以帮项目节省下不少的时间。 

帮助实现自动化

大部分的测试人员并不是软件开发人员。

即使那些知道如何写一些代码的人也很有可能不会像你一样擅长写代码和进行系统架构

然而,很多的软件开发组织都希望他们的测试人员能够使他们的测试自动化。

第 13 段(可获 1.28 积分)

作为一个软件开发人员,当你拿到了针对你的代码的bug报告时,你明知道你的代码是没问题的,但是由于书写或者设计不合理导致有些自动化测试失败,这很让你感到极其头疼吧。

你应该及早站出来,提出要帮忙书写自动化测试,尤其是帮忙构建一个自动化测试的框架出来。

这是可以跟QA带来很大好处的一个方面。也是拉进测试人员与开发人员距离的一个很好的机会,也就会极大的减少冲突和你我敌对的状态。

如果遇到一个蠢蛋该怎么办?

好吧,你正在试图跟QA搞好关系。

第 14 段(可获 1.33 积分)

你首先测试你自己的东西,在编写代码之前就要确保知道要进行哪些测试,你甚至可以请整个QA团队出去吃顿饭来向他们展示你并不是个坏孩子。

然而总是有这么一个QA小伙伴—就是这个蠢蛋—他好像总是与你作对。

不管你做什么或你有多友善,他似乎一心想证明你的代码有多烂,竭力破坏这个项目,而且找寻尽可能多的bug,不管是否相关。

你该怎么做?

警告:接下来我将要说的东西在政治上是不正确的,而且会让某些人很不爽,但是却是事实。

第 15 段(可获 1.64 积分)

听我慢慢道来吧。

老实的说。

有时—并不是一直—QA团队的人心理上感觉自己不如开发人员。

在脑海的深处,他们感觉他们就是不能想开发人员那样写出代码来,所以就只能接受做测试这样一份工作。

不过,不要误会我的意思,这并不意味着每一个在QA里的人都是这样的,但这确实是某些QA人的状态,而且很可能就是你正在相处的那个蠢蛋。

想要摆脱这种不如他人的感觉的一种方式,就是不断尝试绊倒其他人,特别是你嫉妒的那个开发人员,这样就可以让你自己感觉更聪明和有优越感。

第 16 段(可获 1.43 积分)

我已经看到过太多次这样的例子了,明白这是非常普遍的现象。

而且,在我的经验中,我发现要解决此类问题的最好的办法之一是,忍气吞声并且要认同同事的聪明智慧。

想要赞美一个故意毁谤你的人很不容易,但这是一种比较高明的方法。

我发现在很多情况下,这家伙只是想寻找些认同和确认,而一旦你给了他们,他们就会像只小狗跟着你,摇着尾巴。

一点点真诚的赞美可以走得很远—记住这点吧。

如果你的努力依然得不到回报,至少你知道你已经尽力而为了。

第 17 段(可获 1.74 积分)

文章评论