毫无疑问这个观点会引起争议。开发人员测试他们自己的代码——会得到怎样的测试结果?一切完美?是的,开发代码的人通常只能看到产品好的方面,而不想去关注更多的细节。
开发人员做测试的主要担忧是,被曲解的需求。如果需求被开发人员误解了,那么无论开发人员在什么深度测试应用程序,他将永远找不到错误。第一个被认为是BUG的地方将从始至终一直保持现状,因为开发人员会将它看作正常功能。
乐观的开发者——是的,我写的代码,我坚信它是能够正常工作的。不需要测试这个路径,不需要测试那个路径,我知道它能够正常工作,开发人员正式这样漏掉了一个又一个的缺陷。
开发人员VS测试人员:开发人员总是希望看到他的代码运作正常。所以他会通过对其进行测试,以检查是否正常工作。但是你知道测试人员测试程序的目的是什么吗?如果能够以任何方式使它失败,测试人员就一定会测试如何使应用程序不能正常工作。这是开发者测试和测试者测试的主要区别。
开发者应该测试自己的产品吗?
我个人是不介意开发者测试他们自己的代码。毕竟这是他们自己的孩子;-)他们能够很好地知道他们的代码。他们知道代码中有什么陷阱。哪里可能失败的,那个地方就集中更多的精力,这是应用程序的重要路径。开发者可以做单元测试做得很好,也可以有效地确定边界情况案例。(图片)
所有这些看来开发人员是可以做个好的测试的!但大多数开发人员认为测试是痛苦的工作,即使他们熟知系统。由于他们的疏忽,他们倾向于跳过许多测试路径,因为对于他们来说这是一个非常痛苦的经历。如果开发人员在单元测试中发现他们的代码任何错误,那么都是相对容易解决的。因为代码对于他们而言是新的,而不是两三天之后才从测试人员那里知道漏洞。但是只有在开发人员感兴趣做这么多测试的情况下是可能的。
确认每个路径是否被测试过是测试人员的责任。测试人员应该重视所有可能的小细节去验证应用程序没有在任何地方发生异常。
开发人员,请不要review你自己的代码。通常情况下,你会忽略代码中的问题。所以把它给别人复审吧。
每个人都在特定的专长。开发人员通常考虑如何开发应用程序,另一方面测试人员考虑最终用户将如何使用应用程序。
总结
所以总的来说,如果开发人员在做最基本的单元测试和基本的验证测试,那就没有问题了。开发人员可以测试一些他们知道是至关重要的,不应该错过的异常情况。但也有一些很优秀的测试人员也具备这种能力。不要浪费自己的时间了,而是去建立一个测试团队。一个项目能否成功往往依赖于测试人员能否充分的测试应用程序。毕竟让我们的“孩子”更聪明是我们(测试人员)的责任! !
【英文原文:http://www.softwaretestinghelp.com/developers-are-not-good-testers/】
{测试窝原创译文,作者:紫晴}