NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

评论

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

数字先锋| 让群众健康更有“医靠”,天翼云为喀什中医院开出“上云妙方”!

天翼云开发者社区

云计算 大数据

你不知道的vue3:使用runWithContext实现在非 setup 期间使用inject

快乐非自愿限量之名

Java 前端 前端开发 Vue3

1688商品数据API接口的数据分析与挖掘技巧

Noah

自助式可视化开发,ETLCloud的集成之路

RestCloud

可视化 ETL

0.o?让我看看怎么个事儿之SpringBoot自动配置

不在线第一只蜗牛

spring 后端 springboot 后端开发

Milvus 上新:支持上万个 Collection、新增 Accesslog 功能……

Zilliz

非结构化数据 Milvus Zilliz 向量数据库

阿里云PolarDB开发者大会首度召开,让数据库开发像“搭积木”一样简单

阿里云瑶池数据库

数据库 云计算 阿里云 云原生 开发者大会

Royal TSX for Mac(强大的远程管理软件)v6.0.2激活版下载

iMac小白

OpenHarmony图形HDI基础适配及点屏

Laval小助手

给科研人的 ML 开源发布工具包

EquatorCoco

开源 ML 工具包 安装包

美的楼宇科技携手火山引擎,共筑边缘云新型生态圈

火山引擎边缘云

边缘计算 智慧园区 智慧建筑 边缘云

数字生态系统的演进与企业API管理的关键之路

幂简集成

API API 管理 API Hub

每日一题:LeetCode-297. 二叉树的序列化与反序列化

半亩房顶

面试 算法 LeetCode 二叉树 DFS

Google推广之关键字匹配类型

九凌网络

文心一言 VS 讯飞星火 VS chatgpt (181)-- 算法导论13.4 4题

福大大架构师每日一题

福大大架构师每日一题

基于Ubuntu下安装kubernetes集群指南

百度搜索:蓝易云

云计算 Linux Kubernetes 运维 云服务器

OpenHarmony开源GPU库Mesa3D适配说明

Laval小助手

OpenHarmony

语音数据集在智能语音搜索中的应用与挑战

来自四九城儿

供应链共舞:数字化协同推动服装企业商品计划的无缝衔接

第七在线

Unity3D代码混淆方案详解

雪奈椰子

低代码可视化平台,在线拖拽组件太方便了!

这我可不懂

软件开发 低代码 JNPF

左耳听风 - 编程的本质「读书打卡 day 10」

Java 工程师蔡姬

读书笔记 程序员 个人成长 编程的本质 职业发展

使用函数计算,数禾如何实现高效的数据处理?

阿里巴巴云原生

阿里云 Serverless 云原生

uniapp中uni-popup的用法

百度搜索:蓝易云

Linux 运维 uniapp 云服务器 uni

Microsoft Office 2019 for Mac中文正式版下载(office全家桶)

iMac小白

JetBrains DataGrip 2023 Mac v2023.3.2中文激活版下载

iMac小白

一文了解字节跳动消息队列演进之路

字节跳动云原生计算

大数据 云原生 消息列队

centos中部署调用matlab程序教程

百度搜索:蓝易云

Linux centos 运维 matlab 云服务器

数字先锋| 向“新”而生!天翼云携手中化信息按下化工行业变革加速器

天翼云开发者社区

云计算 数字化转型 云平台

腾讯云ES RAG最佳实践:向量+文本混合搜索的相关性调优

腾讯云大数据

ES

语音数据集在智能语音助手中的应用与挑战

来自四九城儿

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