写点什么

敏捷给予测试人员更多自信

  • 2015-03-29
  • 本文字数:3137 字

    阅读完需:约 10 分钟

软件测试正在逐渐发生演变。曾几何时,测试的目的就是为了验证软件是否符合规格说明。测试人员往往在项目的很后期才加入,并且很少体现出影响力,但这一点正在逐渐转变。Cirilio Wortel 在荷兰2015 敏捷测试日大会上登台演讲,内容就是软件测试的演变 – 从保证(insurance)到影响(influence)。以往招聘测试人员的目的就是验证软件是否遵守规格说明的需求,而完全不管规格本身是好是坏。当时对于测试人员的奖励完全取决于他们所发现bug 数量的多少。

Cirilo 谈到了他作为测试人员,所参与的一个为荷兰 UWV(荷兰就业机构)所开发的项目。他只是简单地看了看规格,就能够明显地看出这个软件不可能正常运行,他们所开发的这套系统永远也不可能上线。这个项目的承诺过多,并且在规格说明中的某些部分根本就是错的。这种情形很令人沮丧,因为测试人员不允许对功能性逻辑提出任何疑问,他们只允许从测试的角度来理解需求。随后在项目中尝试了多个解决方案,试图解决这些问题,但由于最主要的目的是对规格的遵从,因此这些方案完全不起作用。试图解决这些问题的所有努力都只专注于表面现象,而不是真正的解决方案。测试人员完全被摒弃在这个过程之外,他们唯一的作用就是尝试破坏该系统,并且尽可能记录下更多的 bug。

现如今,测试人员越来越多地参与到需求分析流程,以及软件开发本身的流程中。测试不再是一个独立的任务,测试人员将通过测试的角度,为业务分析师、架构师和程序员提供支持。新的需求分析技术也开始演变,它们更专注于需要构建“什么”,而不是“如何”构建它。由于测试的关注点从对规格的遵循转变为对规格的精炼,测试人员也因此在实际生产出的产品中起到了更大的影响力。

随着软件开发的逐渐成熟,以及持续交付这一概念的提出,新的工具与技术不断涌现,以实现更高实时性的分析。在指定新的特性时,其中会包含所期望的行为,以及可衡量的结果。这些期望如今可以在开发周期中进行验证,但也可以在生产环境中进行验证。技术方面的东西可以进行监控,可以使用 A/B 测试的手段对针对某个问题的不同方案进行比较,也可以通过使用情况分析报告对功能性需求进行验证。

InfoQ 采访了 Wortel,谈到了他对测试当前正在发生的转变的看法,怎样让测试人员发挥更大的影响力,以及测试人员如何为应对将来在测试方面的发展做好准备。

InfoQ:你谈到了测试当前正在发生的转变。你能详细地说明一些正在发生的主要转变吗?

Wortel:重要的是,要理解这是在测试方面 _ 我 _ 的转变,我在演讲中已经概括了这方面的许多内容。

对于我来说,在 2000 年那段时间是非常令我受挫的,我能看到车辆飞速地奔驰,而我却无法使它调头,甚至无法降低它的速度。作为一名测试人员,我的影响力相当有限,无非是在 bug 跟踪工具中加入一些新内容,很难保证这种工作会产生任何实际的影响。测试往往很后期才结束,它完全是一种反应性的活动。大多数测试完全被团队摒弃在外,并且对于所创建的软件不承担任何职责。在我看来,这一点很大程度上是取决于整个产业的组织方式的。没有人对于大型的项目具备清晰的认识。由于项目采取公开招募的方式,因此各大咨询公司没有别的选择,只能通过不断进行变更和积极地争取重做的方式,才能把钱从客户的口袋中掏出来。他们对于将任务“完成”这一点完全不感兴趣。招聘测试人员的目的就是出于质量保证的策略,替人背黑锅而已。

这些年以来,测试人员正变得更具有自我意识,在标准、工具和技术方面的专业性也更强。但直到敏捷方法出现之前,测试人员的影响力还是很有限。测试经常被认为是瓶颈,是一种需要处理的必然的邪恶。为了解决这个问题,出现了各种胡扯的方案。一大批没有经验的测试人员、框架、脆弱的测试自动化工具、审计、检查、认证,这些东西的目的只是为了产生更多的咨询行为,但几乎没有取得任何正面的效果。

