51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 19461|回复: 24
打印 上一主题 下一主题

如何计算自动化测试的投资回报?(08-07-28)(获奖名单已公布)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-7-28 18:26:19 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
今天,很多管理者期望软件测试自动化成为银弹,解决测试时间安排,测试成本,跟踪报告等等问题。可以肯定的是自动化测试已经影响很多领域,很多成功案例给了我们希望,自动化测试可以节省金钱和解决一些测试问题。不幸的是也有很多失败的故事,即使在自动化测试已经获益的案例中也有失望和不好的感觉。

本周每周一问,欢迎大家畅所欲言:如何计算自动化测试的投资回报率?
希望通过本次讨论能给大家提供一些了解,计算成本和从自动化测试中获益的实际指导方法。

非常感谢各位会员积极参与,截止至8月2日24:00分,从该贴所有评论中选出部分作出精彩评论的会员予以奖励。礼品和积分将在本周内送出。

获奖名单
奖项
获奖名单
奖励
答案链接
一等奖
rolei
当当网购物卡50元
二等奖
maguschen
300论坛积分
goal1860
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

25#
发表于 2008-10-27 16:27:24 | 只看该作者
不懂的
回复 支持 反对

使用道具 举报

该用户从未签到

24#
发表于 2008-8-6 13:50:49 | 只看该作者
学习了,希望自己半年后也能有所见地
回复 支持 反对

使用道具 举报

该用户从未签到

23#
发表于 2008-8-6 10:37:20 | 只看该作者
在自动化测试的前期投入肯定是要比手工测试的成本高
但是到了测试后期才能看到自动化的回报
回复 支持 反对

使用道具 举报

该用户从未签到

22#
发表于 2008-8-4 12:55:19 | 只看该作者

个人拙见之计算自动化投资回报

我觉得计算自动化测试投资回报目的最重要的原因在于是否为测试项目中实施自动化的决策提供论证依据,这个依据是可量化的,具有较强的参考价值。那么计算时要考虑的因素有以下几个方面。
1.实施自动化测试后项目成本是否会低于手动测试成本。
2.实施自动化测试后,是否能够为后续项目带来持续的利益。

这里列个表举例说明一下我的思路,首先估算一下自动化测试与手动成本测试的成本的差异,
此表以(人/天)为单位。
 

手工
(人/天)

自动化
(人/天)

差额(人/天)
(自动化-手工)

备注

工具

  

培训

0

5

5

估计培训时间需要5个工作日,假设所有测试人员均需要自动化培训

每1000条测试用例

  

开发

33

100

67

每人每天
1.手工:30 条
2.自动化脚本:10 条

执行

10

2

-8

每人每天
1.手工:100 条
2.自动化脚本:500 条

维护

14

41

27

假设在一个项目中每1000条中有50%的case需要维护,并且维护效率比开发时效率提高20%
共500条,每人每天
1.手工:36条
2.自动化脚本:12 条

小计

57

148

91

 

人员成本每人每天300元

 

 

91x300=27300

 

工具购买成本(元)

0

10000

10000

一次性购买成本为10000

总计

 

 

33000

 


  从该表可以看出,在计算自动化的投资回报要考虑的东西很多,得出一个绝对的量化值是不现实的,因此我们只能估算一个大致水平,衡量是否值得为自动化测试投资。
  另外,从该表可以知道自动化能带来的明显利益来自于测试用例的执行阶段,如果测试执行次数足够多的情况下,成本可能会低于全手工测试。而要提高测试用例的执行次数有以下两个主要情况:
1.单个项目中测试用例执行次数:最明显的就是regression测试。
2.多个类似项目中的测试用例复用率:如果该测试用例在多个项目中的复用率高,那么也会稀释该用例的开发和维护时的成本,提高自动化产生利益的效率。
  我认为,如果该项目为一次性项目,那么盲目的引进自动化应该是个失败的决策。而如果针对的是一个系列的产品测试,那些就应该好好计量自动化所带来的效率提升。
