关于图形用户界面自动化测试探讨

2017-07-07 11:13李岚
电子测试 2017年9期
关键词:图形界面图形用户界面测试工具

李岚

(达州职业技术学院,四川达州,635001)

关于图形用户界面自动化测试探讨

李岚

(达州职业技术学院,四川达州,635001)

图形用户界面是当前客户端软件开发常用的技术之一,而图形用户界面的测试是软件开发的重要过程,也是提升软件质量的重要保证,通过对图形用户界面测试的内容与测试流程进行分析,探究了图形用户界面自动测试的关键技术,为图形用户界面软件开发提供借鉴。

测试自动化;图形用户界面;测试脚本

0 引言

随着软件开发技术的发展,图形化的用户界面操作成为软件开发的重要组成部分,如何有效的保证图形用户自动化的运行,是软件开发需要解决的一个重要问题。在基于图形用户界面的系统开发中,就需要对程序开发过程进行严格的控制,但是基于图形界面的系统开发也变得越来越复杂,如果不能有效的对程序开发进行测试,就会在发布、实施与维护的过程中出现严重的问题,因此,基于图形用户界面自动化测试成为人们关注的重点问题。

1 图形用户界面测试内容分析

图形用户界面(Graphical User Interface)的测试是对图形软件的相关应用接口技术进行测试分析,保证测试对象是否能正确地接受键盘、鼠标操作,能够快速的对事件做出响应,并且能够保证用户与软件进行相应的逻辑交互,完成用户指定的操作功能。在对图形用户界面进行测试时,产品界面的各种响应情况都在测试之列,它与其他应用软件的测试有着明显的区别,而且对于图像界面软件的测试也比较复杂。GUI的测试包括功能性测试与可用性测试,图形用户界面测试需要注意如下几个方面。

GUI页面程序有很多状态转换,而且要求每一次测试都能够快速的响应,测试时需要每个细节都涉及到,要求根据图形页面的转换,能够自动的跳转,跳转页面的响应时间不能超过1s,而且要求测试的兼容性能够满足要求。

GUI页面输入和选择事件的排列组合数目巨大,存在一对多、多对多等复杂的路径,这样就会导致测试的页面跳转的路径也比复杂,可能出现随机性的问题也比较多,拥有非常多的执行路径,在页面跳转的执行过程也表复杂。

GUI软件接口依赖性很高,程序设计比较复杂,要求有正确性的指令,才能进行界面接口之间的跳转,一个状态的测试与操作,必须执行了相关操作才能进入下一个状态进行转换,这样才能完成相关的页面指令操作。如果不能正确的执行每一步操作就会影响整个图形界面软件的测试。

GUI状态的转换基于事件和消息过程也是一个比较复杂的过程,只有通过键盘输入、鼠标点击事件或者其他操作方式驱动GUI页面的转换,在这个过程中要求页面之间的链接路径必须正确,才有可能发生页面的转换,也可以通过发送系统消息驱动执行页面的跳转操作,但是这种操作具有的不确定性很大。

由于排列组合的无限事件问题,在具体的应用中往往会出现一些不可预测的问题,这对图形界面软件的测试影响是十分巨大的,对所有的事件测试是无法实现的,在测试的过程中,对重点的测试对进行测试分析。

图形用户界面(GUI)对软件测试的要求比较高,也提出了更高的挑战,在测试时要求能够全面、细致的进行测试,综合分析可能出现的问题。GUI组件的大量采用及重用,可以节省开发的时间,也使得图像界面能够更加贴近用户的使用习惯,但在测试的过程,往往会出现跳转不正确的问题。基于这些因素,使得图像界面的测试变得更加困难与难以执行,所以,在对图形用户界面进行测试时,需要根据图形界面的跳转情况,综合分析程序设计存在的问题。

2 图形用户界面自动化测试的流程

