zl程序教程

您现在的位置是:首页 >  其他

当前栏目

测试自动化成本及投资回报率

测试自动化 投资 成本
2023-09-14 09:10:54 时间
现在看来,遗漏了自动化测试回报的一个重要指标:对软件质量的提升。
这一指标直接影响到软件使用者的满意度,从而影响软件生产者的收益。
从软件项目的规划和估计来看,软件研发到实施的过程中,都要考虑实际的交付价值,因此应当从价值进行规划和评判,当然价值的体现即需要考虑当前,也需要考虑长期。(Agile Estimating and Planning, 敏捷估计与规划,Mike Cohn 著)

----------------------------------------------------------------------------------------------------------
1.软件测试自动化
“解决测试时间安排,测试成本,跟踪报告等等问题”归为软件测试自动化的范畴。
大多数的软件测试面试题中都会提到“自动化测试”一词,而面试者往往给出的答案是:我会loadrunner,会rational,会用某某语言编写脚本。将自动化测试与自动化的性能或是功能测试工具划上了等号。
个人理解:软件测试自动化,是所有能够协助测试人员摆脱传统的手工模式,有效完成测试管理和执行工作的工具或是方法。
包括计划工具,任务管理工具,Teat Case编写及生成工具,Bug管理工具、统计工具等等
软件测试生命周期存在于软件开发生命周期的每一个步骤中,因此软件测试自动化也应当可以运用到整个软件测试生命周期中。
 
2.自动化测试的回报率
问题太大,涉及到的投入太多,相应的人力和物力成本不能一一计算(财务或高管应该知道),因此也没有去算过真正的回报率。
只是简单的用了一个很范范的衡量标准(没有真正实际意义上的度量数据):是否能够提高测试的效率,是否可以在使用自动化测试后提升整体的效益。
测试工具带来的是测试工作的自动化,测试自动化的实现往往会大大提高我们的测试工作效率,带来较大的收益。这里的工具不仅仅是功能或是性能工具 :)
公式:
按照 投资回报率(ROI)=年利润或年均利润/投资总额×100% 的算法
使用 投资回报率=未使用自动化测试前所消耗的人时 - 使用自动化测试后所消耗的人时 / 未使用自动化测试前所消耗的人时X100% 对自动化测试进行简的估算。
 
例1:以往做测试报告统计,5个人月的项目,需要测试人员花费1个人日(8个人时)进行统计。
利用相应的测试管理工具后,同样的项目,需要测试人员花费4个人时进行统计,并能生成相应的报告。
则 ROI > (8-4)/8 X 100% = 50%
注:
1)这里没有记录和计算引进测试自动化工具本身的成本,如工具的购买和培训等等
2)工具所带来的自动化带给我们的是高效和时间,让我们有更多的时间关注更重要的事,做更多的事
 
例2:以往程序维护工作对主流程的测试和验证,需要测试人员花费5~6个人时
利用自动化功能测试工具后,同样的维护测试工作量,需要测试人员花费0.5~1个人时(平均了日常的脚本维护时间)。
长期维护项目,脚本可以得到很好的复用和维护。
测试过程中不需要人为干预,并且与编译、布署实现自动化流程作业,尽可能早的发现问题。
则 ROI > (5-1)/5 X 100%= 80%
注:如果只是一个短期的项目,我会放弃使用自动测试测试工具。长期维护和脚本的可复用性节省了大量人力资源,带来的投资回报率非常明显。
 
例3:维护项目中新加一个功能点(完全独立的功能),人工测试需要1.5个人时,如果通过自动化实现需要 >4个人时
如果使用工具:ROI < (1.5-4)/1.5 X 100%= -166.7%
注:
1)没有复用价值,自动化实现还不如手工效率高
2)如果使用工具只是为了让自己变懒,或是为了满足自己对“技术”的追求,而不能确确实实的给整个项目或是产品带来效益,还是放弃的好。
 
 
3.其它
世界上没有银弹,适用原则,够用就好。
工具是给懒人准备的,是帮助人完成工作的,利用工具而不是依赖工具。
工具永远替代不了人,工具无法完成人即定给它之外的任何工作。