一种非侵入的gui自动化测试系统设计

上传人:小** 文档编号:34089650 上传时间:2018-02-20 格式:DOC 页数:11 大小:86.50KB
返回 下载 相关 举报
一种非侵入的gui自动化测试系统设计_第1页
第1页 / 共11页
一种非侵入的gui自动化测试系统设计_第2页
第2页 / 共11页
一种非侵入的gui自动化测试系统设计_第3页
第3页 / 共11页
一种非侵入的gui自动化测试系统设计_第4页
第4页 / 共11页
一种非侵入的gui自动化测试系统设计_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《一种非侵入的gui自动化测试系统设计》由会员分享,可在线阅读,更多相关《一种非侵入的gui自动化测试系统设计(11页珍藏版)》请在金锄头文库上搜索。

1、一种非侵入的 GUI 自动化测试系统设计 吴立金 韩新宇 张凯 唐龙利 中国船舶工业综合技术经济研究院 摘 要: 针对嵌入式 GUI 软件自动化测试, 提出一种非侵入的 GUI 自动化测试系统设计方案, 能够使用 Python 格式的测试脚本灵活描述测试用例的执行步骤, 能够自动化执行测试脚本;系统将人机交互步骤转成鼠标键盘模拟设备的控制命令, 实现对被测软件鼠标键盘的控制, 从而输入需要的人机交互信息, 实现测试用例的自动执行;同时以不干扰被测系统为原则, 直接采集被测系统输出到显示器中的视频数据, 通过对图像数据的处理进行图像对比、图像查找和文字识别, 根据测试用例预期输出自动判断用例的执

2、行结果;该测试系统解决了嵌入式软件GUI 自动化测试的难题, 提高了测试效率。关键词: 嵌入式; 图形用户界面; 自动化测试; 测试脚本; 作者简介:吴立金 (1987-) , 男, 山东人, 工程师, 主要从事软件可靠性与软件测试方向的研究。收稿日期:2017-06-13Design of Non-Intrusive GUI Automated Test SystemWu Lijin Han XinYu Zhang Kai Tang Longli China Institute of Marine Technology Abstract: To solve the problem of th

3、e automatic testing of embedded GUI software, this paper proposes a non-intrusive GUI automatic test system, which can convert the execution steps of test cases into Python test script.The human-computer interaction is transformed into the control instruction of mouse and keyboard simulation equipme

4、nt to enter the required human-computer information, so that the test case execution is carried out.At the same time, in the principle of not interfering with the tested system, the output video data of the tested system is collected directly, and the result of the test case is determined automatica

5、lly according to the expected output through the image data processing algorithm such as image comparison, image search and text recognition.The test system can improve the test efficiency.Keyword: embedded software; GUI; automatic test; test script; Received: 2017-06-130 引言目前, 普通 GUI 测试框架常常需要与被测软件运

6、行在同一系统, 对资源消耗巨大, 不适合嵌入式软件轻型、占用资源少、高性能、高可靠性、便于移植等特点。如何针对嵌入式软件 GUI, 开展自动化测试, 在自动化测试领域中是一项技术难点。为此, 本文设计了一种新型嵌入式 GUI 自动化测试系统, 不涉及对代码的修改, 同时完成对嵌入式运行过程的实时跟踪, 能够实现无侵入式的进行嵌入式 GUI 自动化测试, 避免了现存嵌入式 GUI 自动化测试技术的瓶颈。本测试系统综合应用了 GUI 信息捕获、图像识别、人机交互以及测试自动控制等技术。1) GUI 信息捕获、图像识别、人机交互解决的问题往往不是软件测试, 而是其他领域, 本系统创造性的将其应用到嵌

