对象层在这一层中,要将元素名与测试内部对象名独立出来。界面对象映射脚本实现界面对象逻辑名与被测试软件真实界面对象之间的映射关联。界面对象映射脚本是自动化测试的关键,它可以使测试工程师和自动化测试脚本开发工程师进行工作分工,实现测试开发与软件开发的同步。在软件需求确定后,测试工程师就可以开发测试脚本;而自动化工程师根据与测试工程师约定的界面对象的逻辑名来编写测试脚本。最后,测试工程师开发的测试脚本与自动化工程师开发的测试脚本通过界面对象映射脚本关联成一个有机的自动化测试脚本集。
事件层事件层主要实施一些常用的测试操作,如文本内容录入、菜单选中、列表框内容选择、按钮单击、预期输出结果验证等。它是和对象相互对应的,每一个对象都应该有自己的事件集合。对常用的软件使用操作,可以针对每个类型控件设计一个通用脚本,控件识别 ID 和相关联操作(单击、输入、选中等)作为该脚本的输入参数。对测试预期结果验证也可以使用类似的方法设计针对特定控件的验证脚本,不同之处在于其输入参数是验证的属性和验证结果值。由于所有软件的使用和测试都是这些基本操作的组合,因而在不同的项目之间,重用脚本是一致的。不同的是测试所使用的测试数据从不同的数据文件内读取,因此,这些脚本可以在不同的项目中实施共享,实现一次编写,多处共享,减少脚本的数量,从而降低脚本的维护工作量。同时要将数据分离出来,数据可以来自文件或者自动生成。因此要在事件层中为数据的输入和输出提供接口。
脚本层测试脚本实施对特定功能点和业务功能的测试。是一种针对特定的、被测试软件项目的脚本。其主要功能包括:从测试数据文件内读取测试数据。调用重用脚本和对象映射脚本将这些数据输入到被测试软件的特定对象中。并验证测试结果与预期输出的一致性。记录 Log 和 Bug 现象。它是由重用脚本依据一定的业务流程和特定操作流程组成。
在同一 GUI 界面的控件之间或不同界面的控件之间,都有可能存在一些相互关联,相互依赖的关系,称为 GUI 控件依赖关系。依赖关系在具体表现形式为:一个控件的执行是另一控件执行的结果或者导致了另一控件的执行。例如,本来菜单项是不可操作的,对界面上某一个 GUI 控件操作后,激活了菜单项。
控件之间的关联关系是通过用户和控件的交互或控件之间的消息而激发的。而想要从 GUI 软件界面中直接获得控件之间的依赖关系是不实际的,并且很难保证正确性和完整性。因此,在实现时往往需要根据系统的需求和软件设计说明书,人工进行调整。为了方便确定控件之间的关联关系,根据各个控件的类型特点,大致可把控件分为下面两类:
行为控件 如界面上的菜单,按钮等控件,用户与之交互会触发某些事件。
信息控件 如文本框,编辑框等控件,它们可以接受用户的输入数据或根据某些控件条件输出数据。
一般来说,行为控件的执行和一个或多个信息控件相依赖,信息控件为行为控件的执行提供输入或输出数据。