对于图形用户界面的自动化测试可以采用软件进行测试,能够自动的对测试数据进行收集,测试图形界面运行的脚本,在测试时只需要少数的人工就可以完成图形用户界面的测试工作,Web应用程序提供GUI部件的接口,在选择自动化测试软件之后,软件就会根据可测试的GUI部件命名、文件属性等信息进行显示,如果测试的图形界面文件发生变化,可以重新选择软件进行测试,并测试的顺序进行小范围的修改并保存。测试时,对测试的脚本设置好事件的序列,这样可以采用鼠标单击与键盘输入的方式进行测试操作。具体的测试流程如下图1所示。

图1 图形用户界面测试流程

(1)GUI控件支持函数库。GUI测试控件的功能就是支持自动化测试工具对图形界面软件进行测试,在测试的过程中可以采用鼠标、键盘进行操作,根据操作的方式选择后台函数的调用方式来完成测试的操作动作,并在测试过程中收集测试的GUI的名称、属性、动作、响应、位置信息等。GUI控件支持函数是自动测试的基础,是保证每一个GUI部件测试的前提条件。

(2)GUI部件搜索及指定事件序列。在对GUI进行测试时,需要提前获取GUI的属性、名称、特征与其他信息,这样测试工具才能有效的探测到GUI控件的基本属性特征。测试人员根据GUI的特征属性、名称等信息,制定自动化测试的事件序列,然后才能对GUI的脚本进行自动化测试。

(3)测试脚本封装生成。测试脚本是GUI测试的关键内容,它能够模拟用户在界面图形上进行的各种操作,以及能够分析用户在图形界面操作过程中的各种行为,在测试时,能够自动的搜索到GUI部件的信息与GUI事件之间的跳转信息,并对它们进行事件、动作、特征序列封装,然后采用自动化测试工具进行测试,根据指定事件的序列,然后生成自动化测试用例。

(4)测试脚本驱动。测试脚本驱动的主要功能是保证脚本能够正常运行,即能够保证开发的图形界面软件能够在测试软件的环境下运行,能够保证测试工具的执行器能够正常执行图形界面软件测试,由于已经定义了测试脚本的属性、名称、特征等信息,在测试的过程中,通过调用测试脚本的变量名称就可以分析测试的脚步特征属性。

(5)测试脚本解析执行。测试驱动是测试脚步与测试工具之间的桥梁,测试脚本在测试驱动的作用下运行,并对脚步进行测试,它能够解析测试脚本事件源的属性特征,根据指定的GUI部件序列实现测试界面的友好互动,执行测试用例,并能够将测试的结果输出,应该与用户界面图形上的操作相一致,这样就能够方便程序开发人员分析图形用户界面存在的问题。

3 图形用户界面自动化测试的相关技术

3.1 Win32 API函数开发GUI测试技术

在Win32 API中,包含了能够识别图形用户界面(GUI)的接口函数和测试工具,其中user32.dll是Win32 API编程常用函数之一,也是图形用户界面测试工具之一,它对图形用户界面进行调用的DLL,采用该动态链接库DLL就可以调用windows操作系统中的图形界面函数。API中包含了user32.dll动态链接程序,gdi32.dll,ntdll.dll和kernel32.d11是user32.dll依赖的三个图形界面的函数DLL动态链接程序。user32.dll的功能是用户接口函数,用来执行各个图形界面函数的链接,gdi32. dll的功能是执行图形、文字之间的输出以及图像与窗口之间的操作,ntdll.dll是API函数的外壳,主要功能用于获取网页、图形、图像、文档以及文件之间的关联信息函数,kernel32.d11是Windocs32基本API库的核心,主要功能用于完成内存的管理,测试程序的调入以及任务的调度功能。

3.2 对象序列化方法

图形用户界面程序的应用都是将数据对象化,在对图形化测试的时候都是将测试用例与被测的GUI控件作为对象进行处理与操作,根据函数具体调用的情况来调用GUI函数。可以将指定的测试用例序列对其进行对象化处理并序列化,在对图形用户界面进行测试时进行逆序列化进行处理,对测试的脚本进行重新构造,使得程序能够重复使用。采用编程语言能实现图形化界面的序列化处理,并将其存在内存空间或者物理空间中,将它们转换成序列化的流和对象,方便测试时利用函数进行调用,在自动化图像界面程序测试中,采用的方法主要有二进制序列化方法、SOAP序列化方法和XML序列化方法等。