InfoQ:这些改变是如何影响测试人员的角色的?

Wortel:自从我在 2007 年接触到敏捷之后,我在实践中发现自己作为测试人员的角色的价值大大提升了。我能够为团队带来转变,用我的批判性思考能力和领域知识帮助团队交付价值。我感觉到自己做出了贡献,而不仅仅是破坏软件而已。

和其它任何转变一样,对于许多测试人员来说,向敏捷软件开发这种方式的转变也伴随着阻力和不确定性。我相信,在这些年的经验之后,许多测试人员已经适应了他们的新角色,并且对于为他们本身的专业领域之外的东西承担责任也不是那么抵触了。多来以来,测试人员的工作都是被动的、无人关注的,而突然之间对于他们的期望产生了转变,他们要更加主动积极,并且与开发者与业务干系人紧密合作。敏捷测试的要求是,你要打破惯例思考问题,而角色的定义也不那么清晰了。测试的重要性从单纯的测试执行转为需求分析工程,而测试自动化也逐渐变得更为重要了,这也要求了测试人员要掌握更多技术,而沟通技巧也变得尤为重要。

InfoQ:对于想要在战略上发挥更大影响力的测试人员,你是否能够提供一些建议?

Wortel:我的经验告诉我,只要你尝试对整个交付过程中的任意部分做出贡献,你就会赢得其他干系人对你的尊重。我个人天生就有很大的好奇心,喜欢经常提问。一旦你理解了某个流程的工作方式,通常需要一些常识(和测试的心态),你就能够创造价值。一开始时,其他人对于接受你的意见可能会显得犹豫不决,但只要你坚持下来,迟早有一天你们的角色会掉转过来,人们会开始征询你的意见。我在实践中多次看到这一点,它可以发生在需求分析工程、开发、管理和运维等各个方面。作为一名测试人员,你对事物的看法往往比其他角色更加开阔,项目干系人的专业能力往往限制在某个特定的领域中,这使他无法看到全局。

InfoQ:测试人员要想更多地参与整个流程,需要做些什么?

Wortel:在我现在参与的项目 VNU Vacature Media 中,整个流程是内置在团队中的。我们进行持续交付,并且我们的基础设施对于流程来说是非常重要的。每个提交都会立刻发布到产生环境,并且整个系统都处于严密地监控中,以确保它的稳定性。由 Ops 成员所维护的基础设施为我们提供了很有价值的工具,让我们的工作变得更有效率。如果我在探索性测试中看到任何奇怪的现象,我可以很快地通过 Logstash 和 Kibana 这样的工作进行跟踪。而通过使用 Graphite,我们还可以看到当前的性能和内存占用的情况。

除了这些非功能性的目标之外,这个基础设施的灵活性为我们提供了进行 A/B 测试的手段,以观察使用情况。在产品上线前预先定义预测值,然后根据结果评估我们是否达到了预测的期望,这为我们提供了极有价值的反馈,让我们了解产品所创造的实际价值。我们不再限制于软件开发周期,而是将我们的工具推向生产环境与实时的使用数据报告。

InfoQ:你对于未来在测试方面的发展有什么期望吗?

Wortel:我很乐于见到手工测试的比例会变得越来越小了。在探索性测试中通过真实的人类互动体验系统的行为依然是很有价值的,但多数 bug 在需求阶段就应当被避免。这是通过为所期望行为创建一些真实的示例,并且在所有项目干系人中实现一种共同的理解而做到的。自动化测试是在开发阶段实现的,并且将用于指导实际的实现过程。我最近所感受到的一个现象是,“发布”这个概念的想法由于持续交付的出现而消失无踪了。我们的角色仍旧在不断变换,而我们必须变得更为融入集体,将所有的能力集中在一起,而不是遵循那些预定义的角色。

InfoQ:为了应对未来,测试人员应当如何进行准备?

Wortel:拥抱变化、分享知识。不要对你的角色表现出防卫性,而是让它变得公开,尝试着寻找与其他所有专业的成员协作的机会。让你自己能够被他人想起,并且做到直言不讳。尝试在你所参与的项目,以及整个社区中寻找具有类似想法的人,扩展你的知识,不断地尝试离开你的安乐窝,去尝试新的东西。

