老徐关注于企业级软件测试的管理; 老徐关注于软件自动化测试的研究与探索; 老徐关注于软件性能测试的研究与探索; 老徐和大家分享软件测试进度管理、缺陷管理、质量控制等方面的经验。

老徐最近翻译的Mercury的“自动化测试ROI分析”-第二部分

上一篇 / 下一篇  2007-03-04 16:09:06 / 个人分类:软件自动化测试

1.  投入回报比的影响要素

投入回报比(ROI)通常用获得的收益除以投入成本来计算。如果我们开始一个新的项目,我们就用测试的价值除以测试的成本来计算测试的投入回报比。有时,自动化测试的引入发生在手工测试已经完成的一段时间之后。

自动化测试的经济成本通常可以描述为固定成本或者可变成本。固定成本包括设备、工具、培训等。固定成本不受自动化测试的成果数量和运行次数的影响。而可变成本随着所开发出来的自动化测试的成果数量以及自动化测试的运行次数而增加或者减少。

自动化测试固定成本的例子:

1)硬件

2)应用软件的许可证

3)应用软件的技术支持

4)自动化测试环境的设计和搭建

5)自动化测试环境的维护

6)脚本开发工具软件

7)脚本开发工具的许可证

8)测试工具的培训

9)测试工具的引入和启动

自动化测试可变成本的例子:

1)自动化测试用例的设计

2)自动化测试用力的实现

3)自动化测试的维护

4)自动化测试用例的执行

5)自动化测试结果的分析

6)缺陷的报告

7)测试结果的报告

8)测试执行数据的保存

9)自动执行的测试

 

手工和自动化测试具备一些共同的要素。

共同要素的例子:

1)被测软件的分析

2)测试的规划

3)基础测试的设计

4)缺陷的报告

5)测试结果的报告的管理

 

我们在计算自动化测试的经济要素时,可以将它与两个事物进行比较:手工测试或不进行测试(接受未知的风险而不进行测试)。

 

在计算回报时,我们需要选定计算的时间周期(t)。通常情况下,可以根据一个项目的里程碑来确定计算的时间周期。而且,自动化测试的回报是发生在新版本发布之后的,也可以基于版本的发布来确定计算周期,同时要与下一个版本发布、下下一个发布保持一致。以这两种计算周期来计算自动化测试的回报,可有助于我们非常清楚的了解长期和短期的自动化测试收益。

自动化测试的固定成本不是绝对值。这些成本需要在他们的有用生命周期内进行阶段性的分配,并且用时间周期(t)来调整。t的值要基于管理因素进行选择,例如产品发布之间的时间间隔、ROI的计算、对工具使用寿命的期望、对测试的寿命的期望等等,以达到使t值被计算时的合理性、有用性和简易性。这些成本的分配是以成本乘以t,再除以使用寿命。例如,如果一个工具价格是25000元,期望的使用时间是两年,则第一年的成本是12500元(25000*1/2)。如果用四年的时间来计算则是50000元(25000*4/2)。投资的成本在工具的服务年限内都是要计算价值的。如果工具的服务年限为1年,则第一年的费用就是25000元。(同样的,如果一个接受完培训的人在培训后就离开了所在部门,就失去了培训的整个成本,就不能把这个成本在时间周期内进行分摊)。

相比于手工测试,自动化测试的最大价值就在于每次测试运行时的低成本。这就带来了计算ROI时的两个要素:自动化测试的运行次数(n1)和手工测试运行次数n2

自动化测试是需要维护的,所以自动化测试脚本在变更之前的运行次数就显得非常重要了。很多自动化测试难于运行就是因为GUI的频繁改变造成的。自动化测试组使用录制/回放的技术创建了自动化测试脚本,并且衡量出来用手工测试运行三次所需的工作量。在确保测试与软件开发同步的过程中,维护工作包括重新录制测试脚本和测试结果。观察发现自动化测试组好像测试做的少,而不停的进行重新录制。所以在重新计算自动化测试脚本的平均运行次数(发生变更之前)后,发现这个数字是1.2。五分之四的脚本只运行了1次(在不得不重新录制它们之前)。最后,这种低生产力的录制/回放方式不得不被放弃了。

针对成本,这些影响因素可以在更深层次上进行划分,一种是自动化测试和手工测试之间的相同性质的,一种是不断增长或者降低的。这些共同影响因素可以被摒弃在自动化测试ROI计算之外,因为它们既不是成本也不是收益。当我们进行自动化测试时,不断增长的影响因素可以看作成本,而不断降低的影响因素则看作收益。某些因素总是不断增长或者降低,而大多数变化的因素可以是成本或者收益,主要取决于自动化测试的类型和自动化测试取得的效果。下面是一些例子:

变化的因素(可以是自动化测试的成本,也可以是收益):

1)             自动化测试环境的维护(可能是不断增加的成本,也可能在整个的维护成本中不断降低)

2)             测试案例的执行

3)             测试结果的分析

4)             缺陷的报告

5)             测试结果的报告

6)             测试数据的生成

自动化测试的收益:

1)测试执行的保存

2)系统自动执行的测试结束后的工作

自动化测试的成本:

1)硬件

2)测试环境中软件的许可证

3)测试环境中软件的技术支持

4)自动化测试环境的设计

5)自动化测试环境的实现

6)脚本工具

7)测试工具的许可证

8)测试工具的培训

9)测试工具的引入和启动

10)           自动化测试用例的设计

11)           自动化测试用例的实现

12)           自动化测试的维护


TAG: 软件自动化测试

 

评分:0

我来说两句

日历

« 2024-05-01  
   1234
567891011
12131415161718
19202122232425
262728293031 

数据统计

  • 访问量: 37522
  • 日志数: 35
  • 建立时间: 2007-03-03
  • 更新时间: 2007-04-12

RSS订阅

Open Toolbar