浅谈自动化测试的弊端
自动化存在的弊端
1.自动化很贵
想要使用自动化测试的一个原因是省时省力,但事实可能有所偏差。所谓的自动化测试是自动化测试人员编写一段代码去测试研发编写的另一段代码,这中间需要花费的成本其实并不比开发一个产品少。
首先,开发自动化脚本需要花费不少的时间,若自动化脚本的质量无法保证,健壮性不够,很多时候都是运行几次就被丢弃了,造成成本的浪费。
其次,自动化测试需要由懂自动化技术的人来操作。自动化测试其实也是开发代码,也需要专业人才才能胜任此项工作。
时间成本、人力成本和技术成本,都是自动化中需要考虑的成本。自动化测试真的很贵,在部署之前,一定要考虑团队的消费能力。
2.自动化脚本并没有想象中的可靠
想要使用自动化测试的另一个原因是自动化测试忠实可靠。但自动化结果为success的可能只是幻象---脚本只会按照制订好的步骤去运行和确认结果,不会去全面捕捉一些突发的异常。而我们在测试中发现的缺陷有一部分是在步骤外“意外”发现的。
除此之外,自动化测试工具或者自动化测试环境可能并不是那么可靠,自动化测试环境或者工具也会导致自动化测试“失败”,也就是说结果为failure的测试用例也不一定就是真的存在错误。
因此,无论是正确的自动化测试结果,还是错误的自动化测试结果,都需要人再去确认。
3.自动化测试不是单靠测试就能搞定的事
编写自动化测试脚本并不是单依靠测试就能搞定的,前期需要产品确认好需求,确定好输入、输出;需要研发确定具体的实现方法(如后端研发需要确认接口的入参及输出结果结构,前端研发需要确认页面元素的标识),有了这样的前提测试人员才能输出详细的测试用例,最后才能根据测试用例编写自动化测试脚本。
在自动化测试脚本开发的过程中还要随时关注每个环节,无论是哪个环节的变动都会影响自动化测试的正常开展,使得自动化测试停滞不前,甚至返工。
评估自动化的收益
1.自动化测试的实施成本
自动化测试的实施成本,可以通过计算公式进行评估:自动化实施成本=前期开发成本+后期的维护成本
其中,前期开发成本主要包含如下内容:
- 人力成本:和自动化开发人员相关的费用成本。
- 时间成本:自动化准备时间、开发时间、调试时间的成本
- 金钱成本:工具购买、开发、维护的费用成本。
影响后期维护成本的是: - 产品变更引起的自动化测试脚本变更的成本
- 定位、修复自动化运行环境的可靠性问题的成本
- 定位、修复自动化运行环境引起的脚本的健壮性问题的成本
- 其他任何未知的引起测试脚本变更的因素引发的成本
2.自动化测试的运行次数
自动化测试的运行次数是指在自动化测试脚本的生命周期内,这个脚本能够被执行的次数。显然,自动化测试的收益和自动化测试运行的次数是成正比的,脚本能够被运行得越多,自动化测试的收益才会越高。
3.自动化测试实施成本比
自动化测试实施成本比的计算公式如下:
p=(k x n) / (c1 + c2)
k:手工执行自动化用例所花费的时间成本;
n:自动化测试用例执行的次数;
c1:花费在自动化测试前期的成本(时间成本+人力成本+金钱成本);
c2:花费在自动化测试后期的成本(时间成本+人力成本+金钱成本)。