查看英文原文 Agile is Giving Testers More Influence

2015-03-29 03:131207
用户头像

发布了 428 篇内容, 共 177.4 次阅读, 收获喜欢 38 次。

关注

评论

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

python中对象引用 | python小知识

AIWeker

Python python小知识 三周年连更

生物计算大模型技术在药物研发领域的应用

Baidu AICLOUD

生命科学 PaddleHelix

为什么说网络安全行业是IT行业最后的红利?

网络安全学海

网络安全 安全 信息安全 渗透测试 WEB安全

如何雇佣一名全民开发者?

草料二维码

开发者 低代码 无代码开发 无代码 无代码微信小程序

一文详解RocketMQ-Spring的源码解析与实战

华为云开发者联盟

开发 华为云 华为云开发者联盟 企业号 4 月 PK 榜

我认真总结并分析了Spring事务失效的十种常见场景

做梦都在改BUG

Java spring Spring事务

大语言模型时代狂飙以来,到底是谁在让你失业|社区征文

小诚信驿站

三周年征文

华为云GaussDB坚持技术引领,以数字化转型激活金融科技新动能

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 4 月 PK 榜

【FAQ】统一扫码服务常见问题及解答

HarmonyOS SDK

HMS Core

超级详细|Linux系统下从0到1的玩法大全

浅羽技术

Linux unix 操作系统 命令 三周年连更

Mybatis返回集合类型到底是空集合还是null?源码解读

做梦都在改BUG

Java 源码 mybatis

GPU 加速药物研发与基因组学分析

Baidu AICLOUD

生命科学

赋能开发者,开放原子全球开源峰会期待你的声音!

开放原子开源基金会

大数据 开源 开源软件

AI数字人产品“世优BOTA”发布会落幕,世优科技纪智辉演讲回顾

联营汇聚

终于有人把动态规划、冒泡排序、二叉树、链表、栈全部讲清楚了

Java你猿哥

数据结构 算法 二叉树 排序 LeetCode算法

天呐!我真的没想到推特GIF动图保存到手机相册竟然简单几步就能完成!

frank

twitter

阿里“妈宝级”之作,Kubernetes原理剖析与实战应用手册,太全了

做梦都在改BUG

Java Kubernetes k8s

拿来吧你!保姆级Docker底层原理及源码实战手册,上线点赞破10W

做梦都在改BUG

Java Docker 容器

GitHub爆款!Java性能优化:轻松道破软件性能调优,不止搞定JVM

Java你猿哥

Java JVM Java性能优化

全栈开发实战|Vue进阶——使用静态模块打包工具webpack

TiAmo

Vue webpack 三周年连更 静态模块打包

上海首个大模型产业发展研讨会圆满落幕,众顶尖专家共探大模型产业

NLP资深玩家

Split to Be Slim: 论文复现

华为云开发者联盟

人工智能 华为云 论文 华为云开发者联盟 企业号 4 月 PK 榜

品牌活动|行云创新出席“新工业·智物联”全国巡回 CEO 峰会

行云创新

行云创新 新工业 智物联 全国巡回CEO峰会珠海站

【Linux】firewall-cmd之防火墙简介及命令详解【附加实战⭐建议收藏!!⭐】

A-刘晨阳

Linux 防火墙 Firewalld防火墙 三周年连更

技术干货|如何利用 ChunJun 实现数据实时同步?

袋鼠云数栈

开源 数据采集

Typescript- 数据类型

格斗家不爱在外太空沉思

typescript 三周年连更

Java中的「接口」到底是什么?

海拥(haiyong.site)

三周年连更

浅谈智能语音交互

六月的雨在InfoQ

语音识别 语音合成 三周年连更 智能语音交互

ChatGPT及大模型专题研讨会在蓉成功举办共探前沿技术与产业发展

NLP资深玩家

中国边缘云公有云服务市场 Top2,百度智能云让智算无处不在

Baidu AICLOUD

分布式云

终于有人把动态规划、冒泡排序、二叉树、链表、栈全部讲清楚了

架构师之道

算法

敏捷给予测试人员更多自信_软件工程_Ben Linders_InfoQ精选文章