7、入式软件 GUI 自动化仿真测试技术;2) 人机交互上, 设计了一种鼠标键盘通用模拟设备, 同时模拟 USB 鼠标、USB 键盘和 PS/2 鼠标、PS/2 键盘;3) 将图像识别领域中的 OCR、快速模板匹配算法封装成适用于 GUI 测试领域中的文字识别函数、图像对比函数、图像查找函数, 用于测试结果判断, 进行应用创新。本文从功能设计、硬件设计、软件架构设计、软件界面设计、业务流程设计等方面对提出的一种非侵入的 GUI 自动化测试系统进行描述。1 功能设计1.1 测试工程管理需求测试工程管理功能包括:1) 测试工程的新建, 测试工程提供相应的描述;2) 测试工程的保存, 测试工程保存在 M

8、ySQL 数据库中;3) 测试工程的删除, 将测试工程从 MySQL 数据库中删除, 相关的其他内容也随之删除;4) 一个测试工程中可以包含多个被测设备, 能够添加和删除设备;5) 测试工程管理的内容包括被测设备、测试脚本、调度脚本、以及测试结果。1.2 图像信息管理需求图像信息管理系统主要实现以一定周期的频率对视频采集系统提供的视频信息进行图像截取和存储管理, 为图像信息识别提供数据源, 同时保证测试过程的历史证据。其主要功能有:1.2.1 图像信息采集1) 图像的主要来源是嵌入式软件视频采集系统, 保存图像的格式可由用户选择, 包括 jpg 和 bmp, 用户可以根据需要自行选择;2) 能

9、够通过与嵌入式软件视频采集系统的接口直接将实时采集的图像信息添加到本系统;3) 能够通过与嵌入式软件视频采集系统的接口预览当前采集的图像;4) 从视频采集卡采集图像添加到本系统, 并自动命名, 名称由项目和时间标签信息构成;5) 从嵌入式软件视频采集系统接口采集并添加到本系统的图像可在添加过程中修改名称;6) 能够对视频采集实时显示进行控制, 包括开始、停止;7) 对视频采集频率为 20 帧/秒采集频率的设置;8) 视频采集输入接口支持 VGA 和 DVI 视频的采集。1.2.2 图像保存1) 将截取的图像保存到数据库中作为基准图像;2) 支持从本地文件夹导入图像;3) 从本地导入的图像自动以

10、原始文件名命名;4) 添加到本系统的文件在本系统的命名必须唯一;5) 添加图像自动命名时出现文件名重复则自动提示修改文件名。1.2.3 图像信息浏览1) 能够通过与数据库接口浏览所采集的历史图像;2) 能够浏览添加到本系统的所有图像;3) 浏览图像时以文件名称为列表;4) 浏览图像时能够生成图像信息预览;5) 浏览图像可在新视图中打开该图像进行详细浏览或修改。1.2.4 图像删除1) 支持图像的删除;2) 能够对图像进行批量删除。1.3 测试用例转换需求本系统中测试用例以 Python 脚本形式表示。测试用例转换主要是把按体系文件或国军标要求编写的测试用例通过一定的规则转换成本系统能够识别的

11、Python脚本。1.3.1 测试脚本管理需求1) 能够新建和删除测试脚本;2) 能够对测试脚本重命名测试脚本;3) 能够支持对脚本的说明;4) 支持对脚本的复制, 复制后的脚本以“复件”+“原名称”命名, 脚本包含原内容;5) 支持测试脚本与调度脚本两种脚本, 调度脚本将每个测试脚本视为一个对象, 在调度脚本中 run 一个脚本, 相应的脚本便运行。1.3.2 脚本函数自动生成1) 对基准图像拖拉鼠标选中需要识别的区域, 获取区域位置, 选择的生成函数, 会自动生成图像对比函数, 图像查找函数以及 OCR 函数;2) 在实时采集的图像中, 自动获取鼠标的位置的像素坐标, 点击鼠标, 自动生成

12、鼠标移动与点击的函数。1.3.3 文本编辑1) 文本编辑, 支持复制、粘贴、剪切、删除、撤销功能, 行定位脚本编辑环境可显式的显示出脚本行号;支持添加/删除断点;2) 支持设置关键字亮显;3) 支持单行和多行注释以及自动缩进;4) 在脚本编辑界面, 每当按下“.”键, 自动出现关键字索引列表, 给出相应的关键字函数, 函数后面有相应的注释, 根据注释在函数中输入测试数据参数, 是利用脚本关键字的自动输入;5) 支持脚本的调度编辑。1.4 测试脚本执行需求解析脚本的关键字和参数, 将解析的关键和参数传递给脚本的驱动。协同管理视频信息采集系统、图像信息管理系统、图像信息特征识别系统和键盘鼠标模拟系

