软件自动化测试方案的效益分析
作者:网络转载 发布时间:[ 2011/3/18 14:20:46 ] 推荐标签:
手工测试成本= 测试用例设计开发成本+(手工测试执行成本× 测试用例执行次数) +(测试用例维护成本× 测试用例执行次数)利益= 手工测试成本? 自动化测试成本ROI = 利益/自动化测试成本解释:
成本的计算单位大多可以用时间, 对于上述工具软硬件的成本这些用货币估计的可以折算成有效工时。脚本和用例开发所耗成本、脚本和手工测试执行成本、测试用例维护成本可以比较容易地从历史统计数据得出。比较难计算的是脚本维护成本,同时也是自动化测试风险比较集中的一块。
它由多重因素决定,比如开发流程的类型,自动化介入的时机,需求和设计的稳定程度,工具的选择,测试人员的能力(直接决定了脚本质量),测试框架的质量,测试对象的可测试程度…
3.3 自动化测试效益分析
在此, 以本人实际参与的测试工作为例分析自动化测试带来的效益。公司在工具软硬件成本方面花费大约50 万,使用寿命5 年,每年测试项目20 个,人均费用50 元/小时。工具软硬件成本折算到一年为10 万/年, 则每一个项目中自动化测试软硬件成本转化成有效工时为:100000/5/20/50=100 小时。
可变成本以本人实践过的比较典型的Crush or Flush 项目为例,其中各项成本如下表所示:
根据上面的模型计算该项目的ROI:ROI = 利益/自动化测试成本= (Σ(手工测试成本)- Σ(自动化测试成本))/Σ(自动化测试成本)则测试执行一次的投资回报率:
ROI(1)=((0+24+18×1+4×1)-(100+96+2×1+6×1))/ (100+96+2×1+6×1)=-0.77同理可算出:ROI(2)=-0.58, ROI(3)=-0.41, …… ,ROI(6)=-0.03, ROI(7)=0.07,…… , ROI(10)=0.31,…… ,ROI(20)=0.78。
注:ROI(n)表示测试执行 n 次的投资回报率。
分析:在前6 次的测试中,ROI 为负值,手工测试成本低于自动化测试, 并且ROI 随着测试次数的增加而增加, 在第7 次测试时(ROI 由负值到0.07)手工测试成本与自动化测试成本大致平衡,此后,自动化测试的成本小于手工测试成本。当自动测试被重复利用10 次时,收益达到0.31,而重复利用20 次时,收益已高达0.78。由此可以得出,自动化测试使用的时间越长、测试次数越多,ROI 会越大,收益越高。可见自动测试的效率提高还是相当显著的。
若单纯从经济角度考虑,当总的测试次数较少时(小于达到平衡点所要求的次数),建议采用手工测试;当总的测试次数较多时(大于达到平衡点所要求的次数),建议采用自动化测试。
这仅为参考模型, 而且该分析中只考虑了影响自动化测试效益的主要因素,没有考虑被测软件、开发环境、测试流程等因素的影响。实际应用中如果被测对象本身不是十分稳定,或者缺陷比较多,产品不成熟,这个时候介入自动化测试是非常得不偿失的。
要想自动化测试获得较高的收益,必须在手工测试的基础上,被测产品稳定的基础上实施自动化回归测试。
4、结束语
自动化测试技术在现代测试技术中的优势我们不得不承认,尤其在性能测试、压力测试等方面。但是,自动化测试不总是必须的、适当的、或者是有效成本投入的。根据上述模型,并结合具体测试项目和本单位以往的测试费用数据, 管理人员和测试人员能够在分析自动化测试确实能为企业带来效益的基础上,在合适的时机引入自动化测试, 使手工测试和自动化测试实现完美结合。

sales@spasvo.com