写点什么

developerWorks:敏捷测试系列文章

  • 2009-10-17
  • 本文字数:1924 字

    阅读完需:约 6 分钟

最近,IBM 中国软件开发中心高级工程师谢明志在 developerWorks 上发表了《敏捷测试的最佳实践》系列文章的第四篇——《自动化测试的 ROI》

在这一系列的文章中,谢明志以 IBM 测试工程师的身份和视角,总结并分享了 IBM 在采纳推广敏捷开发策略过程中,尤其自己亲身参与的产品开发测试过程中对敏捷开发和测试的思考。

我们在敏捷项目开发的过程中使用了定制的测试流程,我们有两部分测试,即 Confirmative 和 Investigative 两部分。我们将这两部分测试都放在当前迭代的计划内完成。原因是,敏捷测试团队针对当前迭代的任务计划本应服务于当前的产品,过去的迭代产物,或者因为需求变更不再适用,又或者因为未解决的质量缺陷使得实际测试效果不佳。

以笔者所在团队为例,历时 1 年,经历 12 个迭代后,我们逐渐形成了一套可以遵循测试活动时间表。这张表包含了敏捷测试团队的各项活动安排和必要的前提与进入条件。在这张表中,测试团队较早的涉 入,较早的开展测试,以及各项相关工作,并与设计和开发人员紧密的合作,它确保了测试团队乃至整个敏捷团队的工作的按期完成,是值得向大家推荐一种最佳实 践。

“如何看待敏捷测试和对测试人员做绩效考评呢?”——敏捷团队中无论开发还是测试都不是个人的开发和测试,这是团队的工作。一名好的测试人员除了能 够做好本职测试工作外,表现为愿意并能够做超出原有范围的工作,能够并愿意帮助团队其他成员解决其他复杂问题,实现团队的共同目标。测试人员能够主动发现 并弥补团队中的重要缺失的环节,帮助团队其他成员完成工作任务。

系列文章的第四篇是对自动化测试的思考:

无论在敏捷开发还是传统开发论坛中我们听到更多的问题仍集中于如何自动化测试,采用什么行之有效的工具和方法才是最好的,似乎重点仍然是工具和 技术。因为很少人认真考虑投入自动化开发占整个项目测试投入的比例的科学性,而更少有人曾经清晰的分析何时,花费多少人力的自动化开发与维护才是颇为合理 的规划,而仍然用经验和教训在维持似是而非的自动化测试体系。

经过在多个自动化测试的项目环境中调研,我们认为成功的自动化测试很大程度决定于合理的投入规划。相反不计成本的规划,或者疏于成本规划的自动化测 试只能带来负担而不是效率的提高,尽管有些人为了满足对其自动化技术的一味崇尚而调整了各种报告结果,并且已经满足了某些人对自动化投入的愚昧狂热后,他 们仍然欢欣于一个价值公式,一些精确的指导来调整或者提高他们自动化测试收益。那么如何做好自动化测试的成本规划呢?

作者试图用 ROI 公式来计算自动化测试的投资回报率,并利用假设和前提来推导出结论,这样的结论包括:

如果自动化后的测试脚本在项目中只运行一遍,那么自动化脚本本身开发的成本不应大于手动执行一遍对应测试用例的执行时间。即完全没必要自动化。

d%(平均出错率,也就是说一个产品的代码中如果有 d% 的出错率,对产品质量缺陷的修复仍然将带来 d% 的新质量缺陷)的值越大,质量缺陷越多,我们依赖于手动测试的可靠性更大。

回归测试产生的质量缺陷是产品出错率的等比数列之和。

当考虑自动化测试成本收益时,我们应该先考虑那些可能迭代次数更多,运行次数更多的测试用例进行自动化脚本开发。而对于产品的质量缺陷,当质量缺陷越少,质量越好的产品,自动化开发成本收益也会比较大。反之,则致使自动化开发并不合算。

而针对在 Scrum 迭代开发过程中的自动化测试成本分析,作者提出:

应该说迭代次数(n),测试覆盖次数越多,自动化测试带来的好处就应该越多,而产品开发中出错率(d%)越小,自动化测试效果越好。但是,自动 化脚本也许因为迭代目标和对象的差异性需要大幅修改。而重新构造和改变测试脚本带来的代价和成本也非常大。特别在敏捷测试中,产品变化之大给自动化测试带 来难度也陡然增加。因此,敏捷测试中,我们要以更精细的单位来计算自动化测试的投入产出比。即,决策敏捷自动化测试的投入产出应该基于每个迭代自身的收 益,而不是整个产品开发周期。

