图形用户界面软件自动测试方法及装置的制造方法

文档序号:8380870阅读:240来源:国知局
图形用户界面软件自动测试方法及装置的制造方法
【技术领域】
[0001] 本发明涉及软件功能测试技术领域,尤其涉及一种图形用户界面软件自动测试方 法及装置。
【背景技术】
[0002] 图形用户界面软件以其操作简单、直观、方便得到广泛应用,与嵌入式软件相比, 图形用户界面软件设计了很多的界面元素,用户通过操作界面上的元素,实现规定的功能。 图形用户界面软件包含很多的窗口,每一个窗口中又包含很多元素,这些窗口和其中元素 的不同组合构成了软件不同的功能。为了对这种软件进行测试,至少要覆盖这些软件功能, 然而,图形用户界面软件中窗口和元素的多样性以及组合的复杂性,导致软件功能数量庞 大,测试工作量巨大,并且,在测试过程中,容易重复和遗漏软件功能。
[0003] 目前,在软件功能测试领域,一类有代表性的是基于录制/回放的功能测试工具, 如WinRUnner、QTP。这类工具通过录制用户的操作,以脚本的方式记录测试过程,在回归测 试时,回放测试脚本,从而对软件自动进行测试。这类工具只是记录了测试人员的操作,测 试用例的设计仍然需要测试人员手工完成,测试用例质量依赖于测试人员的经验。另一类 有代表性的是基于需求的测试用例设计,或需求驱动的测试用例设计。这种方法主要是通 过分析软件需求规格说明等相关文档,获取软件信息,根据这些信息设计测试用例。这种方 法具有一定的理论价值,但在具体应用中存在如下问题:1、软件需求需要测试人员根据软 件需求规格说明等文档手工产生,工作量大;2、软件需求经常发生变化,软件需求和最新 版本的软件难以同步更新,导致软件需求过时,软件需求的准确性和一致性差;3、难以实现 自动化。由于软件需求规格说明是用纯文字的方式表述的,是非形式化的,因此,难以自动 获取相关信息。一些能够实现测试用例设计自动化的方法要求软件需求是用形式化语言, 如UML描述的,而要将软件需求用类似UML的形式化语言进行描述,其工作量很大,这也是 这种方法目前难以实用的根本原因。
[0004] 有鉴于此,为填补现有软件测试技术领域的自动化测试技术的空白,并且针对图 形用户界面软件的功能测试中存在的技术问题,有必要提供一种新的自动测试方法及装 置,通过自动生成测试用例以对图形用户界面软件进行快速、准确、高效地自动测试。

【发明内容】

[0005] 为了解决上述问题,本发明提供的一种图形用户界面软件自动测试方法及装置, 通过自动生成测试用例以对图形用户界面软件进行快速、准确、高效地自动测试。
[0006] 本发明提供了一种图形用户界面软件测试方法,包括:S1、对图形用户界面软件进 行分析,通过图形用户界面中的界面元素获取该软件的功能需求并且提取界面元素的边界 值;S2、根据获取的该软件的功能需求和界面元素的边界值生成测试用例;S3、通过测试用 例自动测试图形用户界面软件的各项功能。
[0007] 作为一种实施例,所述步骤Sl进一步包括:S11、通过分析被测软件界面元素,获 取软件界面元素组成及其属性;S12、通过对被测软件源代码进行分析,得到界面中包含的 输入元素及其取值范围;S13、根据软件窗口调用关系,生成软件功能图,并采用深度优先搜 索技术,遍历功能组成图,得到每一条软件功能路径;S14、根据每一条功能路径,找到路径 节点所包含的窗口及窗口界面中的输入元素及其边界值。
[0008] 作为一种实施例,所述步骤Sll进一步包括:Slll、获取被测软件用户 界面窗口句柄,并通过当前窗口句柄构建窗口中元素树的根节点;S112、使用 Microsoft UI Autoamtion框架提供的获取窗口界面控件树的TreeWalker类对 窗口中的对象进行遍历和条件化查询,调用TreeWalker类中的函数TreeWalker. ControlViewffalker. GetFirstChild(rootElement)和 TreeWalker. ControlViewWalker. GetNextSibling(elementNode),采用深度遍历算法递归构造以当前窗口为根节点的元素 树,以获取窗口中所有元素信息。
[0009] 作为一种实施例,所述步骤S12进一步包括:S121、通过对被测软件源代码扫描及 分析,找出涉及软件所有输入的代码文件;S122、从代码文件中得到每个代码文件的语法树 结构;S123、根据语法树结构,精确定位输入字段所涉及的代码位置,以分析得出字段的输 入范围及类型。
[0010] 作为一种实施例,所述步骤S123进一步包括:S1231、将软件开发过程中输入界面 所涉及的输入字段划分为窗体设计、窗体实现、输入验证、数据库对象四种类型,并根据所 属类型对输入字段进行分析;S1232、根据窗体设计和数据库对象类型对应的输入字段创建 控件树,并根据窗体实现和输入验证对应的输入字段创建事件树;S1233、根据控件树和事 件树定位键盘输入的相关代码段,并根据相关代码段获取键盘输入控件输入字段范围; [0011] 作为一种实施例,所述步骤S12进一步包括:综合采用等价类划分、边界值分析和 组合测试方法,生成包含正常值和异常值的、能够覆盖软件功能的测试用例。
[0012] 作为一种实施例,所述获取的该软件的功能需求,进一步包括:在获取被测软件所 有的界面元素基础上,对被测软件用户主界面的所有元素信息进行过滤,找出其中的功能 界面元素,包括:菜单项和按钮类元素;调用invoke控件模式触发GUI事件,模拟人工点击 菜单或按钮的操作;递归查找当前窗口的子窗口,并保存主窗口与子窗口的层级关系,以得 到整个被测软件所包含的功能界面元素;在得到软件功能组成图后,采用深度优先搜索技 术,遍历功能组成图,得到软件从主界面到最终子界面的每一条功能路径。这种方法可以直 接从最终的软件中自动获取软件功能需求,不再依赖于软件需求规格说明等软件文档,能 够有效解决软件功能需求需要根据软件需求规格说明等文档人工产生、软件文档与最终软 件不一致等问题。
[0013] 作为一种实施例,所述生成测试用例,进一步包括:根据获取了被测软件功能、被 测软件功能路径上包含的输入元素以及每一个输入元素的取值范围,创建从软件的根结点 到叶子结点所经过的界面元素的有序集合,其中的界面元素包括界面上的可操作控件。这 种方法不需要测试人员阅读相关软件文档就能够提取软件输入元素边界值,并能够根据边 界值,采用等价类划分、边界值分析、组合测试等方法自动设计出测试用例,测试用例的设 计不再依赖于测试人员的经验手工完成,测试用例质量能够得到有效保证。
[0014] 本发明提供了一种图形用户界面软件测试装置,包括:分析模块,用于对图形用户 界面软件进行分析,通过图形用户界面中的界面元素获取该软件的功能需求并且提取界面 元素的边界值;生成模块,用于根据获取的该软件的功能需求和界面元素的边界值生成测 试用例;测试模块,用于通过测试用例自动测试图形用户界面软件的各项功能。
[0015] 由上述本发明的实施例提供的技术方案可以看出,本方案设计的针对上述情况, 本发明提出了通过分析图形用户界面软件界面元素获取软件功能需求和界面元素的边界 值,在此基础上,采用等价类划分、边界值分析、组合测试等方法,自动生成测试用例的方 法,主要解决如何快速、准确、高效地获取软件功能需求以及界面元素边界值等技术问题。
[0016] 本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1