本文由英国测试咨询专家Amir Ghahrai撰写,由Yoyo翻译。
原文标题为:SDET独角兽—为什么雇用SDET比较难?
以下为译文:
SDET(Software Development Engineer in Test)也被称为测试开发工程师,它是一个在软件测试和质量保证领域的工作。这个名词最初被微软使用,Google跟进,用自动化的方式来和普通重复的手工测试任务进行区分。
多年来,越来越多的公司正在招聘 SDET,因为它是在敏捷和 DevOps 中的关键角色。但是,这是一个具有挑战性的角色。
技术变化非常快,测试人员需要学习很多东西才能在行业中保持领先。
本文将谈论SDET角色的职责和作用,以及为什么独角兽SDET很难找到。
SDET 是一个技术型的软件测试人员,专注于开发自动化测试脚本。
通常来说,他们是敏捷团队的一部分,负责把用户故事中的验收标准(Acceptance Criteria)自动化。
除了参与典型的 QA 活动外,他们还会编写任何自动化脚本,包括集成测试、API 测试或 UI 自动化测试的内容。
除此之外,SDET 还可以帮助评审(review)由开发人员编写的单元测试。
在每个产品中,都有一些核心功能必须保证在每个版本上都能正常工作。这意味着,在每个sprint 中,必须同时测试新功能和这些已有功能。
敏捷开发的节奏是快速的。通常一个sprint为2 周,测试人员没有时间手动测试所有内容。
当团队中的测试人员没有编写自动化测试所需的技能时,所有测试都必须手动完成。
最终,测试会变成软件开发和发布的瓶颈,因为累积的功能越来越多,完成测试的时间会越来越长。
因此,在敏捷团队中雇用SDET,可以通过自动化测试来减轻手工测试的负担。
那,为什么找到和雇用好的SDET比较难呢?
多年来,我面试过的大部分的SDETs要么缺乏必要的技术技能,要么对QA和测试原则缺乏理解。
他们并不完全理解SDET在团队中的角色作用。他们大都数人都认为他们只是来自动化验收标准(Acceptance Criteria)的。让我们明确一点:SDET不是自动化工程师(automation engineer)。
能够在测试思想和技术技能方面保持适当的平衡才是关键。
一个好的SDET首先是一个合格的测试工程师,他即对软件质量保持热情,同时也精通技术,可以灵活应用各种技术组合。
在面试SDET时,我总是在找同时有QA思维和技术技能的人。
一个好的SDET的应该是什么样子的?SDET 应具备哪些技能?
现在,我们中的一些人听说过全栈开发工程师,但我们是否可以有全栈测试工程师?
在我看来,SDET至少应具备以下技能和特征:
由上可以看出,对SDET所期望的技能范围是相当广泛的。
我给那些想成为SDET,并在QA新时代保持不落伍的人员的建议是:
确保你努力并掌握了SDET简介部分所提到的所有技能,而且这还是一个至少要求:
--了解和理解测试的基本原理
首先,了解软件测试的基础。
像开发人员一样,能写出优美的代码是非常好的。但是如果你缺乏QA思维,如果你不能为测试的功能或用户故事想出足够并且深入的测试场景,那么你并没有添加太多价值。你不妨努力成为一名开发工程师。
--知道并理解HTTP
大多数的现在Web应用都会与API进行交互。
了解和理解 HTTP 体系结构以及 Web 的工作原理至关重要。如果你无法区分 POST 请求和 GET 请求,或者不知道如何解析 JSON,那么如何有效地测试 API呢?
花一些时间来学习API测试工具,如Karate。
你不能称自己为SDET,如果你想的只是写些自动化的脚本,所有你知道的只是Java和Selenium和 Cucumber。
Yoyo注:国内对测试开发的定义存在一定的分歧,有的把会写自动化脚本的就定义为测试开发,有的把会开发框架工具的定义为测试开发,YOYO认为本文对测试开发的定义比较合理准确,希望本文对想朝测试开发方向发展的测试工程师有所帮助。
********************************************************************************************************
近期我会在博客中系统的更新一些关于Selenium的文章,也请大家多多关注下我的视频课程:
*********************************************************************************************************
阅读更多精彩文章,请大家关注我的测试公众号:火烈鸟测试