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