13、统的工作, 将控制命令下发到各个系统中。人机交互命令发送到键盘鼠标模拟系统中, 由键盘鼠标模拟系统对被测件进行人机交互输入。功能包括:执行某个脚本;等待指定的时间;保存结果到数据库;支持添加断点与删除断点以及调试功能。其中, 键盘和鼠标指令执行由键盘鼠标模拟模块提供支持, 图像比对、字符识别等相关指令由图像信息特征识别模块提供支持。1.5 键盘鼠标模拟需求键盘和鼠标模拟系统主要模拟键盘和鼠标与计算机系统交互的信息, 将 GUI 测试执行管理系统发出的人机交互指令转换成被测软件的鼠标键盘控制信号输出, 控制被测件的鼠标、键盘人机交互操作, 包括 USB 和 PS2 两种形式。具体功能包括:1)

14、鼠标控制:在执行测试用例时, 根据人机交互需要, GUI 测试执行管理系统将鼠标控制命令下发到键盘鼠标模拟系统, 由模拟系统功能对该命令进行解析实现对被测软件鼠标的控制。(1) 鼠标左右键按下或弹起;(2) 鼠标移动到某一像素坐标;(3) 鼠标相对移动, 先横向移动, 在纵向移动;(4) 鼠标左右键点击。2) 键盘控制:在执行测试用例时, 根据人机交互需要, GUI 测试执行管理系统将需要向被测件输入的信息内容和位置信息发送到键盘鼠标模拟系统, 由模拟系统解析后输入到被测件界面的相应位置。1.6 图像信息特征识别需求图像信息特征识别系统主要实现对嵌入式软件人机交互界面上的颜色、字符等信息进行识

15、别的功能。主要功能有:1) 图像比对:能够实时地比较视频中的各帧图像, 确定出变化的图像, 并将其进行标记存储, 用户可以设置图像变化的阈值。图像比对的实时性应与视频采集的实时性相同。2) 图像查找:能够在图像中查找目标图像, 包括目标图像的模糊查找, 即忽略目标图像大小, 仅通过纹理信息查找。目标图像必须为矩形区域, 支持在指定区域查找目标区域。支持多个目标图像的同时搜索, 即除了给出目标图像, 还需要描述目标图像之间的位置关系再进行查找。3) 文字识别:能够对嵌入式软件人机交互界面上显示的信息包括数字字符等进行识别将识别出的结果保存到本地。(1) 支持图像数字识别功能;(2) 支持图像英文

16、识别功能;(3) 支持 BMP 图片格式;(4) 支持用户指定区域的文字识别。1.7 测试结果信息管理测试结果比对和判断主要是根据图像信息识别系统的输出结果, 将该输出结果进行记录, 同时与测试用例的预期输出进行比较, 判断执行结果是否通过。需求包含如下:1) 脚本执行时每个步骤的运行状态信息;2) OCR 文字识别后的对比信息;3) 图像比较的信息, 包括图像对比、图像查找信息等;4) 一个测试脚本的测试结果以“脚本名称”+“时间”方式命名;5) 测试结果信息支持重命名和删除操作。脚本执行时每个步骤的运行状态信息在脚本执行时实时显示, OCR 文字对比, 图像对比以及其他信息通过测试结果管理进行显示。2 硬件设计2.1 平台构成设计硬件由以下几部分组成:1) GUI 自动化测试计算机 1 台, 使用 windowsXP 系统, 部署 MySQL 数据库和一体化的嵌入式软件 GUI 自动化测试平台软件。2) 视频分屏器 1 台, 将被测件显示的视频进行分频。3) 视频采集卡 1 套, 支持 VGA 和 DVI 两种制式

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 管理论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号