什么是自动化?
编写软件去测试其他软件
编写驱动被测试应用程序的测试脚本以执行键盘、鼠标动作和后台进程并验证应用程序响应和行为。
手工测试的局限性
无法做到覆盖所有代码路径
机械、重复,工作量大
许多与时序、死锁、资源冲突、多线程等有关的错误,通过手工测试很难捕捉到
进行负载、性能测试,很难通过手工测试模拟大量数据或大量并发用户
可靠性测试时,常需要模拟系统运行10年、几十年,以验证稳定性,这也是手工测试无法做到的
如果有大量(几千)的测试用例,需要在短时间内(1天)完成,手工测试几乎不可能做到
为什么要做自动化?
1、减少手工测试中的重复性工作,提高测试人员的工作成就感和幸福感
2、提高测试用例的执行效率,实现快速的自动化回归测试,快速的给予开发团队质量反馈
3、减少测试人员的数量,提高开发和测试的比例,节省企业的人力成本
4、在线产品的运行状态监控
5、插入大量的测试数据
6、发现更多的BUG
是否合适做自动化?
时间(功能测试都做不完)
人员(初级的测试工程师)
系统(页面元素经常变,需求经常变不适合做,意义不大)
领导(领导推荐不推荐)
什么情况下做自动化?
自动化测试不可能完全代替手工测试 在功能逻辑测试、适用性测试、涉及物理交互性测试时,多采用黑盒测试的手工测试方法
单元测试、集成测试、负载测试、性能测试、稳定性测试、可靠性测试等较适合自动化
什么样的项目需要做自动化?
需求变更慢
周期长
脚本可重复利用
产品型项目:每个项目只改进少量的功能,但每个项目必须反反复复的测试那些没有改动过的功能
(结合公司的状况,迭代周期太短,时间不够,除非有专人做,写脚本费时)
解析:如果说你花一个月开发自动化系统,但脚本只针对这个系统,如果下一个系统做自动化,脚本又要重新写,成本就会较高,重复利用率较低
关于接口自动化测试
接口测试分单接口测试和联合接口测试
单接口测试关注以下信息:
1、响应状态
2、响应时间
3、请求数据格式:协议、编码、字段
4、响应数据格式:编码、字段
联合接口测试关注多个接口组合特定业务场景测试;
在打算实施接口自动化后,需要解决如下几个问题
1、接口自动化要测试哪些接口,我们要怎么测试这些接口,每个接口需要分别覆盖什么?
2、工欲善其事必先利其器,接口自动化测试如何选型工具?很多工具都具有接口测试功能,如何挑选工具
3、如何做到持续集成?
最后想问下:大家觉得UI自动化测试和接口测试哪一个更加重要?哪一个更易于维护?