分层测试架构

一、分层软件结构

微服务可以算是一种分层架构,相对于未分层的架构具有如下优势:

(1)分离开发人员的关注:层次结构中,各层是相对独立的,每一层仅调用其相邻下一层所提供的服务,开发人员只需要将本层API和相邻下一层的API定义完整即可,其他层可以不进行关注。开发人员在开发某一层时,可以只关注于这一层所用的思想、模式、技术,这种分工方式极大地提高了开发效率

(2)无损替换:由于每一层 是相对独立的,在上下层出现问题时,只需对相应的层次进行快速的替换即可,软件的损失会降到最低。

(3)降低了系统间的依赖:微服务是低耦合的

弊端:

(1)级联修改问题:当前层次接口的修改,对应相邻层次需要跟着修改,虽然这种情况在现实开发中基本不会出现,但作为弊端要求设计者开始设计阶段对整个框架应考虑周全。

(2)性能问题:如果没有分层结构,整个软件的操作速度相对会很快,由于各层的层次性使得信息需要层层传递,这一过程对性能性能的损耗还是比较大的。

二、自动化测试框架结构设计:

1、自动化测试功能层:

(1)Action Word简介:

它是一种业务的抽象,比如测试用例里的测试步骤、检查验证、消息序列等等,它的格式通常包含名自定义和参数部分,它的形式非常像我们编程语言中的过程定义。

AW的格式一般为:AWname 必选参数 可选参数。其中名字自定义用于描述测试步骤的动作或事件,参数部分用于描述动作需要用到的对象。在测试功能层AW主要具有以下作用:

a) 测试设计的改进

b) 测试执行的改进

c) 测试流程的改良

d) 测试角色的分工与合作

2、自动化测试执行层:

执行层功能主要用于执行测试所用到的测试用例,并且调用相关AW,执行层比较常见的采用脚本语言解释器,如Perl,Python,Ruby等

执行层负责解释执行指定的测试策略和测试用例,分发、加载、执行AW。执行层包括控制器、执行器。主要功能:解释执行策略、解释测试用例、负责AW分发、加载AW实现和执行AW实现。

3、自动化测试用例层:

自动化测试用例主要面向测试业务,通过自动化测试技术去表达测试、测试套、测试日志、测试报告。自动化用例指的是AW描述的可以自动执行的用例,无需测试执行人员进行手工执行。测试开发过程中为了提高用例执行效率,通常使用自动化测试套。自动化测试套是按照统一测试场景组织到一起的一组测试用例集合。

a) 自动化用例设计要素:

预置条件:
测试步骤:使用AW描述,包括执行的测试步骤以及检查步骤(动态比较或者执行后比较),它们一般分为两个独立的AW描述
后置条件:清除测试用例执行后留下的状态,恢复到初始的干净状态。
异常处理:捕捉异常,记录错误,不影响后续测试用例的执行。

4、自动化测试功能层设计:

实际过程中,AW的设计至关重要,AW设计的好坏直接关系到自动化 的产出,AW设计就是系统的重新抽象。可以利用分层结构的思想对功能层进行优化,将AW分为几类:

AW1(底层),AW2(中层),AW3(高层),指示AW,这四层层层封装,使用过程中只允许上层调用下层。

通常情况下,指示AW主要起测试控制作用,AW3是基于业务的,AW2是被测试对象的全部或一部分的接口抽象,也可以叫做BW,AW1定位为更底层的适配器或者基础操作,也可以叫做CW。AW3一般由自动化测试工程师开发即可,BW和CW则需要由更高水平的测试或开发人员开发。

(1)低层AW :主要与被测系统的接口相关,负责跟驱动层的各个驱动实体交互,该层AW一般在工具开发过程中都会提供给自动化测试工具使用者。

比如:IO类、比较类、协作类等

(2)中高层AW:

中高层AW主要面向SUT的各功能,通过分析、提取、合并测试执行步骤、测试检查方式等而成,它是测试用例的最小单元,一般由以下两点设计原则:

针对SUT的每个功能点,在考虑测试中相关执行步骤和检查方式的基础之上,采用自顶向下,逐步求精的方法,逐步将AW分解为最小执行单元
将分析提取后功能相似的AW进行合并提高AW的可重用性。
(3)指示AW:

指示层AW与被测系统无关,主要是对测试进行控制。因此它与自动化用例也无关。

你可能感兴趣的:(测试)