1、分层的自动化测试
所谓传统的自动化测试我们可以理解为基于产品UI层的自动化测试,它是将黑盒功能测试转化为由程序或工具执行的一种自动化测试。分层自动化测试提倡的是从黑盒(UI)单层到黑白盒多层的自动化测试体系,从全面黑盒自动化测试到对系统的不同层次进行自动化测试。即UI界面层(UI自动化测试,js自动化测试)、业务逻辑层(集成接口测试,web接口测试)、数据处理层(模块/单元测试)
1.1单元测试与模块测试
单元测试是应用程序的最小可测试部分;在面向过程编程中,单元也可以是整个模块,但常见的是单个函数或过程;在面向对象编程中,单元通常是整个接口,例如类,但可以是单独的方法;单元测试多数情况下是由程序员自己完成的。
模块测试是针对具有明显功能特征的代码块进行的测试;模块测试多数情况下由其他程序员或测试人员进行。
单元测试更强调的是程序的最小可测试单元;而模块测试更强调被测试程序功能的完整性。
2、接口测试
接口大致分为两类:程序接口(也可以看作是程序模块接口,具体到程序中一般就是提供了输入输出的类、方法或函数,一般需要使用与开发程序接口相同的语言)和协议接口(一般是指系统通过不同的协议提供的接口,这种类型的接口对底层代码做了封装,通过协议的方式对外提供调用,不受语言的限制)
接口的分类
2.1系统与系统之间的接口(系统A><B)
系统与系统之间的接口,既可以是公司内部不同系统之间调用的接口,也可以是不同公司不同系统之间调用的接口。对于后者,如微信、微博所提供的第三方登录接口
2.2下层服务队上层服务的接口(XX系统。应用层><service><DB)
应用层,可以认为是系统所提供的UI层功能,对于web系统来说,就是浏览器页面上所提供的功能,如登录,注册,查询,删除等。
service层,可以理解为服务器所提供数据的处理。
DB层,数据库主要用来存放数据,例如用户的个人信息、商品的信息等等
举例说明:应用层实现一个用户查询的功能,需要用户输入查询的关键字,并显示查询结果。当用户使用查询功能时,首先底层调用service层所提供的查询接口,查询接口得到应用层调用的查询数据;然后再通过DAO访问数据库,根据用户输入的查询数据,查询数据库中的数据;最后,将查询到的数据库数据返回给应用层,用户在应用层看到查询结果。
在这个过程中,各层之间的交互就是通过接口,应用层与service主要通过HTTP接口。service层与DB层主要通过DAO(Data Access Object)数据库访问接口。
2.3系统内部,服务与服务之间的调用(XX系统。service><service><service)
系统内部,服务与服务之间的调用,大多数情况下是指程序之间的调用。
举例说明:假设系统开发一个用户查询接口,输入用户名,返回用户信息(性别、年龄、手机号、邮箱地址等),如果用户不存在则返回null。现在需要新开发一个用户抽奖的接口,该接口需要用户名和抽奖活动id,抽奖接口得到用户名后可以调用用户查询接口,如果用户查询接口返回null,那么抽奖接口就可以直接返回用户不存在了。在这个例子中,用户抽奖接口调用的就是用户查询接口。
这里的用户查询接口和抽奖接口本质上就是程序开发的函数或方法,提供入参与返回值
3、编程语言中的interface
接口在java中是指一个抽象类型,是抽象方法的集合,一个类通过继承接口的方式,从而来继承接口的抽象方法。
接口并不是类。类描述对象的属性和方法。接口则包含类要实现的方法。接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。(先创建一个接口,接口内有方法;新建一个类继承接口,将方法内传值;实例化类)
一般所研究的接口测试为2,而并不是interface