红帽白皮书新鲜出炉!点击获取,让你的云战略更胜一筹! 了解详情
写点什么

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

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

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

关注

评论

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

TensorFlow2 Fashion-MNIST图像分类(二)

书豪

天下武功,唯”拆“不破| 技术人应知的创新思维模型 (4)

Alan

思维模型 技术人应知的创新思维模型 MECE 组合创新 28天写作

架构师训练营W08作业

Geek_f06ede

架构师训练营第八周作业

李日盛

算法

TensorFlow2 Fashion-MNIST图像分类(一)

书豪

tensorflow 学习

Redis Sentinel-深入浅出原理和实战

Linux服务器开发

redis 中间件 底层应用开发 web服务器 Linux服务器开发

架构师训练营第三周作业

Geek_xq

DeFi流动性挖矿系统开发(案例源码开发)

系统开发咨询1357O98O718

defi流动性挖矿系统开发

用60行代码实现一个高性能的圣诞抽抽乐H5小游戏(含源码)

徐小夕

Java 大前端 H5游戏 H5

架构师训练营第 1 期第12周作业

业哥

生产环境全链路压测建设历程之五 针对稳定性矛盾, 从目标、流程、组织体系发力

数列科技杨德华

架构词典:工程

lidaobing

架构 工程能力

揭开IP地址的神秘身份!!!

德胜网络-阳

docker与podman的故事:一个方兴未艾,一个异军突起

晓川

大促中为什么需要可视化监控大屏?

京东科技开发者

大数据 监控 数据可视化

合伙开公司、借款变工资 | 法庭上的CTO(7)

赵新龙

CTO 法庭上的CTO

四币连发平台系统开发详解丨四币连发源码(案例)

系统开发咨询1357O98O718

四币连发系统开发案例详解

SDK开发质量保障经验总结

张明云

接口 程序设计 接口测试 sdk SDK测试

cartographer环境建立以及建图测试(详细级)

良知犹存

cartographer slam

本文帮你在Unix下玩转C语言

MySQL从删库到跑路

unix C语言

修一座安全的广厦,庇护赛博世界的流浪者

脑极体

CTO与COO联手接了公司的外包项目 | 法庭上的CTO(6)

赵新龙

CTO 法庭上的CTO

滴滴开源小桔棱镜:一款专注移动端操作行为的利器

滴滴技术

开源 滴滴 移动端

DeFi流动性挖矿系统开发详解方案

系统开发咨询1357O98O718

defi流动性挖矿系统开发

LeetCode题解:515. 在每个树行中找最大值,BFS,JavaScript,详细注释

Lee Chen

算法 大前端 LeetCode

20分钟带你掌握JavaScript Promise和 Async/Await

葡萄城技术团队

Java

挖矿矿池系统开发详情丨挖矿矿池源码案例

系统开发咨询1357O98O718

挖矿矿池系统开发案例 旷工系统开发功能

甲方日常 66

句子

工作 随笔杂谈 日常

海量数据架构下如何保证Mycat的高可用?

冰河

分布式事务 分布式数据库 分布式存储 mycat 数据库集群

刚入职,就被各种 Code Review,真的有必要吗?

xcbeyond

方法论 研发管理 编程习惯

DeFi借贷质押系统APP开发|DeFi借贷质押软件开发

系统开发

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