经常说到自动化测试,其实很多同学都是泛泛而谈,给它披上了一个神秘的面纱!
自动化测试分层
其实,自动化测试也是有不同分层的,针对不同分层需要选择合适的测试方法/工具,设计合适、准确的自动化测试用例。在具体的测试任务上才能有的放矢,做有价值和有意义的自动化!
自动化测试按照层级大致可以进行如下划分:从下往上,分别是Unit(单元测试)、Service(接口测试)、UI(界面测试)。
对于单元测试,对外部依赖比较少,单元测试的好坏,一定程度能够保证保证整个系统的完整性。它是自动化测试最下面的一层。例如,在Java里面,有JUnit测试,testNG等。单元测试其实可以理解为就是白盒测试,因为输入和输出都是固定了的。
往上一层是Service,也是常说的接口测试。
经常会遇到这样的情况,我们现在有一个项目,开发了一个旅游平台,要对接合作方的语音介绍,用于介绍景点的的信息,这个怎么办呢?云介绍由合作方提供,收费的,那怎么收费呢,每次我这儿收了客户费之后呢,哎,我通过。我的用户账户登录的平台上面,把语音展现出来,这个过程中呢,其实是涉及到一个接口:把个人账户和要调取哪个景区的具体景点的信息获取过来。然后展现在我的平台上,提供给我的用户使用。这就是旅游平台系统和外部系统之间的对接,所以,在接口测试里面,其实分成两个部分,一个是平台内部系统,一个是外部系统。
另外,对于同一个系统不同模块之间的,也叫做接口测试。这涉及到程序开发过程中对系统结构的划分,不同模块与不同模块之间也是相互独立,清晰调度。了解这个逻辑关系相对单元测试来说,接口测试对外界依赖更多一些。比如,常见的两个模块:登录和注册。登录流程和注册流程就是两个独立的过程,封装为独立的模块,并相互对外提供接口,这样,两个模块可以独立开发,相应的,对二者接口的测试就需要用到接口测试!
接口测试往往是必须的,是整个大的测试之前,可以先做接口测试,保证后续的工作能够正常开展。现在,其实好多接口测试,开发在做,其实这也是测试同学的分内工作,也可以去做的。
再往上一层,就是UI测试,也称之为界面测试。界面测试是最常见的黑盒自动化测试场景,它比较接近用户的真实操作场景,比较容易发现问题,成本相对比较低。但是受外部的影响较大,相应的自动化测试工具也十分多。
自动化测试层级意义
基于以上三层,具体每层对应什么样的业务逻辑呢?看看我给到的如下对应关系,将分层与具体的测试概念对应起来:
上图中,左边是分层依据,右边展开了具体的测试工作。从左边来看,UI层对应的界面层;Service层对应业务逻辑;Unit对应数据处理。右边来看,Unit包括Code Review、单元测试等,Service包括模块接口测试,Web接口测试,而UI包括UI自动化,JS自动化等。
结语
没有深入认识自动化测试之前,你对自动化测试始终停留在概念上,实际应用中,你无从下手。深入自动化测试,将其拆解开来,针对不同层次,不同分类选择不同的测试工具/方法才能更有效地进行自动化测试。好了,看完本篇文章,希望大家能够学到更多的自动化测试相关概念知识,给身边茫茫然的同学也剖析剖析吧!