PC自动化测试平台系统

1. 技术领域

软件测试,自动化测试,软件工程。

2. 背景技术

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测

试用例并通过评审之后,由测试人员根据测试用例中描述的步骤一步步执行测试,得到

实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试

效率,便引入了自动化测试的概念。

自动化测试与软件开发过程从本质上来讲是一样的,是利用自动化测试工具(相当于软件开发工具),经过对测试需求的分析(软件过程中的需求分析),设计出自动化测试用例(软件过程中的需求规格),从而搭建自动化测试的框架(软件过程中的概要设计),设计与编写自动化脚本(详细设计与编码),测试脚本的正确性,从而完成该套测试脚本(即主要功能为测试的应用软件)。

自动化测试脚本的开发一般有两种方法,一种是通过手工运行一次测试,同时使用自动化测试工具的录制功能,把所进行的操作记录下来,生成测试脚本。这种技术生成的脚本回放成功率比较低,后期维护也比较困难。 第二种方法是编写测试框架,对测试需要的基础操作提供接口供调用,测试人员根据用例操作需求,手工编写调用接口的自动化测试脚本,这种方法对测试人员的代码水平要求很高。

现有方案一及其缺陷:

目前PC客户端自动化测试框架下,自动化脚本的开发和运维成本较大,用例脚本都需要一定代码基础的人员才能编写和维护。而且很难进一步降低成本。

3. 技术方案描述

要解决的技术问题:

  1. 功能测试人员无法编写和维护自动化用例脚本。

  2. PC自动化测试平台系统

2. 自动化测试框架或平台需要适应快速迭代的被测对象版本。

整体思路:

设计一个自动化测试平台,适合大部分PC客户端应用的基于用户界面的自动化测试。通过将自动化测试对象的识别、操作、验证等自动化测试过程中涉及到的所有内容都进行封装并提供关键字,自动化测试平台可以支持普通测试人员快速的定位测试对象,编写/维护用例脚本,执行脚本,查看测试结果。

技术方案:

1. PC客户端自动化测试平台功能概述:将代码实现的各种自动化底层功能进行抽象、封装后,将其包含的各种对象、方法等内容映射为关键字;功能测试人员可以通过组装关键字来编写用例脚本。下面是功能用例图:

PC客户端自动化测试平台用例图

2. 平台的各个功能模块:

3) 用例解析模块:功能包括用例脚本解析,脚本(伪码)的格式检查功能;

4) 用例执行模块:功能包括根据解析模块提供的解析结果,组织用例执行流程,执行单条/多条用例脚本;

5) 底层支撑模块:功能包括被测程序调起和管理、被测程序的GUI窗口、控件的识别、封装和关键字提供,以及其他自动化测试需要的真实代码封装。

6) 对象工厂:负责除了web界面外所有模块相关对象的构建和依赖关系的建立。

3. 平台各功能模块接口:

1) 用例脚本管理模块:需提供用例脚本管理接口IScriptManagment,以上定义的本模块功能,均在此接口上实现或扩展子接口。

2) 脚本解析模块:需提供用例解析接口IScriptParse,所有伪码解析功能均在此接口下实现。

3) 脚本执行模块:需提供用例执行程序,例如具体可以jar包方式,使用java web start的部署方式在平台web页面上调起。

4) 自动化支撑模块:需提供测试对象接口ITestObject(包括窗口、控件等,这些内容均继承该接口),测试帮助类接口ITestAssistant(包括模拟鼠标键盘操作等辅助性的功能),操作系统对象接口ISystemObject(包括系统文件、注册表、时间、环境变量等系统对象的方法)以及飞客户端应用程序用户接口IUser(提供对客户端应用程序用户和进程的各种操作);其中ITestObject、ISystemObject和IUser三个接口需要定义一个判断对象是否有效的静态方法,供伪码格式检查使用。

5) 平台web界面,界面分为两部分:1.根据各模块需求定义控件和布局;2.给各个web控件添加控制逻辑,此时需要IScriptManagment和IScriptParser的接口支持。

6) 对象工厂:提供获取所有接口对象的静态方法。以上所有功能模块,对依赖的其他模块的接口,均需要定义setter,由对象工厂在构造时传入依赖,实现依赖倒转。

4. 自动化测试平台各功能模块之间的依赖关系:

`

PC自动化测试平台系统

自动化测试平台模块UML图

4. 技术方案的关键点和保护点

1. 基于web界面的自动化测试平台

2. 完整的关键字驱动模式,所有测试相关内容都封装并映射为关键字

3. 测试用例脚本与底层代码完全隔离,版本升级后,用例修改只需改动用例脚本本身。

4. 自动化测试平台的脚本不采用现有的脚本语言,而定义简单的、适合自动化测试的文本格式规范,即使用“伪码”。


分享到:


相關文章: