写点什么

不要让开发人员兼职测试的角色

  • 2019-10-18
  • 本文字数:2363 字

    阅读完需:约 8 分钟

不要让开发人员兼职测试的角色


如今在持续集成/持续部署(CI/CD)中,软件测试开发工程师(software development engineer in test,SDET)越来越被认为是一个非常关键的角色。然而,也有一些人认为,由于系统不同组件之间的差异,SDET 这个角色可能并不一定适合每一种场景。


在微软首先创立了 SDET 这个概念之后,随着敏捷开发的普遍推行,又进一步模糊了测试人员和开发人员过去角色之间的差异,这固然是一件好事。因为当一切顺利的时候,开发人员就会执行更多的测试,并对产品质量承担起更多的责任。而测试人员在每个 sprint 前期就开始测试,而且由于有了共享办公空间和每日站会,在 sprint 循环里测试工作会一直保持运行。如果一切顺利的话,代码库中引入的缺陷会更少,测试人员的角色也会从对开发人员的错误单纯地吹毛求疵提升到主动拥护更好的用户体验。


然而,关于应该将多少测试责任分担给开发人员,以及对于测试人员来说了解编程有多重要,一直都存在着激烈的争论。并且,我个人认为,两种“合并”的提议,即开发人员成为测试人员,或者测试人员成为开发人员,都有可能会破坏敏捷的目标。所以,在这篇文章中,我讨论了为什么合并开发和测试角色并不可取,并描述了如何为开发人员和测试人员二者之间获取最佳的工作关系。

除了 GAFA 四家公司之外,让开发人员做测试人员会影响创新速度。

谷歌、苹果、Facebook 和亚马逊并称为”GAFA“,因为这四家公司总是能源源不断地招揽到顶尖人才,所以他们永远时刻准备着以闪电般的速度让各种创新迅速进入市场。如果你是 GAFA 公司里 DevOps 团队的一员,当需要让现有的项目提速或者是启动全新的项目的时候,就可以从世界顶级的开发人员中任意挑选团队成员。你甚至可以奢侈地将顶级开发人员放到 SDET 角色上。在这些公司中,许多满怀激情的开发人员能勉为其难地接受 SDET 这个并不太理想的职位,但内心还是渴望有一天自己能成为这家理想雇主公司中的一名成熟的开发人员。


然而,在许多大型企业中,你通常没有那么多顶级开发人员来主动敲公司的门。而在这些公司里,通常需要上下持续不断的努力才能吸引和留住有价值的开发人员。因此,为了满足企业对软件永不知足的需求,得让所有能干活的开发人员都专注于开发任务,这件事情本身已经够困难了。这种情况下,如果还让一些开发人员去承担高级测试任务,付出的代价通常是公司承担不起的,而在这些测试任务上,就算不比开发人员做得更好,专业的测试人员也绝对是足以胜任的,。

最精益的自动化测试方法不需要编程技能。

现在的开发方法已经变得更加精益、更加轻量级,能辅助团队更快地生产出更多软件,满足业务目标。同样地,测试技术也有了长足进步,可以采用轻量级的无脚本方法,这样的测试架构也更适应敏捷特有的快速变化。然而,许多团队仍然固步自封地抱有陈旧想法,还认为测试自动化和几十年引入时一样,需要付出较高的维护成本,且测试主要基于脚本方法,但是交付的结果仍然差强人意(一般最多只有 20%的自动化率)。现在几乎在所有的行业中,人们都已经开始使用通过对复杂程度的抽象来实现高级自动化的软件。因此,软件测试行业现在也是时候做出改变了。


我们在 Tricentis 咨询公司中对不同行业的企业环境的研究中,发现无脚本方法比脚本方法产生的可持续性自动化程度要高得多。此外,这些无脚本方法还移除了困扰敏捷团队最多的测试常见瓶颈,因为:(1)这些方法让人人都可以参与测试,这就扩大了可支持测试工作的团队成员范围;(2)由于这些方法有较高的可重用性和模块化,能更加容易地与快速演进的应用程序保持同步;(3)这些方法让人们解放出来,不用去维护一个仅仅为了测试生产代码而设计的测试代码库。

开发人员和测试人员都做测试工作,能更快找到缺陷。

我保证,如果你同时让开发人员和专业的测试人员进行测试,你将更快地让那些关键问题暴露出来。我们都熟悉缺陷曲线,它显示了解决缺陷的时间、成本和工作量是如何随着时间推移呈指数级增长的。所以在可能的情况下,应该尽快挖掘出每个缺陷,这对单个 sprint 内的生产速率有很大的影响,并且可以避免之后部署现场报告的缺陷对未来的 sprint 产生影响。


“开发测试”是暴露编程错误的理想方法。针对为实现用户故事而编写的代码,这种测试会深入检查代码的功能和稳定性。这点是至关重要的。如果代码库里有一些低级错误,例如举一个简单的例子,一个乘数的小数点错了一位,直接使用开发人员的单元测试去查找和诊断这类问题,绝对比从用户角度用端到端的测试去检查功能要有效得多。


