写点什么

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

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

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

关注

评论

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

GitHub远程免密连接详解,还顺手解决了RPC失败HTTP413

老表

GitHub RPC HTTP 11月日更

TDengine在浙商银行微服务监控中的实践

TDengine

tdengine 后端 时序数据库

网课录屏用什么软件好?Camtasia极简操作,课程重点一目了然

淋雨

Camtaisa

ReplacingMergeTree:实现Clickhouse数据更新

华为云开发者联盟

数据 事务 Clickhouse 数据更新 OLAP数据库

GitHub点击量破百万访问,不愧是被称阿里神作的JDK源码笔记

Sakura

Java 源码 架构 jdk 面试

百度智能云与雅量商业智能携手,加速零售行业智能化升级

百度开发者中心

百度智能云 零售行业

极客时间【架构实战营】第二期 模块七作业

Geek_91606e

架构实战营

万字长文解密数据异构最佳实践(含完整代码实现)!!

冰河

MySQL 数据库 canal 数据同步 数据异构

科大讯飞联袂伯俊科技进军3C零售,构建发展新格局

科技热闻

《黑客之道》kali Linux之NMAP高级使用技巧和漏洞扫描发现

学神来啦

Linux 渗透 kali nmap

恒源云(GPUSHARE)_CAN: 借助数据分布提升分类性能

恒源云

深度学习

百度Apollo参编首批汽车信息安全国家标准,跻身车联网信息安全第一梯队

百度开发者中心

Apollo

百度智能云人脸采集SDK通过CFCA权威安全测评

百度开发者中心

安全 sdk

华为云·核心伙伴开发者训练营——产业云专场在东莞松山湖圆满落幕

华为云开发者联盟

华为云 鲁班会

《个保法》施行 | App 隐私合规检测双十一尝鲜仅需99元

蚂蚁集团移动开发平台 mPaaS

隐私保护 移动开发 监管合规

顶会VLDB‘22论文解读:CAE-ENSEMBLE算法

华为云开发者联盟

算法 时间序列 华为云数据库 深度神经网络

Github上线仅六天,收获Star超55K+,这套笔记能拿下90%以上面试

Java redis spring 程序员 架构

行业白皮书发布!百度智慧城市助力城市“双碳”目标达成

百度开发者中心

人工智能 智慧城市

2022第十五届北京国际智慧城市、物联网、大数据博览会

InfoQ_caf7dbb9aa8a

腾讯安全姬生利:云原生环境下的“密码即服务”

腾讯安全云鼎实验室

云原生 加密

“智慧粮仓”守卫中国饭碗

ThingJS数字孪生引擎

大前端 物联网 可视化

你需要知道的 19 个 console 实用调试技巧

CRMEB

CSS JavaScript DOM console crmeb

接口文档工具yapi的安装

小鲍侃java

11月日更

【高并发】开篇:线程与多线程

冰河

Java 并发编程 多线程 高并发 异步编程

iOS开发-百度一面总结

iOSer

ios 面试 iOS面试 ios开发 百度面试

常用的Nmap脚本及使用实例

喀拉峻

网络安全 信息安全 渗透测试 脚本 nmap

linux lsquic 编译

webrtc developer

百度鸿鹄芯片落地首款量产车吉利博越X 智能车机体验惊艳成都车展

百度开发者中心

百度 车联网 鸿鹄芯片

看完这篇SpringBoot让我在阿里成功涨薪40%,感谢

Java 编程 程序员 程序人生 springboot

阿里云视频云,用技术普惠打造平民化“虚拟人”

阿里云CloudImagine

人工智能 阿里云 视频云 数字人 虚拟人

四种 AI 技术方案,教你拥有自己的 Avatar 形象

阿里云CloudImagine

人工智能 阿里云 计算机视觉 视频云 元宇宙

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