测试开发工程师就是测试中的软件开发工程师或测试中的软件设计工程师,目前许多组织都要求测试开发工程师这类专业人员能够参与应用程序开发以及所开发软件的测试。测试人员可以不参与软件开发的手工测试人员或质量分析人员。测试开发工程师通常参与开发高质量,健壮和高性能的代码,这对于自动化测试用例或设计可用作测试工具的测试框架很有用。测试开发工程师还审查了软件产品的设计和过程。测试开发工程师随着DevOps,敏捷和持续测试的增长,它的职责正在增加。
测试开发工程师具有熟练的开发和测试技能;另一方面,测试人员参与到准备和执行测试用例的工作中,无论是手工还是自动化。
测试人员是具有有限的编程技能,他们非常关注黑盒或功能测试,而测试开发工程师是具有良好编程技能,可以完成白盒测试以及测试自动化方面的开发人员的工作。
测试开发工程师在软件开发方面非常精通,他们可以参与测试自动化工具的开发。测试人员不需要开发测试自动化工具,他们可以使用这些测试自动化工具来自动化软件应用程序或项目所需的测试用例。
通常在组织中,开发测试自动化框架的测试人员或质量分析人员承担测试开发工程师的角色,并且可以参与软件应用程序或其他测试自动化框架的设计评审。
测试开发工程师的职责比测试工程师承担的角色更多,如性能测试、安全测试、测试数据的自动生成、测试环境设置、开发测试自动化工具等。
与手工测试人员不同,测试开发工程师需要具备领域知识,这样他们就可以参与设计测试用例。测试人员的所有职责都由测试开发工程师承担。
有些组织,如微软,不区分测试人员的不同角色,并期望他们手工执行测试,以及在需要时编写测试自动化脚本或代码。组织现在强调测试人员至少要学习一种编程语言,他们可以使用这种语言在测试自动化工具上工作。此外,自动化测试工具如Selenium、FitNesse、SAHI等具有灵活性,可以使用各种编程语言(如Python、Pearl、JAVA等)
一、工作的性质不同。软件开发工程师是从事软件开发相关工作,软件测试工程师是理解产品的功能要求,并对其进行测试,检查软件有没有缺陷(Bug),测试软件是否具有稳定性(Robustness)、安全性、易操作性等性能,写出相应的测试规范和测试用例。
二、担任的角色不同。软件开发工程师的技术要求是比较全面的,需掌握诸多前沿技术,属于技术型。软件测试工程师在一家软件企业中担当的是“质量管理”角色,及时发现软件问题并及时督促更正,确保产品的正常运作。
三、未来发展方向。Java软件工程师的未来发展方向大致分为两类:一是成为管理人员,例如产品研发经理,技术经理,项目经理等;二是继续他的技术工作之路,成为高级软件工程师、需求工程师等。
软件测试工程师可以发展成测试组长,测试组长可以向上发展为测试部经理、质量经理,也可以横向发展为项目经理。