速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

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

关注

评论

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

游戏夜读 | 研发运营怎么分成?

game1night

架构方法论学习总结

SaaS:小企业向左、大企业向右

人称T客

极客架构师训练营第一周

大丁💸💵💴💶🚀🐟

当选择越来越多,我们为什么反而越来越不开心

董一凡

生活 情感

极客时间<<架构师训练营>>第一周作业

好名字

极客大学架构师训练营 作业 第0期

第一周学习总结:

武鹏

ARTS Week 1

黑色柳丁

ARTS 打卡计划

LeetCode | 3. Roman to Integer 罗马数字转整数

Puran

算法 LeetCode arts

你现在极有可能是一个「铁锤人」

非著名程序员

读书笔记 程序员 提升认知 认知提升

java程序员从小工到专家成神之路(2020版)

程序那些事

Java 学习 Java 25 周年

JDK 15 JAVA 15的新特性展望

程序那些事

Java JVM Java 25 周年 新特性

如何设计电商行业亿级用户秒杀系统

奈学教育

大数据

微服务架构中分布式事务实现方案怎样何取舍【转发】

古月木易

微服务

S型曲线 - 第一曲线

石云升

S型曲线 第一曲线 连续性创新

陆强作业

Mr.Monkey

课后总结-20200606

caibird1984

日志标准化解析的关键内容

secisland

日志 态势感知 关联分析 解析规则 标准化

架构师训练营第1周——学习总结

在野

极客大学架构师训练营

架构师训练营-架构方法:架构师如何做架构

Pontus

极客大学架构师训练营

学习总结

Mr.Monkey

第一周总结 - 架构文档

孙志平

食堂就餐卡系统架构设计

武鹏

微服务架构中分布式事务实现方案怎样何取舍

奈学教育

陈虻语录(摘)

YoungZY

读书

中台迷局丨只做IT的中台是个神棍

人称T客

架构第一周-学习总结

J.Smile

极客大学架构师训练营

ARTS week 04

刘昱

「架构师训练营」第1周学习总结

guoguo 👻

极客大学架构师训练营

架构师(week1)总结

满山李子

原创 | TDD工具集:JUnit、AssertJ和Mockito (二十)编写测试-参数化测试

编程道与术

Java 学习 编程 TDD 单元测试

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