结论是,一般产品的测试错误率高于 20%,也就说为了达到质量好到足够能够退出,回归测试至少需要 3 次,在这种情况下我们其允许投入到自动化开发的成本为不多于 3 人天。而当产品质量非常好,错误率低于 20%,因为不需要经过多次测试以达到退出标准,我们也就可以省去自动化测试的步骤了。最后关于本文的经验之谈,当我们从事着敏捷测试活动时,在四周为周 期的迭代测试中,测试人员在第二周的开始进入自动化脚本开发。开发活动不易超过 3 天。

总之,

不要指望自动化投入越多对产品和质量越好,也不要指望自动化测试可以取代手动测试。但是,自动化测试是需要测试人员合理、科学的使用来提高测试成效的途径之一。ROI 的自动化规划将是非常适合敏捷测试、传统测试的最佳原则。

2009-10-17 03:592064
用户头像

发布了 127 篇内容, 共 43.4 次阅读, 收获喜欢 5 次。

关注

评论

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

安全代码审计-PHP

网络安全学海

网络安全 信息安全 渗透测试 漏洞 代码审计

业内首家!百度智能云智慧金融业务通过ISO37301合规管理体系认证

百度大脑

基于 XuperChain 的区块链项目从 0 到 N(二)

刘旭东

区块链 XuperChain

大画 Spark :: 网络(5)-Spark中的server端和client端

dclar

大数据 hadoop spark Spark 源码 大数据开发

社区人物志|缪翎:见证开源世界的女性力量

ApacheDoris

大数据 开源 数据分析 OLAP apache doris

React Draggable 实现拖拽 - 最详细中文教程 - 卡拉云

蒋川

React

Flutter 容器盒子布局模型

岛上码农

flutter ios 安卓 移动端开发 3月月更

CompusAss校园社团小程序解决方案

CC同学

如何避免在面试中看走眼

Hockor

个人成长 面试经验

高精度轻量级目标检测产业应用,实现多类通信塔识别

百度大脑

appsmith 怎么用?评价如何

蒋川

appsmith

PingCode 全新子产品 Insight 开放内测

爱吃小舅的鱼

Hoo虎符研究院|区块链简报20220307期

区块链前沿News

Hoo 虎符交易所 虎符研究院

如何在 Vue 中使用 Chart.js - 手把手教你搭可视化数据图表

蒋川

Vue PDF pdf阅读器

Amazon Graviton2上数据压缩算法性能比较

亚马逊云科技 (Amazon Web Services)

数据 应用性能

全网渗透率达80%!“耳朵经济”将成为当下市场的流行趋势

易观分析

耳朵经济 在线音频

Tech Talk 活动预告 | 为什么说 Serverless 是应用开发的未来?

亚马逊云科技 (Amazon Web Services)

Serverless

免费硬件、专属导师、豪华大礼|AI达人创造营第二期项目征集启动啦!

百度大脑

12 款最棒 Vue 开源 UI 库测评 - 特别针对国内使用场景推荐

蒋川

Vue vue admin

企业如何快速地制作出电子产品宣传册?

小炮

springsecurity默认用户生成

急需上岸的小谢

selenium操作元素遇到的异常

红毛丹

selenium

2022 年了,还不了解 PWA ? 教你 VuePress 博客如何快速兼容 PWA

冴羽

JavaScript Vue 前端 vuepress PWA

python 编辑器提示 do not use bare except

AlwaysBeta

Python vscode 编辑器 pycharm Python PEP

「架构实战营」模块四作业 考试试卷存储方案

hxb

「架构实战营」

教你Mac下终端配置iterm2+oh-my-zsh+powerlevel10k

锋享前端

Mac iterm2

java高级用法之:无所不能的java,本地方法调用实况

程序那些事

Java Netty 程序那些事 3月月更

关于中国芯片,这些话如鲠在喉

脑极体

Web 键盘输入法应用开发指南 (6) —— 开发实战(一)

天择

JavaScript 键盘 实战 输入法 3月月更

服务器被入侵了?反手溯源出入侵者画像【网络安全】

H

黑客 网络安全

小程序的第六年,我们还能怎么玩?

知晓云

小程序 微信 小程序生态 小程序运营

developerWorks:敏捷测试系列文章_研发效能_张凯峰_InfoQ精选文章