我在测试生涯中受益的一件事是,我确实对软件开发编码方法和概念有所了解。虽然我可能无法从纸袋中编写出路(或者至少在我窒息之前),但我可以阅读代码并理解正在尝试的内容。
在雇用新测试人员时,这是一个很好的要求,还是只是简历上的“奖励”项目?
我在测试生涯中受益的一件事是,我确实对软件开发编码方法和概念有所了解。虽然我可能无法从纸袋中编写出路(或者至少在我窒息之前),但我可以阅读代码并理解正在尝试的内容。
在雇用新测试人员时,这是一个很好的要求,还是只是简历上的“奖励”项目?
这取决于您希望测试人员做什么。我确实认为这是一项值得花更多钱购买的技能,但我宁愿拥有一个充满激情、技术娴熟的测试人员,而不是一个阅读大多数职位代码的人。拥有至少一个可以阅读(最好是编写)代码的测试人员是一件非常方便的事情。
一方面,您的测试人员可以使用自动化工具但不能修改它们,但他们知道哪些测试会发现错误,并且擅长减少错误和沟通。通常,这些测试人员非常有经验,可以解决测试问题并快速解决问题。我很幸运能与这样的人一起工作,我从他们身上学到了很多东西。但是,他们只能进行黑盒测试。虽然黑盒测试可以涵盖很多内容,特别是对于可以执行测试计划审查的精通测试的开发人员和经常可以猜测不可见边界或执行熟练的探索性测试以找到隐藏边界的经验丰富的测试人员,但还是有一些白盒测试人员可能更有可能找到的东西。
另一方面,您有 SDET,他们是完整的软件开发人员,他们将自己的技能应用于软件测试领域。SDET 不仅会进行测试,而且通常还会开发测试工具。编写代码的测试人员可以编写夹具、自动检查、测试脚本等,并且可以编写组织良好、可维护的自动化测试代码。关键的缺点是这样的测试人员也是开发人员,并且获得与开发人员一样的报酬。第二个缺点是这样的测试人员可能真的想作为一个纯粹的开发人员工作,他们的测试技能可能很弱。
对于您提到的中间级别,您将获得白盒测试。这样的测试人员可以查看代码以识别等价类和不可见的边界,除非你看看代码的实现(或者有一个过于详细的规范)。您可能还会进行调试,具体取决于测试人员在 IDE 中的舒适程度。熟练的代码阅读者可能能够通过使用接口来确定功能的行为,从而减少开发人员的前期文档负担,因此可以在周期的后期编写文档并且可以更快地进行测试。熟练的白盒测试人员甚至可以参与代码审查并在编码之前发现潜在的错误,从而消除了用于这些问题的额外开发和测试时间。然而,由于这个假设的测试人员无法编写代码,因此开发人员可能仍需要为该测试人员的自动化开发工具。
自从从开发人员转到手动/自动 QA 职位后,我发现的最有用的事情是能够以开发人员理解的术语和语言与他们交谈。
阅读和理解代码的能力是所有测试人员的有用属性(在我看来),也是对某些测试人员角色的严格要求。
但是,对于雇佣新的测试人员来说,这是一个很好的要求还是只是一个很好的条件,这完全取决于特定职位的需求。
这取决于产品和职位的需要。如果职位要求测试自动化,那么编程背景显然很有用。它还可能表明适用于其他技术技能的一般能力,例如数据分析。当然,缺乏编程背景并不意味着缺乏其他技术技能。
我遇到了具有编程背景的测试人员,他们加入了 QA 作为进入成熟开发人员职位的垫脚石。只要测试人员真诚地在他们的 QA 职位上做得像他们希望在最终的开发人员职位上做的一样好,这并没有错。具有编程技能但不愿在需要时执行手动测试或通常对测试不感兴趣的测试人员是一种责任。