正式定档!QCon 北京站改期为2024年4月11-13日,地点:北京·国测国际会议会展中心 >>> 了解详情
写点什么

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

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

关注

评论

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

Spring源码解析:自定义标签解析

Java你猿哥

Java spring Spring Boot ssm

你还在为分布式系统数据一致性而烦恼吗,来来来!!!

Java你猿哥

Java 分布式 ssm 分布式架构

【新资讯】行云管家大动作-V7.0即将闪亮登场!

行云管家

网络安全 行云管家

公司刚来的阿里p8,看完我构建的分布式框架,甩给我一份文档

三十而立

Java 分布式 java面试

Astute Graphics for Mac(全系列ai插件合集)支持ai 2022/2023

魔仙苹果mac堡

Astute Graphics AI插件

RADIUS认证是什么意思?有什么用?

行云管家

radius 认证

在 Flutter 多人视频中实现虚拟背景、美颜与空间音效

声网

flutter AI 虚拟背景 美颜

Java8 Stream中如何对集合数据进行快速匹配和赋值

Java你猿哥

Java ssm java8 Java工程师

六款好用的苹果软件,提升Mac使用效率!

魔仙苹果mac堡

Mac软件 苹果软件下载

进阶面试皆宜!阿里强推Java程序员进阶笔记,差距不止一点点

Java你猿哥

Java 面试 面经 八股文 Java八股文

数仓如何进行表级控制analyze

华为云开发者联盟

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

ChatGPT软件技术栈解密

NineData

数据库 GitHub 技术架构 openai ChatGPT

通过 Amazon Managed Microsoft Active Directory 运行混合 Active Directory 服务

亚马逊云科技 (Amazon Web Services)

Amazon

photoshop 2023【存储为窗口显示空白、黑屏】解决方法

魔仙苹果mac堡

ps ps 2023储存黑屏

不同于Oracle:MySQL的insert会阻塞update

GreatSQL

MySQL oracle greatsql greatsql社区

SVN客户端:SmartSVN Mac许可证激活版

魔仙苹果mac堡

精准水位在流批一体数据仓库的探索和实践

百度Geek说

大数据 数据仓库 实时计算 流批一体 企业号 3 月 PK 榜

刷爆LeetCode!字节技术官亲码算法面试进阶神技太香了

Java你猿哥

Java 数据结构 算法 面经 左程云

合约一键跟单带单软件开发交易平台定制(源码搭建)

开发v-hkkf5566

降本增效:12种常见接口优化方案总结

程序员小毕

Java 程序员 性能优化 后端 架构师

焱融 YRCloudFile 在海量小文件场景训练加速优化策略

焱融科技

文件存储 容器存储 分布式文件存储 高性能存储 全闪存储

Go 语言基础语法

ACK Net Exporter 与 sysAK 出击:一次深水区的网络疑难问题排查经历

阿里巴巴云原生

阿里云 云原生 网络 容器w

程序员必修课:阿里性能优化全解终开源!设计+代码+JVM三飞

Java你猿哥

Java 性能优化 JVM 面经 jvm优化

屡获殊荣丨Dubbo 开源 12 周年年度总结与规划

阿里巴巴云原生

阿里云 开源 云原生 dubbo

局域网IP扫描软件:IP Scanner Pro 激活版

真大的脸盆

Mac Mac 软件 局域网管理 IP扫描工具

瓴羊Quick BI的存在,让企业管理不再复杂繁琐

对不起该用户已成仙‖

面试造飞机?GitHub顶级“java面试手册2023”(面试通过率95%)

Java你猿哥

Java 面试 面经 Java工程师 春招

大数据上云存算分离演进思考与实践

阿里技术

大数据 存算分离

【网易云商】记一次实遇的 MySQL--index merge 死锁历程

网易云信

MySQL 数据库 数据库死锁

【网易云商】记一次实遇的 MySQL--index merge 死锁历程

网易智企

MySQL 数据库

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