自动化测试是指将人为驱动的测试行为转化为机器执行的过程。实际上,自动化测试经常使用一些测试工具或框架来编写自动化测试脚本来模拟手动测试的过程。例如,在项目迭代过程中,持续回归测试是一项非常枯燥且重复的任务,测试人员每天都在从事重复性的任务,工作效率低。此时,如果进行自动化测试,可以帮助测试人员从重复枯燥的手动测试中解放出来,提高测试效率,缩短回归测试时间。
在测试行业里面,很多情况下就是“为了做自动化测试而去做自动化测试”这就是典型的本末倒置。无论你在测试的过程中采取什么样的方案和手段,核心都是为了业务去服务的,脱离业务,手段再厉害也没有用。
关于认知层面的问题:
1、不清楚自动化测试目标是什么,对于达到目标所要进行的投入也没有计划;
2、盲目幻想,认为自动化测试能够省钱,想着搞起来自动化,省掉多少多少人力成本;
3、自动化测试如果做的成功的话,是可以节省成本和提高产品质量,但是却把节省人力成本当做核心目标,这样的对于项目来说是致命的;4、自动化测试写好一次,能够用很多次,没有必要花很多时间去改代码。
简单的说一下,如果有这种情况出现,说明你遇到了一个啥也不懂外加异想天开的领导。
但是作为测试者,对于自动化的认知一样存在很多的误区,尤其是刚开始做的时候,既不能认为自动化能够搞定一切,也不能认为自动化很费时费力,需要具体情况具体对待。
当然不可否认的是,自动化测试是存在它本身的局限性的。
客观存在的局限性:
1、对于工具而言,是不具备想象力的,一些例如思考、界面、美观、易用性的测试,自动化测试会有些无能为力;
2、效率较为依赖用例设计,同时用例的开发工作量有时会比手工测试的工作量要大;
3、如果测试的实践经验比较缺乏,文档少或者不一致,测试发现缺陷的能力也是比较差,这个时候采用自动化测试也是不太好;
4、对于客户而言,会潜意识期待自动化能够解决遇到的所有问题;另外要认识到,测试没法发现问题,不代表软件没有缺陷,或者测试本身就有问题;
5、开发那边改一个小小的需求,测试这边要对部分或者全部进行测试,自动化也是一样。这方面的开销或者耗费会打消做测试自动化的积极性;
6、如果期待自动化去发现大量新的缺陷,这不现实,更大的意义在于用在重复已经运行过的测试。