但也应该看到,由于项目的特殊性,如在web的压力,性能测试中引进LR完成自动化测试是无需考虑的,毕竟人工测试会有很大的局限性,而自动化的优势相当明显。
  我很赞成楼上rolei的观点,“软件测试自动化,是所有能够协助测试人员摆脱传统的手工模式,有效完成测试管理和执行工作的工具或是方法 ”,自动化不应局限于测试用例上的应用,而应将其最大限度的应用于整个测试项目之中,如利用QC或QTP的API完成一些需要批量处理case的,或者编写一些小工具来替代测试过程中需要手工做的事情等等。
  我觉得任何一个能提高测试项目效率的自动化应用都应该值得鼓励的,毕竟它是测试技术的一个进步。


[ 本帖最后由 bsbolg 于 2008-8-4 15:29 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

21#
发表于 2008-8-4 11:36:36 | 只看该作者

19楼高手的公式很简单很清楚

楼主要是多个点解释,就好了,哈哈!!
回复 支持 反对

使用道具 举报

该用户从未签到

20#
发表于 2008-8-4 09:24:04 | 只看该作者

我的看法如下:

对自动化测试的收益,我更倾向于定性的去考量。
如果从收益的角度来看,常见的三个方面是:
1.测试环境的自动化搭建。
这点极易被忽视。有一套快速稳定的搭建系统的策略可节省时间及减少很多问题。
2.自动回归测试。
测试驱动开发的理念是关键,可根据实际情况选择,自主开发测试用例或选用商业工具。
3.自动性能测试(压力,负载等)。
一般可采用loadrunner等商业测试工具,需要熟悉数据库知识。

成本主要体现在商业测试工具的购买,对理念和技术的培训及建立较完善的自动化测试流程所需的人力和时间。
收益体现在完成纯粹的手工测试不能完成的任务,及同样的任务所节约的人力和时间。
事实上,自动化测试必然与手工测试结合起来。
其效果主要应体现在快速高效的发现手工测试难以发现的问题。
而同样的任务所节约的人力和时间其实无法计算(世界上不会有同样的任务)。

像单元测试及持续集成等理念,开发部门必然要直接参与其中并带来软件质量的稳步提高。
这是很难计算具体收益的,然而所有参与项目的人员都应该感受到效果。

如上面几位同学所说,自动化测试重在测试过程的建立。
和技术相比,管理或者说架构更为重要。
不能奢望通过一个项目完成很好的自动化测试过程,因此,投入是长期的。
需要有能力的测试人才领导整个团队稳步提升能力。

事实上,现代的大型软件开发,自动化测试是必然的需求。
真正的问题在于找到和培养优秀的测试人才。
由于懂行的人太少,这方面的投入产出比是可想而知的。
关键在于寻找有想法的测试人员,而不是强调多少年的测试经验或者商业测试工具的掌握。
不管是手工或者自动化测试,所谓探索性测试的理念都是重中之重。
回复 支持 反对

使用道具 举报

该用户从未签到

19#
发表于 2008-8-4 09:22:38 | 只看该作者

一个简单的自动化测试投资回报率的计算方法

一个简单的自动化测试投资回报率的计算方法
自动化测试成本 = 工具软硬件成本 + 脚本开发所耗成本 + (脚本维护成本 X 脚本执行次数) + (脚本执行成本 X 脚本执行次数)
手工测试成本 = 测试用例设计开发成本 + (测试用例维护成本 X 测试用例执行次数) + (手工测试执行成本 X 测试用例执行次数)
利益 = 手工测试成本 – 自动化测试成本
ROI = 利益/自动化测试成本
注: 自动化测试的ROI无法显示在测试过程中查找出来的缺陷个数
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2008-8-2 20:30:09 | 只看该作者
写得真详细啊
得仔细研读!
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2008-8-2 12:11:26 | 只看该作者
得好好学喽!
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2008-8-1 15:59:30 | 只看该作者
从软件行业的角度,我更愿意把投资回报率用投入产出比来度量。投入产出比是一个量化值,最终反映出来的是一个数字。但是我更关心的是为了获得这个数字我们进行分析的过程。是否引入自动化测试的决策,自动化测试引入和执行过程中的跟踪,管理和调整,以及项目完成后对于自动化测试结果的分析总结,都可以通过我们对自动化测试的投资回报率的分析,得出结论。而这个,应该才是我们计算投资回报率或者投入产出比的终极目标。
我们从投入和产出两个角度来看这个问题。
从投入的角度看,自动化测试的投入可以分为显性和隐性投入。显性投入是指容易量化的,直接的投入,包括用于自动化测试的软硬件投入,对自动化测试的设计,编码,测试,实施和执行所投入的直接人力投入。隐性的投入则是指由于引入自动化测试对组织,项目带来的不可量化的影响,包括测试流程变化的影响等。对于显性的投入,我们可以把自动化测试看成一个小项目来进行分析。硬件软件的投入是最直接和可量化的;而对于人力成本,除了前面列出来的直接人力成本外,我们需要特别关注变更的成本,简单来说,对于一个功能尚不稳定的产品,当我们引入自动化测试的以后,功能上的变更所引起的自动化测试维护成本的上升(重新设计case,编码和测试),可能比开发过程中的成本更高。对于隐性投入,我们需要对组织的现状做出评估,特别需要分析自动化测试的引入对于项目的开发测试流程的影响。
从产出的角度来看,引入自动化测试的初衷一般都是希望能减少重复测试的人力成本支出,让机器取代人来完成一些重复性的工作。一般来讲,我们可以用引入自动化测试前后执行同样case所投入的人力差别,来衡量产出。
通过上面的分析,我们可以得出一些定性的结论:
自动化测试比较适合满足以下这些条件的项目
1.项目功能比较稳定,变更比较少
2.项目和组织相对成熟,流程的变更带来的影响比较小
3.测试用例得到很好的维护,测试用例本身的质量较高
有一些项目可以部分引入自动化测试,比如
1.项目部分模块功能已经稳定,可以针对相对稳定的模块引入自动化测试
2.项目大流程比较稳定,可以先对冒烟测试引入自动化测试
最后,必须要明确的是质量第一的原则。自动化测试切忌以量取胜,如果自动化测试脚本本身都的质量都成问题,试问怎么能成为衡量另一个产品质量的标准,这样的脚本所给出的测试结果又怎么能真实反应产品的质量呢。
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2008-8-1 09:32:13 | 只看该作者
本人现在所在的公司测试的人少的可怜 对于自动化测试 还不是很明白 何谓自动化测试?具体包括哪些东西?实现的步骤是怎样的?需要哪些资源和工具以及硬件配置?谢谢!!学习中。。。。。。
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2008-7-31 18:18:53 | 只看该作者

自动化测试之我见

大家都在谈论自动化测试,我也是刚学习一段时间,谈一下我自己的看法。

首先,我们先明确一下自动化测试的范畴。自动化测试应该是指通过通用的或者自己研发的自动化测试工具进行和开展的测试活动,应该是测试执行阶段一个重要手段(也可能在测试用例设计和测试报告)。自动化测试在我的理解里面应该是一把双刃剑,如果使用好了会使测试的效率大大提高;如果使用不好,结果也是相当的可怕的。

关于自动化测试的投资回报率来说,应该是具体问题具体分析,个人认为很难提出一个比较简单的计算方法或者是计算模型。举一个例子来说明,现在有一个网站的性能需要测试。网站要保证同时在线10000人时,任然能使用户的响应时间在0.3m以内。这个测试就必须使用自动化测试工具了,如果不使用自动化测试工具,还使用手工测试的话,成本将是相当恐怖的(招10000个测试工程师,买10000台电脑)。如果需求在出项变更,改变为要满足50000人同时在线。这个时候测试负责人在不使用自动化测试公具的时候就应该哭死了。从这个例子中我们可以看到,自动化测试的投资回报率可能跟随用户需求的变化而变化。再说一个例子,某公司一直从事某一个行业的软件开发,项目和项目之间只有一些小小的变化,测试人员可以从以前的项目中,直接继承很多自动化测试的脚本而进行自动化测试。这个时候针对一个项目的自动化测试的投资回报率就很不好计算了,做过的项目越多,自动化测试的投资回报率就越高,这时我们可以看到自动化测试的投资回报率不能是针对一个项目的计算,应该是针对一个公司和这段时间内所复用的比例来决定的。

从上面两个例子中,不难看出孤立的纯粹的计算自动化测试的投资回报率不能准确的计算,但是在一个项目开始之前没有一个简单的衡量,就没有依据来判断到底进行自动化测试还是不进行。在一个项目开始之前还是要分析一下这个项目具体有没有自动化测试的必要的。个人觉得主要从以下几个方面进行考虑:

            项目是否有延续性,有延续性的以后会有很多能复用的地方,适合做自动化测试;没有延续性的,可能就不是很适合;
            项目的开发模式和开发计划,    需要有很多次的重复测试的,适合作自动化测试;测试重复次数不多的,不适合;
            项目人员的素质问题,有自动化测试相关经验的,是合作自动化测试,没有自动化测试相关经验的人员,不适合;
            项目构架的稳定性   稳定的适合做自动化测试,不稳定不适合。(需求总是变更,界面原型总是变更很难开展自动化测试)
            项目时间的问题      如果以前没有任何可以继承的东西,项目时间紧的情况下不适合做自动化测试。


以上的这些只是个人从自己的经验总结的一点东西,可能还不是很完善。但是,根据我们现在的软件行业的自身情况,可能做不做自动化测试也不是项目经理或者测试负责人说了算的,可能是公司的大领导说了算,还可能是用户强行要求的。所以分析也只是停留在技术层面上的东西。

还是那句话,哲学上已经告诉我们了,什么事情都不可能存在银弹的,关键的还是要具体问题具体分析。自动化测试这并双刃剑,我们一定要把它砍向敌人!

[ 本帖最后由 黑五类 于 2008-7-31 18:22 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2008-7-31 17:35:58 | 只看该作者

好详细啊

谢谢各位的赐教
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2008-7-31 10:16:45 | 只看该作者
学习学习
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2008-7-31 09:34:06 | 只看该作者
呵呵,要估算自动化的效益,必须根据本公司的实际情况建立一个模型,前面几位大佬提的就是经典的估算模型,我根据自己的实践给个简化的:

基本公式:手工执行成本+脚本建立成本+脚本维护成本+脚本执行成本x执行次数+其他相关成本<手工执行成本x执行次数

解释:成本的计算单位大多上可以用时间,对于有些用货币估计的应当折算成有效工时。由于脚本执行可以在夜间进行,应当乘以一定的折扣,甚至于可以忽略不计。 最难计算的是维护成本,同时也是自动化测试风险比较集中的一块。它由多重因素决定,比如开发流程的类型,自动化介入的时机,需求和设计的稳定程度,工具的选择,测试人员的能力(直接决定了脚本质量),测试框架的质量,测试对象的可测试程度。。。。。。
其他相关成本包括:做决定(通常会有很多会议)、自动化测试计划、框架实施、研究、额外软硬件等,多为一次性投资
脚本建立成本和手工执行成本可以比较容易地从历史统计数据得出

这仅为参考模型,实际应用中由于风险的存在,当自动化测试的收益难于估计或估计收益不大时,很多公司会选择放弃(本人也一样:)
其他因素:当人力无法取代自动化,如大规模性能测试
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-7-30 14:39:16 | 只看该作者
学习学习,占楼学习
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-7-30 14:35:04 | 只看该作者
很详细啊,刚开始做,还没怎么研究~~
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    2015-3-12 14:20
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    8#
    发表于 2008-7-30 14:20:58 | 只看该作者
    maguschen 说的很详细啦,没啥好补充的了....
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2008-7-30 12:42:45 | 只看该作者

    maguschen楼主写了这么多,搞不懂呀,能否弄个简单一点的公司

    哪位高人能否给出一个简单的计算公式呀?简单说清楚问题,才是高手哟,呵呵!!!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-26 14:23 , Processed in 0.097660 second(s), 29 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表