什么是自动化测试?
通过编写或者记录脚本来模拟手工测试执行,然后回放或者执行脚本代替人工执行的过程就叫自动化测试
那又为什么要做自动化测试呢?
从个人方面来说:目前各个公司对手工测试人员的需求锐减,而对于高技术测试人员的需求速增,掌握一定的自动化技术能更有竞争力,这也并不是说手工测试要被完全替代,手工测试目前看来还不能完全被替代,但是入职几年就会遇到瓶颈,测试人员突破瓶颈,提升自身的技能,自动化是一个很好地方向。
从项目维度来说:项目的快速迭代,对测试时间要求的越来越紧,但是对质量却一如既往的高要求,自动化测试是解决时间与质量冲突的一个好的办法,特别是针对一些重复性特别高的工作,自动化测试更加省时省力可靠性高,因为机器不像人一样存在肉眼识别,你告诉他应该是什么,他就会做出相应的判断,可靠性相对较高
既然自动化测试这么好,是不是所有项目都适合做自动化测试呢?答案当然是否定的
什么项目适合做自动化测试?
首先是否适合做自动化测试最重要的衡量标准就是投入和产出比,简单来说就是投入做自动化的时间和自动化执行为你节省的时间的一个比例,如果你投入1个月去做自动化,发现他只能帮你节省1个星期的测试时间,这种就是亏本的买卖做不得。
举个例子,如果一个一次性项目,项目周期短,他是不适合做自动化的,首先它的复用性不和要求,再次由于自动化测试需求的确定、自动化测试框架的设计、测试脚本的编写与调试均需要相当长的时间来完成。这样的过程本身就是一个测试软件的开发过程,需要较长的时间来完成。如果项目的周期比较短,没有足够的时间去支持这样一个过程,那么自动化测试便成为笑谈。
还有像那种前端系统UI频繁变更,不适合UI自动化测试,维护成本太高,远远超过了手工执行的成本,这种自动化毫无意义。
自动化测试脚本必须要可重复使用,如果编写了大批量的不易维护的自动化测试脚本,在项目架构升级后,这些脚本就全部变成了无用的垃圾脚本,耗时耗力,得不偿失。
个人认为接口相比UI更合适做自动化测试,而且较为契合目前中台的定位。