背景:在团队中没有“测试人员”的小型敏捷团队(2-3个开发人员)中雇用一个工程师职位。
问题陈述:我们正在努力决定我们应该寻找哪些技能--一个具有开发背景的软件工程师,他至少可以在单元/集成级别上进行有效的测试,或者一个能够直接理解和检查应用程序代码并能够编写单元级测试的测试人员。
发布于 2018-02-15 15:06:16
TL;DR:
使用测试自动化的开发人员与自动化测试开发人员之间的区别是哲学的和学术的,但实际上他们拥有几乎相同的技能集(其他技能的差异将大于这种差异)。
如果您雇用的开发人员谁不能测试,它不是一个真正的开发人员和明显的不雇用。
如果您雇用手动测试人员,则不需要开发技能。
因此,我假设雇用一个对自动化测试负有重大责任的职位。
现在,您大概是在比较一个已经知道(或愿意学习)您的测试自动化技术的开发人员,还是自动化测试人员。有些人称他们为“测试中的软件开发人员”,这告诉了你所需要知道的一切。他们是开发人员,但他们正在为核心系统开发测试,而不是您的核心系统。
如果你要面试1000人来雇佣200人,问你的问题可能并不完全是浪费。但因为你只雇用一个人,你只需列出核心和优秀的能力,然后雇用最好的整体候选人。
而且候选人的质量比仅仅是一个开发人员更复杂(如果开发人员不能对自己的代码进行单元测试,那就是不雇佣)或测试人员(手册)?测试自动化只是使用不同的库进行开发)。对于那一次的雇用,你需要考虑一下
人不是齿轮,特别是对于小团体,在那里你飞得很低,每个成员的贡献都是显而易见的,没有地方可以隐藏,糟糕的雇用可以使项目成败。你需要评估个人,你将有两个候选人的机会与所有其他技能完全相同的水平(因此,差异在原来的问题将是决定性的差异)是零。
您最好的选择是以前的手动测试人员,他已经了解您的核心系统,并且渴望学习编程和升级技能来测试自动化。或者是前核心开发人员,无论出于什么个人原因,他都有兴趣学习您的测试自动化技术(与被迫学习的技术相比)。
编辑,2019年2月:
此外,单元级的测试最好由正在更改相关代码的开发人员完成。应该为每个报告的错误编写一个(失败的)测试(以确保它被正确地检测到),然后应该修复错误(因此单元测试将通过)。对其他人(测试人员)来说,学习相关代码足以编写单元测试(核心开发人员已经知道与编写单元测试相关的一切),这将是浪费时间。
发布于 2018-02-15 13:08:57
这实际上取决于软件的复杂程度。为了简单起见,让我们隔离两种类型的软件:
对于type 2,我会雇用一个"tester who can code",因为测试人员将开发具有专业直觉的代码,并了解该软件可能存在的典型问题,因此它将有助于在设计或实现阶段克服这些问题。
对于type 1,我会雇佣"a developer who can test",但我不会真的依赖这个开发,而且我仍然会考虑拥有一些测试资源。无论是兼职,还是外包或自由职业者关系,如果我们在紧张的预算。因为通常情况下,开发人员不会以关键的方式看待自己的代码,甚至可能会忽略一些重要的测试方面,比如测试、与其他组件的集成或可用性测试。
https://sqa.stackexchange.com/questions/32063
复制相似问题