测试自动化建设成本

原创:逆熵研习社

本期导读

1.未对成本有认识是建设的第一大障碍;
2.投入产出比是需要考虑的至关重要的要素
ROI=执行次数*(手动回归成本-自动化维护成本)/ (基础建设成本+引入成本+日常维护成本)

自动化建设成本

在投入自动化建设前需要思考下成本与收益的问题,自动化不是银弹,以自动化为基础的CI/CD等都有自己的成本。控制好成本和收益的预期是建设有效用的自动化体系的根本)自动化测试是一个让人又爱有恨的东西,有地方解决了很多问题,而又有不少地方完全成了累赘。经历了这么多年的发展自动化测试依然是许多公司KPI和OKR中建设的重点,为什么没有一颗银弹为大家带来福音呢?简单来说对自动化建设存在诸多的误解,其中最重要的误解是自动化建设是一次性的投入,甚至有些人觉得是一次性开源工具引入的投入。
自动化建设是匹配产品和建构逐步迭代和升级的建设。和公司其他基础性建设有着非常类似的路径,有投入可以获得产出,随着产品的持续迭代这份投入需要持续进行。为了使自动化建设更优意义提高投入产出比(ROI)至关重要。如何理解自动化建设的投入产出比呢?ROI可以理解为从自动化获取的收益和自动化投入成本之间的比值:
ROI=获得收益/成本
其中获得收益=执行次数*(手动回归成本-自动化维护成本),而投入成本可以理解为 成本=(基础建设成本+日常维护成本),整体来看投入产出比可以理解为下面的公式ROI=执行次数*(手动回归成本-自动化维护成本)/ (基础建设成本+引入成本+日常维护成本)
为了让自动化真的有意义就应该深入细分投入产出公式中的各项,结合自己公司和项目产品的状况进行迭代式的升级,持续提高ROI。
从ROI公式看似乎一些风轻云淡——只要降低成本提高收益就可以了,而实际上每一项之间都有着相互影响的关系,这种影响因素很可能导致ROI<1——投入小于获得的收益。所以并不存在一种放之四海皆准的自动化方案,在分析自己部门适合什么样的自动化时需要探索下收入和产出的可能状况。

影响因素分析

首先,是否要进行建设需要考虑的是执行次数的因素,只有长期高频次的回归才有可能拿到更大的收益,这是一项非常简单有效的判断标准。根据这个标准一些短期尝试性的项目不适合投入较大经历建设自动化,如果在自动化基础尚薄弱的情况下此类项目建议投入一些精力建设可以提高验证效率的回归工具上来。
然后,需要重点考虑的就是基础建设成本与日常维护成本的平衡。一个经过系统化建设的自动化基础可以有效降低引入成本和日常维护成本,但是经过系统化建设的自动化基础本身也是一个非常昂贵的投入。另外,早期投入太多的精力在自动化基础建设上导致的高昂成本可能早早的把未来可能的收益给吃掉。吃掉的场景有多种,其中一种是虽然理想很丰满但是建设出来的系统并未能在业务系统中起到太大的作用,这种例子在诸多较大规模的独立测试架构团队中比比皆是。独立的测试架构团队虽然拥有较好的开发能力,但是由于和业务以及业务测试同学有一定距离,导致付出成本后无法落地,生产中的收益更是无从谈起。另外一种情况也比较常见,随着自动化和业务的深入结合发现原有的自动化机制底层并不完善,需要放弃大量已实现的功能重新建设。因此在基础建设上遵循的原则是注重基础建设,按时期迭代,迭代过程与业务同步进行。
成本较高的基础建设包含什么样的内容呢?按照迭代的阶段包含以下的范围:
测试可以进行的基础;测试可以以更高效率进行的基础;测试可以自动化进行的基础;大规模替代手工测试的基础。从架构上来看包含以下层次的内容:
测试自动化建设成本_第1张图片
在以上因素中不同程度的建设需要不同的成本,但是为了保证自动化测试能够顺利进行至少需要以下基础:
可以支持其业务的基础环境,可以部署和更新的业务环境,经过一定封装的业务lib以及自动化引擎。经过精心建设的基础环境、业务环境等在大规模自动化测试中可以有效提高自动化测试的文档并有效降低日常维护成本以及case编写成本。在本章最后一部分我们一起看一个早期简单建构的自动化方案。本文章后续部分主要针对较为复杂,需要精心设计的各个部分的建设方案。

你可能感兴趣的:(测试自动化建设成本)