什么是自动化测试
1.自动化测试定义:
把人对软件的测试行为转化为由机器执行测试行为的一种实践。
2.自动化测试的本质:
是写一段代码用于测试另一段代码。当用例的维护成本高于其节省的测试成本时,自动化测试就失去了价值与意义。
为什么要进行自动化,自动化可以解决的痛点
1.日常版本迭代的测试痛点:
i.每次都需要去手动回归之前的内容,来确保有没有影响到其他模块产生新的Bug,在产品迭代频率越来越快(敏捷开发)大环境下,需求就更强烈。
ii.自动化就可以去解决大量手工回归其他模块功能,把测试重点聚焦在相应版本的提测需求上,提高测试效率
2.产品的性能测试痛点:
i.通过获取产品的页面加载/响应时间、内存的占用率、高并发成功率、崩溃率次数等数据,可以很好反射出其性能
ii.这些数据也为RD去解决这些问题提供详细的数据支撑,缩短Bug的生命周期
3.AI线上的监控的痛点:
通过定时任务去自动对线上产品进行冒烟,大概率的提前发现问题,增加产品的稳定性,提高用户的信赖程度
4.提高高效测试的痛点:
i.利用无人值守时间频繁执行测试
ii.高效实现某些手工测试无法完成或者代价巨大的测试类型,如关键业务7x24小时持续运行的系统稳定性测试和高并发场景的压力测试
iii.最最重要的是可以优雅的去装逼
自动化测试的劣势
1.自动化成本高的诟病:
远比手工测试脆弱需要定期去维护、初期自动化测试用例开发效率低、自动化测试的开发工作量远大于单次手工测试 、测试的效率依赖自动化测试用例的设计及实现质量
2.自动化的实际产出效果差:
i.项目的主流程没有bug,而手工测试就是为了发现很多很多的bug(基本无法发现新问题)
ii.自动化效果需要执行脚本一段时间才能得出结果(自动化并不快)
什么样的项目适合自动化测试
1.需求稳定,不会频繁变更。
2.研发和维护周期长,需要频繁执行回归测试。
3.需要在多种平台上重复运行相同测试的场景。
4.某些测试项目通过手工测试无法实现或者手工成本太高:如性能和压力测试。
5.被测软件的开发较为规范,能够保证系统的可测试性。
6.测试人员已经具有一定的编程能力。
网友评论