测试开发工程师 (Software Development Engineer in Test,简称SDET)是指那些既可以称作是开发人员,同时也负责软件开发阶段和测试周期的测试工作的技术人员。一个专业的SDET更关注软件产品的可测性,稳健性和性能。他们还可以在生产软件的设计初期发挥推波助澜或审阅的作用。
由于这种混合性质,如今无论是中小企业还是大企业,都有很大的需求。
基于这种特殊的角色,让我们来看下具体体现:
SDET是做啥的?
通常情况下,测试工程师(STE)主要职责:他们是在系统界面上执行测试,发现bugs,针对发现的问题,在bug追踪管理工具上报告具体的失败的测试用例。而SDET更像是包揽了软件生命周期和测试生命周期的工作,他/她要做设计,制定计划,创建,线程化并且通过code review 或者自动化工具发现代码的问题。
一个SDET不仅可以考虑在应用程序代码可能失败的可能性,并适当地规划自己的测试结构,保证了产品的耐用性。
为什么需要测试开发?
自动化测试不能完全的替代手工测试,并且企业不乐意去雇佣两种测试人员,那么SDETs会成为他们的首选。这就预示着传统的纯手工测试转变为了通过技术实现产品的测试。所以SDET不仅是一个具备编程技能,也是一个可以创建测试框架和工具,帮助手工测试过程的测试人员。
SDET的角色和职责
SDET应该能够进行自动化测试和多应用平台的搭建,比如:web,Mobile和Desktop.
根据技术支持部的反馈调查和重现客户遇到的问题。
创建和管理BUG报告,并与团队进行沟通。
能够创建不同的测试场景和验收测试。
SDET需要处理与合作伙伴的技术交流,了解客户的系统或API。
SDET更需要和部署团队一起协作,处理不同层面的系统问题。
SDET同时也应该具备搭建,维护和操作自动化框架的能力。
以上为测试开发工程师的必备(关键)技能。当然不同公司存在一定的差异。
技术和软技能
非技术能力:
沟通能力
SDET必须具备良好的口头和书面沟通能力。测试材料像测试用例,测试计划,测试策略,BUG报告创建,应该易读和易于理解。
时间管理和组织能力
一个SDET的工作在代码发布期间尤为苛刻,必须有效地管理工作量,具有生产效率高,时间管理技能。
良好的工作态度
要想成为一名合格的SDET,良好的工作态度尤为重要。你必须能够在技术不断更新的情况下实时更新自己的技术技能。在这个过程中,态度起了一定的决定性。因此,在日常的工作中,对于任务应该持有有一种主人翁意识,而不是等待被分配。
热情
在IT专业,任何的成功带给你的喜悦,都离不开对该领域的热忱度。一个SDET应该有对测试,开发和设计的热情和求知欲和创造性。
技术技能:
对编程语言有所了解,例如C#,.NET, Java等。
理解面向对象程序设计
有敏捷+DevOps流程管理方法论的工作经验
熟知各种测试方式和测试相关的工具,例如MS Test,NUnit, TestNG, Selenium WebDriver等等。
涉足行为驱动开发(BDD)。
通过自动化工具能够找出现有项目代码中的瓶颈和阀值
有一定的系统或服务端开发经验
至少一年的测试经验或者说对各种开发工作感兴趣
日常工作
以一天为例,你大概是在忙碌于理解项目文档,编写和执行测试用例,输出测试结果和测试系统中的bugs.并且更像一个使设计团队,开发团队和其他的团队建立联系的枢纽。
事业进阶
在一个典型的CMMI 5级(致力于持续的流程改进)的公司,你的大概事业进阶如下所示,当然不同公司存在一定的差异。
新手->老司机(2,3年经验)->测试开发团队协调员(5-8年经验)或者是测试开发经理 (8年以上经验)
总结
因此,测试软件开发工程师的作用是非常可观的,以及具有挑战性,因为它力求以最大可能的质量交付软件。
译自:https://www.testbytes.net/blog/what-is-sdet/
译文转载来自公众号:测试开发社区