序言:上篇文章说的“自动化例行测试有效性策略”,在又一次进行例行测试的时候,安排了一个不懂脚本的测试人员进行了例行测试操作,结果这是最迅速的一次,而且还发现了一些产品问题,效果不错,验证发现,其有效性还是得到了一些提高。所以说,有时候,做自动化测试很害怕的是“完美主义”与“盲目主义”,局限于一些误区,所以一定要以“测试价值”为导向,不时的跳出来看一看其自动化测试的应用价值是不是进入了误区。这次,对一些不同的自动化测试方式的应用进行了策略分析,不同的自动化测试方式应用不同的场景,不管如何应用,提高效率则是最佳应用。
一、自动化几种测试方式
这次,自动化测试几种方式,我暂时按测试类型分成:
1、界面自动化测试
C/S架构(或者桌面类型)界面自动化测试:包括桌面界面测试类型,当然有windows方面的软件界面、跑在windows操作系统上的虚拟机方式的界面,例如java swing。前者采取的方式可以调用操作系统本身的API来构建自动化测试、后者可以采用虚拟机内的事件处理机制来完成了。
B/S架构(或者web类型)界面自动化测试:其实现原理之一可以依靠JS来进行客户端的操作,然后寻找对象是采用了DOM解析技术,将web方面的节点进行解析定位。
手机方面(嵌入式产品)界面自动化测试:其实现原理之一也是可以依靠其相关系统提供的API来完成。例如:安卓的monkey就是安卓提供的一个提供动作操作的一个工具。
2、命令行自动化测试
CLI自动化测试:即嵌入式的产品很都基于嵌入式操作系统完成,例如:电信产品中的ciso路由器就是最早的代表,而系统测试人员的测试大都应用命令行进行测试,所以,其自动化测试实现可以基于CLI的脚本控制实现。当然,对数据库SQL命令行的操作也可以归为此类。
3、API自动化测试
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节,其实就是软件中的封装性的思想。个人认为,API测试是用来验证组成软件的那些单个方法的正确性,其可以包括为单元测试、单个组件测试以及接口测试。一者是对单个模块功能测试、另外一者是对测试系统组件间接口的一种测试。但本质上都是调用其API来验证相应相应功能实现或者交互。
二、自动化测试不同方式策略分析
以前总在思考如何能够最大化的应用界面自动化测试与CLI自动化测试或者API自动化测试的不同特点去实现各自的自动化测试最大利用率:
1、界面自动化测试的特点在于:
1)操作方式复杂,需模拟出不同的手工操作。
2)其界面元素结构层次变动性较大。