但是,如果你的测试主要是由开发工程师设计的自底向上的白盒测试构成的,那么这样又可能会忽略一些站在用户角度多半会遇到的关键问题。


新功能能否在更广泛的端到端的事务中做到无缝工作?如果用户以开发人员没有预料到的方式去运行应用程序,该应用程序能以合理的方式做出响应吗?在多重依赖项同时出现的情况下,你的功能是否能正确地执行所有的行为交互?由于专业测试人员会在实际的业务事务环境中严格地对各种核心功能进行测试,即自顶向下地以用户的角度来审查产品,这样将不可避免地发现许多问题,而这些问题通常在正式投入生产之前是不会被开发人员所注意到的。


因此,当开发人员与专业测试人员一起进行测试时,你将更清楚全面地了解与产品发布相关的业务风险。同时,在用户遇到高风险问题之前,你将有机会去解决掉这些麻烦。这也正是测试的最终目标——它需要多个角色之间更多的协作,而不是针对开发人员/测试人员谁该承担测试任务争论不休。


欢迎在线观看我们关于“辩论:SDET vs 测试人员”的网络研讨会。


作者介绍:


Wolfgang Platz,Tricentis 公司的创始人兼首席产品官,该公司于 2007 年成立,是一家测试咨询公司。他大力推动了软件测试方面的创新,例如基于模型的测试自动化,以及线性扩展的测试设计方法。


英文原文:


Why Merging Testing and Developer Roles Is a Bad Idea


2019-10-18 17:203077

评论

发布
暂无评论
发现更多内容

量子程序设计基础 | 从经典计算到量子计算

TiAmo

量子计算 经典计算

华为云UniXcoder-VESO-v1问鼎CodeXGLUE榜单第一名

华为云PaaS服务小智

算法 代码 华为云 代码语义

创建矢量图形:Patternodes 3 免激活版

真大的脸盆

Mac Mac 软件 矢量图形创作 创建矢量图形

Spring系列之IOC容器实例化过程七

Disaster

spring ioc

Spring系列之IOC容器初始化过程十

Disaster

spring ioc

设计模式之模板方法模式

越长大越悲伤

设计模式

【1对1咨询】土木女生,挖掘个人优势转行程序员

程序员晚枫

程序员 求职 转行

Spring系列之IOC容器实例化过程六

Disaster

spring ioc

打造繁荣社区:Solaris 与 Web3 合作的力量

股市老人

数据可视化:趋势类可视化图表大全

2D3D前端可视化开发

数据分析 数据可视化 数据可视化工具 可视化图表

Spring系列之IOC容器的初始化过程九

Disaster

spring ioc

英特尔锐炫实力出击,游戏、内容创作双管齐下!

E科讯

不止游戏!英特尔锐炫“天生爱创作”

E科讯

spring系列之IOC容器实例化过程四

Disaster

spring ioc

Spring系列之AOP工作过程详解一

Disaster

spring

Spring系列之AOP工作过程详解二

Disaster

spring

Django笔记三十八之发送邮件

Hunter熊

Python django 发送邮件

软件测试/测试开发丨Selenium环境安装与使用

测试人

程序员 软件测试 自动化测试 测试开发 selenium

如何将数据从旧电脑传输到新电脑,哪种文件传输方式更好

镭速

TiDB x Bolt丨超强可扩展性与弹性助力超 1 亿用户畅享出行服务

PingCAP

MySQL 数据库 TiDB

打造繁荣社区:Solaris 与 Web3 合作的力量

鳄鱼视界

2023-05-29:给你一个由 n 个正整数组成的数组 nums 你可以对数组的任意元素执行任意次数的两类操作 如果元素是 偶数 ,除以 2 例如,如果数组是 [1,2,3,4] 那么你可以对最后一

福大大架构师每日一题

golang 算法 rust 福大大

可逆计算理论中的Delta合并算法

canonical

为什么要用线程池?

javacn.site

spring系列之IOC容器实例化过程五

Disaster

spring ioc

焱融科技入选赛迪 2022 中国分布式存储报告挑战者象限

焱融科技

#高性能 #分布式文件存储 #文件存储

《Klustron Tech Talk》直播选题有奖问卷调查,获MySQL系列丛书

KunlunBase昆仑数据库

MySQL

基于WebGPU的AI原生3D引擎迎来新机遇!Orillusion在GOTC上演讲!

Orillusion

开源 渲染引擎 元宇宙 webgpu AIGC

Spring系列之IOC容器初始化八

Disaster

spring ioc

Generative AI 新世界 | 走进文生图(Text-to-Image)领域

亚马逊云科技 (Amazon Web Services)

自然语言处理 机器学习 开源

文心一言 VS 讯飞星火 VS chatgpt (25)-- 算法导论4.2 7题

福大大架构师每日一题

福大大 ChatGPT 文心一言 讯飞星火

不要让开发人员兼职测试的角色_文化 & 方法_Wolfgang Platz_InfoQ精选文章