SDET,也称为测试中的软件开发工程师,是软件测试和质量保证领域的工作角色。该术语最初由微软和谷歌使用,旨在用自动化取代普通和重复的手动测试任务。
多年来,越来越多的公司正在招聘SDET,因为它是敏捷和DevOps中的关键角色。但是,这是一个充满挑战的角色。
技术变化非常快,测试人员需要学到很多东西才能保持领先。
这篇文章讨论了SDET的作用以及为什么难以找到独角兽SDET。
SDET做什么?
SDET是一个技术软件测试人员,专注于开发自动化测试脚本。
通常,他们是敏捷团队的一员,与开发人员一起工作,帮助自动化用户故事中的接受标准。
除了参与典型的QA活动外,他们还可以编写自动集成测试,API测试和/或UI自动化测试。
此外,SDET可以帮助审查开发人员编写的单元测试。
为什么需要SDET?
在每个产品中,都有一些核心功能必须在每个产品版本上运行。这意味着在每个sprint中,必须测试新功能和现有功能。
敏捷开发是快节奏的。通过短冲刺(通常为2周),测试人员没有时间手动测试所有东西。
当团队中的测试人员没有编写自动检查所需的技能时,所有测试都必须手动完成。
最终,测试成为软件开发和发布的瓶颈,因为完成测试需要更长的时间。
因此,在敏捷团队中招聘和放置SDET可以通过自动化大部分手动测试和任务来减轻负担。
采访和聘用SDET
那么,为什么要找到并招募优秀的SDET这么难呢?
多年来,我采访的大多数所谓的SDET要么缺乏必要的技术技能,要么不理解质量保证和测试原则。
他们并不完全理解SDET在团队中的作用的主要原因。大多数人都认为他们所要做的就是自动化验收标准。让我们明确一点,SDET不是自动化工程师。
在测试能力和技术技能之间取得适当的平衡是关键。
一个伟大的SDET是一个贸易软件测试人员,对软件质量充满热情,同时具有技术娴熟,并拥有正确的技术技能组合。
在面试SDET时,我总是寻找QA心态和技术技能。**
SDET配置文件 - 全栈测试仪
优秀SDET的概况是什么样的?SDET应该具备哪些技能?
现在,我们中的一些人听说过全栈开发人员,但我们可以拥有全栈测试人员吗?
在我看来,SDET应 至少具备以下技能和属性:
· 有测试人员的心态,很好奇,可以提出有趣的测试场景
· 对测试原理和方法有深刻的理解
· 知道所有测试都是探索性的,并且理解测试和检查之间的区别
· 可以为给定的应用适当的测试方法
· 知道测试和质量保证之间的区别
· 可以用至少一种脚本或编程语言编写代码(Java和Javascript恰好是最受欢迎的)
· 了解HTTP以及如何构建现代Web应用程序
· 可以编写UI 以及 API自动化测试。其中一个还不够好!
· 知道Git,Pull Requests,Branching等......
· 本质上是敏捷的,并且知道测试如何适应敏捷模型
· 可以编写性能测试脚本(Gatling和/或JMeter)
· 考虑安全性并了解OWASP
· 了解CI / CD和构建管道
· 了解云平台提供商提供的服务,例如AWS,Azure和Google Cloud
成为一个伟大的SDET
可以看出,SDET所期望的技能范围非常广泛。
我希望成为SDET并且在QA新时代保持相关性的测试人员的建议是:
确保您在SDET配置文件中具备所有上述技能,但至少应:
了解并理解测试的基础知识
首先,要了解软件测试的基础。
与开发人员保持一致并能够编写漂亮的代码非常好。但如果您缺乏QA思维模式,如果您无法提供足够的方案来深入测试用户故事和功能,那么您就不会添加任何价值。你也可以更努力地工作并成为开发人员。
了解并理解HTTP
大多数现代Web应用程序都与API交互。
了解和理解HTTP体系结构以及Web的工作原理至关重要。如果您无法区分POST请求和GET请求,或者不知道如何解析JSON,那么如何有效地测试API?
投入时间学习Karate等API测试工具。
你不能称自己为SDET,如果你想做的就是自动化测试,而你所知道的就是Java和Selenium。