SDET 或测试中的软件开发工程师是指在质量工程和软件开发方面具有技能的人员的角色。微软首次发明了术语 SDET。之后,它成为谷歌、Adobe、亚马逊等大公司的重复术语。 SDET 专业人员的作用是自动化重复的手动任务,以提高 AUT 的效率和可靠性。
以下是 SDET 的角色和职责 -
SDET 的第一个主要作用是与开发人员和业务利益相关者一起工作。SDET 的工作是从客户的角度了解具体要求。然后他们必须了解基于编码语言、数据库等的产品开发过程的复杂细节。之后,他们必须准备一个策略,以在最佳水平上自动化过程。
他们必须执行功能、性能和回归测试以构建高效的测试自动化解决方案。
他们必须在测试的功能和非功能领域工作。
在功能测试中,他们必须考虑到产品的功能和要求来测试产品,确保它符合验收标准。
在非功能测试中,他们必须测试应用程序的性能水平。此外,他们还会检查应用程序的安全等级。他们的工作是检查应用程序的每个安全细节,以便最终用户和组织将来不会面临任何财务和形象问题。
他们还在设计软件的 UI 和架构以及提供关键反馈方面发挥着重要作用。
他们必须为某些情况创建可重用的脚本和工具。
在所有测试过程中,组织必须关注测试软件的内容、时间和方式。谈到软件的功能、性能和安全性,端到端测试自动化已成为开发现代应用程序的基本要求。由于 SDET 在编码和测试领域都有经验,因此组织对他们的需求仍然很高。除了提高代码质量外,SDET 还执行稳健和详细的代码审查并检查代码的可测试性。
SDET 专门开发和使用多种工具、技术、流程和行业最佳实践。这足以使它们成为开发生态系统的重要组成部分。他们的工作是测试开发人员编写的代码。为此,他们必须编写自己独特的代码、单元测试并进行白盒测试。
以下是 SDET 预期的技能组合 -
组织在 SDET 中关注的主要技能集是他们对各种脚本和工具的熟练程度。不同的公司有不同的要求。例如,如果您在一家公司使用 Microsoft 或 .NET,那么您可能必须为另一家公司学习 JAVA。基本上,SDET 必须对学习新技能持开放态度。
SDET 必须适应项目、工具、技术等的特定要求。例如,一方面可能会要求您进行 API 测试,同时也可能会要求您进行 UI 或前端测试。因此,为了交付高质量的产品,SDET 必须学习多种测试技能并更加适应特定项目的要求。
SDET 必须专注于寻找新方法,通过在不影响质量的情况下自动化测试过程来减少手动工作。有多种框架可用于自动化 Web 和移动设备。现在大多数组织都使用 selenium 和 appium 工具来自动化手动测试。一些 SDET 还在云基础架构上运行测试,例如浏览器堆栈、源实验室等。
大多数系统都依赖于 API,因为它可以允许它们访问来自其他系统的服务。通过对 API 的正确理解,SDET 不必重新发明已经可用的新服务。SDET 必须知道如何开发和使用 API,除了对 HTTP 协议、HTTP 方法、标头、cookie 等有一定的了解。 SDET 还必须熟悉基于 XML 和 JSON 的服务。
Chrome 网络调试器
邮差
Mockito 框架
吉特
硒
JMeter
OWASP
亚马逊AWS
谷歌 GCP
微软 Azure
SDET 和 QA 工程师都有一些相似之处,因为两者都必须在 Selenium、Jenkins、Java 等工具和语言方面获得专业知识。但是,它们之间的差异非常明显。
SDET 是具有卓越开发知识的开发人员,与测试团队而不是产品开发团队合作。SDET 负责编写代码并对其进行测试。SDET 的工作是编写新代码、不断测试和修复它们。简而言之,SDET 是具有强大分析、技术和解决问题能力的专业人士。
QA 工程师是不需要任何编程知识的测试人员,因为他们不接触代码。
因素 | 山东省教育厅 | 质量工程师 |
---|---|---|
Scope | 专注于功能性、非功能性、性能、安全性等等。 | Primarily focuses on functionalities of an application. |
自动化 | 主要致力于自动化重复场景,允许手动测试人员专注于复杂场景。 | Automation skills is not mandatory. They must know how to use tools for manual testing. |
技能 | 主要用于自动化测试用例,编写可重用的脚本以减少重复性任务。 | 专注于应用程序的功能、边缘案例场景和执行复杂的测试案例。 |
准确地说,SDET 扮演着客户倡导者的角色,其工作是了解最终用户的期望并找到满足这些期望的创新方法。虽然功能和自动化测试人员的需求始终存在,但另一方面,组织对 SDET 的要求很高。