发布在即!企业 AIGC 应用程度测评,3 步定制专属评估报告。抢首批测评权益>>> 了解详情
写点什么

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

  • 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:202739

评论

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

瞄准“量效”难题,百度营销创新推出大健康线索营销解决方案-医效通

说山水

让ChatGPT来写今年的高考作文,能得几分?

楚少AI

ChatGPT4 2023高考 ChatGPT写作

AI老师的作者:17岁的高中生,可能是你想要孩子成为的样子

无人之路

AI 教育 ChatGPT

金融集团企业资金管理难度加倍,用友BIP如何破解这个难题?

用友BIP

资金管理

来了解Amazon CodeWhisperer的强大吧

初学者

云计算 亚马逊 亚马逊云

咸阳有没有等保测评机构?在哪里?怎么联系?

行云管家

等保 等保测评 等保测评机构 咸阳

Openjob 1.0.2 重磅发布,新一代分布式任务调度框架

stelin

分布式架构 Java 分布式

2022百度ESG报告发布:年度答卷展现安全信任承诺

百度安全

软件测试 | Web自动化测试

测吧(北京)科技有限公司

测试

软件测试 | Selenium验证页面元素

测吧(北京)科技有限公司

测试

【体验有奖】玩转 AIGC,函数计算 x 通义千问预体验,一键部署AI应用赢Airpods

Serverless Devs

函数计算FC AIGC

“变脸的秘密”!直播源码app开发技术特效功能的实现

山东布谷科技

源码剖析 APP开发 软件开发、 源码搭建 直播源码

大厂面试必备!字节大佬刷Leetcode总结的算法笔记

做梦都在改BUG

Java 数据结构 算法 LeetCode

NFTScan 成为 CMC 官方 NFT 数据合作伙伴

NFT Research

crypto NFT

等待还是转行?GitHub爆赞的10W字Java八股文,你没得选择

做梦都在改BUG

Java java面试 Java八股文 Java面试题 Java面试八股文

Amazon CodeWhisperer代码提示体验本文带你了解

我叫于豆豆吖.

云计算 亚马逊 亚马逊云

深入探究Flink:实时处理与批量处理的完美结合

xfgg

Java flink 6 月 优质更文活动

GreptimeDB v0.3 正式发布|分布式能力全面提升

Greptime 格睿科技

数据库 rust 云原生 分布式数据库 时序数据库

技术赋能-混流编排功能,助力京东618直播重保 | 京东云技术团队

京东科技开发者

监控 直播技术 直播推流 企业号 6 月 PK 榜 重保

【Clickhouse】ReplaceingMergeTree引擎final实现合并去重探索 | 京东云技术团队

京东科技开发者

OLAP final clickhosue 企业号 6 月 PK 榜 合并去重

百度离线资源治理

百度Geek说

数据库 大数据 离线 企业号 6 月 PK 榜 6 月 优质更文活动

OpenHarmony 4.0 Beta1发布,邀您体验

OpenHarmony开发者

OpenHarmony

赋能生态合作 共话数字创新 | 2023开放原子全球开源峰会软硬协同开源分论坛即将启幕

开放原子开源基金会

开源 开放原子全球开源峰会 开放原子 软硬协同开源

揭秘阿里云Flink智能诊断利器——Fllink Job Advisor

阿里云大数据AI技术

大数据 flink 企业号 6 月 PK 榜

黑盒不黑:跨端 C/C++ 库一键源码调试方案

阿里技术

调试

浅谈微服务异步解决方案

做梦都在改BUG

Java 微服务 异步

什么是双机热备技术?华为和思科如何实现双机热备?

做梦都在改BUG

Java 网络 双机热备

最强AIGC实战应用速成指南来了!14天掌握核心技术

飞桨PaddlePaddle

人工智能 深度学习 百度飞桨

深入了解mock.js,打造出类似真实数据的模拟数据

Apifox

程序员 前端 前端开发 API Mock

10分钟了解Kubernetes网络

俞凡

架构 Kubernetes 云原生

用户组是什么意思?怎么容易理解?有什么作用?

行云管家

运维 权限 用户组

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