优秀的开发人员和测试人员应有的态度

  • 张卫滨

2014 年 1 月 7 日

话题:语言 & 开发架构

Rajaraman Raghuraman 是一位具有丰富经验的软件软件从业者,是 AgileDevTest 博客 (http://agiledevtest.blogspot.com) 网站的站长,以及电子书《Programmer's Motivation for Beginners》的作者。针对优秀的软件开发人员和测试人员应该具有什么样的职业态度,他专门撰文进行了阐述。

针对软件开发人员的文章中,Raghuraman 认为软件开发是一种艺术,而不是一门科学。你可以学习软件开发的各种技术,不过还需要对编码有着充分的热情。如果你是这样的人,那么就可以成为“伟大的开发者”。Raghuraman 列出了优秀的开发人员应该具有的态度:

态度1:缺陷表明我编写优秀代码的能力出现了问题

修改缺陷是软件开发人员的日常活动。显然,缺陷是开发人员最大的敌人。当修改缺陷的时候,又有多少人能想到以下几点呢:

  • 起初的时候,我能做些什么来避免这个缺陷呢?
  • 我怎么能让这个缺陷逃过我的眼睛呢?
  • 好了,既然问题已经产生了。我下次该如何避免相同的错误呢?下一步该做些什么呢?

事实上,很少有开发人员这么想。

愿意成为优秀开发者的人应该将缺陷视为其位置的一种威胁、个人可信性的一种威胁以及编程技巧的一种威胁。正是这种态度能够使其成为伟大的开发者。

态度2:测试人员,有本事就在我的代码中发现缺陷

有多少人具有这样的态度呢?很多开发人员认为测试的任务就是发现缺陷。的确如此,但是这并不意味着开发人员就可以将缺陷视为理所应当的事情。优秀的开发者愿意邀请测试人员在他的代码中寻找缺陷。他们对自己的代码有这样的自信。

态度3:在代码质量问题上不妥协

对于开发者来说,最重要的事情就是代码质量了。这包括正确的编码标准、使用恰当的设计和重构保证代码更加可维护等等。但是,我们通常会因为一些众所周时的原因在代码质量问题上妥协,比如面临时间和进度的压力。优秀的开发者永远不应该在代码质量上妥协,不管所面临问题是什么。

态度4:自信但不傲慢

优秀的开发者应该对自己的能力有自信,但是不应该对其他开发人员和测试人员傲慢。他应该始终记住他是团队中的一员,这个团队要准时高质量地完成项目的共同目标。

态度5:感激测试人员

尽管优秀的开发人员工作非常努力认真,但是测试人员依然可能在他的代码中发现缺陷。如果这样的话,感谢这些优秀的测试人员。优秀的开发人员应该感谢测试人员所发现的缺陷。他应该记住这一点,他的敌人是缺陷,而不是做测试的人。

针对软件测试人员的文章中,Raghuraman 认为开发人员和测试人员的工作方向正好相反,但是有着共同的目标,那就是生产高质量的软件。他认为优秀的测试人员应该具有如下的态度:

态度1:我要不惜一切代价破坏软件

不要产生误解!测试人员的工作就是要发现缺陷,在这个过程中,要随着时间的推移,使软件变得越来越好。缺陷是测试人员的好朋友,因此他最重要的事情就是不惜一切代价破坏软件,发现漏洞。这个过程中,可以系统性地执行测试用例,也可以进行临时测试或探索性测试。

如果你想成为优秀的测试人员,那么你的态度应该是“不惜任何代价破坏软件并查找缺陷”。

态度2:优秀的开发人员,我一定要在你的代码中找到缺陷

不知道有多少测试人员能有这样的态度?

但是如果想成为优秀的测试人员,就需要有这样的态度:不管开发人员多优秀,也要努力在他的代码中找到缺陷。

态度3:在测试质量问题上不要妥协

就像代码质量一样,测试也需要高质量。优秀的测试人员不应该在测试质量上做任何的妥协。

态度4:感激开发人员

有可能优秀的开发人员编写的代码不包含任何缺陷。难以置信吧?如果是这样的话,那就感谢开发人员吧。

如果开发人员所编写的代码没有缺陷,优秀的测试人员应该感谢并尊重他们。应该记住这一点,他的朋友不仅仅是缺陷,开发人员也应该是他的朋友。

态度5:我绝不比开发人员差

在测试领域,是不是有很多人觉得比开发人员低一等?相信有很多这样的人。如果测试人员觉得比开发人员低一等的话,那么他实际上并没有恰当地做好测试工作。正如前面所述,开发人员和测试人员工作方向相反,但是有着共同的目标,那就是生产高质量的软件。

如果你想成为优秀的测试人员,那应该首先为自己的工作感到骄傲,不要觉得低人一等。

态度6:要比开发人员懂得更多

有多少测试人员在技术和架构方面懂得比开发人员还多呢?可能并不太多吧。作为测试人员,工作内容不应当仅仅是编写和执行测试用例并报告缺陷。他应该在技术上比开发人员了解得更多,只有这样才能知道在什么地方能够破坏软件并找到缺陷。

优秀的开发人员和测试人员除了高超的技术技能外,还都具备专业的职业态度,希望 Raghuraman 的总结对您有所帮助。

语言 & 开发架构