自动化测试是一个需要持续投入的系统工程,如何去衡量它的投入成本和收益回报之间的关系呢,这一直都是我们在思考的问题,如何让自动化测试给我们带来高的投资回报。
我们先来看看自动化需要哪些成本的投入,1、需要研发成本的投入,我们需要构建一个自动化框架,而且这个投入是持续性的,因为不仅需要维护,也需要不断完善。2、自动化工具成本,我们在构建自动化框架时,可能需要引入一些成熟的工具的使用。3、机器成本,搭建一个自动化测试是必须的。4、培训成本,自动化在测试组内的推广需要做大量的培训。5、学习成本,测试人员需要花时间去学习自动化。6、自动化脚本开发成本。7、自动化脚本维护成本。等等。
自动化测试作为一种测试手段,从直接效益来说,给我们带来工作成本的节约,那么这样的自动化测试实施算是成功的。我们从一个项目角度来分析自动化实施的效益,这里我们忽略前期自动化成本的投入,所以我们来看一个比较简单的投资回报(ROI)的计算公式:
ROI = (V手-V自)/V自
V手:手工执行用例的成本 V手 = 设计成本+用例数*次数*手工时间+问题分析成本
V自:自动化执行用例的成本 V自 = 设计成本+脚本开发成本+脚本维护成本+问题分析成本
上面公式中,我们带入后成为:
ROI = ((用例数*次数*手工时间)-(用例数*开发时间+脚本维护成本))/(设计成本+脚本开发成本+脚本维护成本+问题分析成本)
演化后的公式,我们假设用例数为10,次数为1,手工时间为5分,开发时间为10分,脚本维护时间为20分。
那么在这样的情况下,“((用例数*次数*手工时间)-(用例数*开发时间+脚本维护成本)”是负数,也就是投资回报是负的。
如果我们增加用例的执行次数呢,增加到3次,大家会发现投资回报变正了,这个时候我们才有了收益。
我们想继续扩大我们的收益,还能怎么做呢,从公式我们不难看出,我们需要降低“开发时间”、“维护成本”,让我们的脚本能更简单、更快速的产生,并且更方便的维护。
另外“设计成本”、“问题分析成本”这些都是我们可以去降低的,让我们的自动化用例覆盖更合理,自动化结果分析更智能话,都可以很大程度的提高我们自动化实施的收益
当然自动化测试的投入远不止这么简单,考虑的因素很多,会带来很多无形成本的投入,带来的收益也不仅仅只是成本的节约,所以这里只是简单的论述自动化的投资回报,带来一些对我们自动化方向上的思考。