写点什么

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

  • 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:131316
用户头像

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

关注

评论

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

深入剖析Java中的反射,由浅入深,层层剥离!

不在线第一只蜗牛

Java 编程 前端 开发语言

Aetina发布首款采用NVIDIA Ada Lovelace架构的MXM图形模块

财见

如何通过ETL实现快速同步美团订单信息

RestCloud

美团 ETL 数据集成工具

零售业海量场景下 ToC 系统的数据库选型和迁移实践

TiDB 社区干货传送门

实践案例

游戏开发巨擘的选择:2023 TGA获奖工作室共同青睐Perforce版本控制

龙智—DevSecOps解决方案

游戏开发 游戏 TGA

火山引擎边缘云2023年度回顾,挑战与创新的交响乐章

火山引擎边缘云

边缘计算 火山引擎 火山引擎边缘云

每日一道Java面试题:说一说Java中的异常

EquatorCoco

Java 面试 前端 开发语言

MES和QMS怎么选?

万界星空科技

mes 万界星空科技 QMS 质量管理QMS系统 生产管理

专科逆袭!裁员后薪资翻倍,他的成功秘诀竟然是…

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

测试

Java 程序员的待遇为何一直居高不下?

伤感汤姆布利柏

软件公司定制开发的软件有哪些?

天津汇柏科技有限公司

软件开发定制

为什么说TiDB在线扩容对业务几乎没有影响

TiDB 社区干货传送门

TiDB 底层架构 数据库架构选型 TiKV 底层架构

使用无代码/低代码平台进行开发的 5 大挑战

NocoBase

开源 低代码 低代码开发 无代码 无代码平台

京东广告算法架构体系建设--大规模稀疏场景高性能训练方案演变

京东科技开发者

TiDB 事务心跳超时机制测试

TiDB 社区干货传送门

故障排查/诊断

作业帮 x TiDB | 多元化海量数据业务的支撑

TiDB 社区干货传送门

Unity 现正式支持 visionOS 平台,赋能Apple Vision Pro应用创建

财见

面试官:你能简单聊聊MyBatis执行流程

华为云开发者联盟

Java 开发 华为云 华为云开发者联盟

基于生成式人工智能的平台 Cognizant Flowsource™ 发布,旨在为现代工程提供动力

财见

初识TiDB Data Migration迁移工具及实践

TiDB 社区干货传送门

迁移 7.x 实践

打造工业4.0的5G+边缘云服务产业生态,艾灵完成1.5亿元A轮融资

Geek_2d6073

2023年哪个前端框架用的最多?

伤感汤姆布利柏

【服务器搭建】快速完成幻兽帕鲁服务器的搭建及部署【零基础上手】

恬静的小魔龙

服务器 幻兽帕鲁

PingCAP 故事|势高,则围广:TiDB 的架构演进哲学

TiDB 社区干货传送门

关于如何优化TiDB中的写热点问题

TiDB 社区干货传送门

实践案例 7.x 实践

用 Footprint 的交易类型标签揭秘链上交易

Footprint Analytics

区块链 加密货币

WMS仓储管理系统的作用是什么?

万界星空科技

wms WMS仓库管理 万界星空科技 扫码出入库管理

揭秘C语言的心脏:深入探索指针与数组的奥秘

不在线第一只蜗牛

Java C语言 开发语言

TiDB 在全球头部物流企业计费管理系统的应用实践

TiDB 社区干货传送门

实践案例

从 20 多套 MySQL 到 1 套 TiDB丨骏伯网络综合运营管理平台应用实践

TiDB 社区干货传送门

实践案例

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