3.3 映射机制

对于自动测试工具的映射机制,主要采用数据一一对应的方式进行的,它是通过检查图形用户界面托管代码中程序集、模块、成员、参数等数据模块,以及软件中其他元数据来分析图形文件的数据类型与结构,选择合适的数据测试调用程序。在.NET中System.Reflection命名空间的调用,依据调用函数的属性与特征信息来分析图形界面的特征,主要是通过检查来分析后台的类与方法来进行测试,以此来获取程序代码中数据类型及其成员的数据列表,为后期的程序测试提供标准,该列表中主要包括类、结构、枚举、域、方法、函数的属性等信息,这是自动化测试工具必须要调取的信息。

3.4 延迟绑定技术

延迟绑定技术主要在函数测试的过程中把函数的调用并绑定在测试软件中,能够有效的实现图形界面的自动测试,提高了函数的测试效率,这项策略可以执行更丰富的语法、类型、属性、特征等方面的检查。它们将消息名绑定到一个测试对象上,并在测试的过程中进行实现,而不是从调用绑定到类型再到实现,提高了测试的效率。然后,将该对象绑定到一个名称或标记,然后采用该名称与标记对该函数进行测试检测,如果能够发现该函数的应用之后,检测该函数在GUI中的应用类型,就可以采用动态调用的方法来访问该函数的属性与操作域。

3.5 XML文件

XML是标准的通用的可扩展标记语言,在图像用户界面开发中应用十分广泛,它可以灵活的采用数据驱动的方式对多种类型的数据进行交换与记录,并能够开始的实现数据之间的调用。在XML文档中的数据调用与保存,数据的组织方式与HTML中的组织方式相似,都采用的是标记结构,而且XML中的元素属性和特征更加灵活,用户可以根据自己的需要进行定制,它可以记录下测试文件的操作。一个完整的XML文档应该包括特征、元素、嵌套与标记等因素。

4 结束语

随着人们对于图形化用户界面的质量要求越来越高,软件测试技术在图形化界面的软件开发中就显得十分重要,测试技术是提高软件的质量的重要保证,能够有效的提高图像用户界面开发的效率,由于现在的很多软件一般都是采用图形用户界面来编写的,如何有效的对图形用户界面进行测试分析就是十分重要的,利用自动化的图形用户软件测试工具对开发的软件进行测试,可以减少软件开发的工作量,提高软件开发的质量与效率。子科技,2014(5).

[2]宋群,朱怡安,袁文成.关键字驱动脚本技术的应用[J].计算机工程与设计,2014(8).

[3]刘超.程序交互执行流程图及其测试覆盖准则[J].软件学报,2015(2).

[4]罗杰红.基于图形用户界面的软件测试技术[J].河南科技大学学报(自然科学版),2013(12).

[1]侯勇,张海林.自动化测试中的关键字驱动脚本技术[J].电

Discussion on automatic testing of graphical user interface

Li Lan
(Dazhou Vocational and Technical College, Dazhou Sichuan,635001)

The graphical user interface is one of the commonly used client software development technology, and the graphical user interface testing is an important process in software development, but also an important guarantee to enhance the quality of software, based on the graphical user interface content and test flow test, explores the key technology of automated GUI test, provide a reference for the graphical user interface software development.

test automation; graphical user interface; test script

猜你喜欢
图形界面图形用户界面测试工具
图形用户界面外观设计专利保护问题探析——以“奇虎诉江民案”为例
Http并发连接测试工具
用VMRun快速置备千台虚拟机
浅谈图形用户界面的保护
图形用户界面法律保护问题与对策
手车式真空断路器回路电阻测试电流线接头研究
重看图形界面“扁平化”与“拟物化”之争——关于设计思维的探讨
VxWorks系统下基于WindML的窗口化图形界面设计
福禄克推出先进的连接式测试工具系统
基于数据驱动的图形界面开发方案