怎样才是一名合格的测试开发工程师

本文由英国测试咨询专家Amir Ghahrai撰写,由Yoyo翻译。

原文标题为:SDET独角兽—为什么雇用SDET比较难?

以下为译文:


SDET(Software Development Engineer in Test)也被称为测试开发工程师,它是一个在软件测试和质量保证领域的工作。这个名词最初被微软使用,Google跟进,用自动化的方式来和普通重复的手工测试任务进行区分。

多年来,越来越多的公司正在招聘 SDET,因为它是在敏捷和 DevOps 中的关键角色。但是,这是一个具有挑战性的角色。

技术变化非常快,测试人员需要学习很多东西才能在行业中保持领先。

本文将谈论SDET角色的职责和作用,以及为什么独角兽SDET很难找到。

 

SDET的主要工作是什么?

SDET 是一个技术型的软件测试人员,专注于开发自动化测试脚本。

通常来说,他们是敏捷团队的一部分,负责把用户故事中的验收标准(Acceptance Criteria)自动化。

除了参与典型的 QA 活动外,他们还会编写任何自动化脚本,包括集成测试、API 测试或 UI 自动化测试的内容。

除此之外,SDET 还可以帮助评审(review)由开发人员编写的单元测试。

 

为什么需要SDET?

在每个产品中,都有一些核心功能必须保证在每个版本上都能正常工作。这意味着,在每个sprint 中,必须同时测试新功能和这些已有功能。

敏捷开发的节奏是快速的。通常一个sprint为2 周,测试人员没有时间手动测试所有内容。

当团队中的测试人员没有编写自动化测试所需的技能时,所有测试都必须手动完成。

最终,测试会变成软件开发和发布的瓶颈,因为累积的功能越来越多,完成测试的时间会越来越长。

因此,在敏捷团队中雇用SDET,可以通过自动化测试来减轻手工测试的负担。

 

面试与雇用SDETs

那,为什么找到和雇用好的SDET比较难呢?

多年来,我面试过的大部分的SDETs要么缺乏必要的技术技能,要么对QA和测试原则缺乏理解。

他们并不完全理解SDET在团队中的角色作用。他们大都数人都认为他们只是来自动化验收标准(Acceptance Criteria)的。让我们明确一点:SDET不是自动化工程师(automation engineer)。

能够在测试思想和技术技能方面保持适当的平衡才是关键。

一个好的SDET首先是一个合格的测试工程师,他即对软件质量保持热情,同时也精通技术,可以灵活应用各种技术组合。

在面试SDET时,我总是在找同时有QA思维和技术技能的人。

 

SDET 简介 – 全栈测试工程师

一个好的SDET的应该是什么样子的?SDET 应具备哪些技能?

现在,我们中的一些人听说过全栈开发工程师,但我们是否可以有全栈测试工程师

在我看来,SDET至少应具备以下技能和特征:

  • 具有测试的思维,充满好奇心,可以想出有趣的测试场景。
  • 对测试理论和测试方法有深刻的理解
  • 知道所有测试本质上都是探索性的,并了解测试和检查之间的区别。
  • 可以为给定测试场景应用适当的测试方法
  • 了解测试和 QA 之间的区别
  • 可以使用至少一种脚本或编程语言编写代码
  • 了解 HTTP 以及现代 Web 应用程序的构建方式
  • 可以编写 UI 以及 API 的自动测试。只会其中一个还不够好!
  • 知道Git、相应的命令以及代码分支等
  • 理解敏捷,并且知道如何让测试适应敏捷模式
  • 可以写性能测试脚本(Gatling and/or JMeter)
  • 考虑安全问题并知道Web应用安全测试相关的知识(OWASP)
  • 理解持续集成/持续发布(CI/CD)和构建pipelines
  • 了解云平台提供商(如 AWS、Azure 和 Google 云)提供的服务

 

成为一个好的SDET

由上可以看出,对SDET所期望的技能范围是相当广泛的。

我给那些想成为SDET,并在QA新时代保持不落伍的人员的建议是:

确保你努力并掌握了SDET简介部分所提到的所有技能,而且这还是一个至少要求

--了解和理解测试的基本原理

首先,了解软件测试的基础。

像开发人员一样,能写出优美的代码是非常好的。但是如果你缺乏QA思维,如果你不能为测试的功能或用户故事想出足够并且深入的测试场景,那么你并没有添加太多价值。你不妨努力成为一名开发工程师。

 

--知道并理解HTTP

大多数的现在Web应用都会与API进行交互。

了解和理解 HTTP 体系结构以及 Web 的工作原理至关重要。如果你无法区分 POST 请求和 GET 请求,或者不知道如何解析 JSON,那么如何有效地测试 API呢?

花一些时间来学习API测试工具,如Karate。

你不能称自己为SDET,如果你想的只是写些自动化的脚本,所有你知道的只是Java和Selenium和 Cucumber。

 

Yoyo注:国内对测试开发的定义存在一定的分歧,有的把会写自动化脚本的就定义为测试开发,有的把会开发框架工具的定义为测试开发,YOYO认为本文对测试开发的定义比较合理准确,希望本文对想朝测试开发方向发展的测试工程师有所帮助。

 

********************************************************************************************************

近期我会在博客中系统的更新一些关于Selenium的文章,也请大家多多关注下我的视频课程

入门:基于Java的Selenium3自动化测试完整教程

高级:Selenium Java高级架构课程

*********************************************************************************************************

阅读更多精彩文章,请大家关注我的测试公众号:火烈鸟测试

 

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值