面向问题的GUI软件关联功能分析方法及装置.pdf

上传人:00062****4422 文档编号:1670904 上传时间:2018-07-03 格式:PDF 页数:21 大小:2.13MB
返回 下载 相关 举报
摘要
申请专利号:

CN201510105283.0

申请日:

2015.03.10

公开号:

CN104615544A

公开日:

2015.05.13

当前法律状态:

实审

有效性:

审中

法律详情:

实质审查的生效IPC(主分类):G06F 11/36申请日:20150310|||公开

IPC分类号:

G06F11/36

主分类号:

G06F11/36

申请人:

于秀山

发明人:

于秀山; 于长钺; 刘然

地址:

100036北京市海淀区万寿路6号院

优先权:

专利代理机构:

北京众合诚成知识产权代理有限公司11246

代理人:

龚燮英

PDF下载: PDF下载
内容摘要

本发明公开一种面向问题的GUI软件关联功能分析方法,包括:通过获取GUI软件的窗口元素、分析窗口内元素依赖关系、获取窗口调用关系以及基于界面元素的软件功能组成,以得到GUI软件功能;根据得到的GUI软件功能,创建GUI软件功能、测试用例和软件问题三者之间的关联关系;通过所述三者之间的关联关系,找出软件问题所对应的测试用例,并且找出该问题所关联的软件功能;通过所关联的软件功能,在回归测试时重新测试所述软件的相应功能。本发明公开的面向问题的GUI软件关联功能分析方法及装置,能够快速、准确、方便地获取软件问题所关联的软件功能,以提高GUI软件测试效率和充分性。

权利要求书

权利要求书
1.  一种面向问题的GUI软件关联功能分析方法,其特征在于,包括:
S1、通过获取GUI软件的窗口元素、分析窗口内元素依赖关系、获取窗口 调用关系以及基于界面元素的软件功能组成,以得到GUI软件功能;
S2、根据得到的GUI软件功能,创建GUI软件功能、测试用例和软件问题 三者之间的关联关系;
S3、通过所述三者之间的关联关系,找出软件问题所对应的测试用例, 并且找出该问题所关联的软件功能;
S4、通过所关联的软件功能,在回归测试时重新测试所述软件的相应功 能。

2.  根据权利要求1所述的方法,其特征在于,所述步骤S1进一步包括:
基于GUI软件界面中的元素都按照树形结构排列,软件的启动界面为该树 形结构的根结点,遍历以该窗口为根结点的树形结构,以获取该窗口所包含 的所有界面元素;
基于同一个窗口中的界面元素之间存在着一定的逻辑制约关系,通过界 面元素的不同排列组合操作构成软件的子功能,以分析窗口内元素依赖关 系;
根据界面元素类型属性进行过滤得到界面元素类型为按钮的窗口元素, 将按钮作为遍历的起始节点,并遍历当前按钮结点的所有子结点,其他结点 类型不做处理,递归遍历当前结点的子结点界面元素,处理完子结点界面元 素后,处理当前结点的兄弟结点,以获取窗口调用关系;
在分别获取了各窗口元素及其依赖关系、各窗口间的调用关系的基础 上,通过将窗口调用关系与各窗口中元素依赖关系进行组合,最终得到基于 界面元素的软件功能组成。

3.  根据权利要求1所述的方法,其特征在于,所述步骤S2进一步包括:
构建软件功能与测试用例追踪矩阵;
接着,构建测试用例与软件问题追踪矩阵;
接着,基于软件功能与测试用例追踪矩阵和测试用例与软件问题追踪矩 阵,创建GUI软件功能、测试用例和软件问题三者之间的关联关系。

4.  根据权利要求3所述的方法,其特征在于,所述构建软件功能与测试 用例追踪矩阵,进一步包括:
基于测试用例就是软件功能路径上所包含的界面元素的取值以及预期结 果,获取一个GUI软件功能路径上包含的各种不同类型的界面元素;
基于软件是由软件功能组成的,一个软件功能中包含多个界面元素,同 时,一个测试用例对应着多个界面元素,界面元素是软件功能和测试用例之 间的最小描述单元,是两者之间的桥梁,采用追踪矩阵描述界面元素与测试 用例之间的映射关系并构建界面元素与测试用例追踪矩阵。

5.  根据权利要求4所述的方法,其特征在于,所述构建测试用例与软件 问题追踪矩阵,进一步包括:
测试用例设计完毕后,按照测试用例描述的步骤执行测试用例并记录发 现的软件问题;
采用软件问题与界面元素追踪矩阵构建测试用例与软件问题追踪矩阵。

6.  一种面向问题的GUI软件关联功能分析装置,其特征在于,包括:
软件功能构建模块,用于通过获取GUI软件的窗口元素、分析窗口内元素 依赖关系、获取窗口调用关系以及基于界面元素的软件功能组成,以得到GUI 软件功能;
关联关系创建模块,用于根据得到的GUI软件功能,创建GUI软件功能、 测试用例和软件问题三者之间的关联关系;
检测模块,用于通过所述三者之间的关联关系,找出软件问题所对应的 测试用例,并且找出该问题所关联的软件功能,通过所关联的软件功能,在 回归测试时重新测试所述软件的相应功能。

7.  根据权利要求6所述的装置,其特征在于,所述软件功能构建模块进 一步用于:
基于GUI软件界面中的元素都按照树形结构排列,软件的启动界面为该树 形结构的根结点,遍历以该窗口为根结点的树形结构,以获取该窗口所包含 的所有界面元素;
基于同一个窗口中的界面元素之间存在着一定的逻辑制约关系,通过界 面元素的不同排列组合操作构成软件的子功能,以分析窗口内元素依赖关 系;
根据界面元素类型属性进行过滤得到界面元素类型为按钮的窗口元素, 将按钮作为遍历的起始节点,并遍历当前按钮结点的所有子结点,其他结点 类型不做处理,递归遍历当前结点的子结点界面元素,处理完子结点界面元 素后,处理当前结点的兄弟结点,以获取窗口调用关系;
在分别获取了各窗口元素及其依赖关系、各窗口间的调用关系的基础 上,通过将窗口调用关系与各窗口中元素依赖关系进行组合,最终得到基于 界面元素的软件功能组成。

8.  根据权利要求6所述的装置,其特征在于,所述关联关系创建模块进 一步用于:
构建软件功能与测试用例追踪矩阵;
接着,构建测试用例与软件问题追踪矩阵;
接着,基于软件功能与测试用例追踪矩阵和测试用例与软件问题追踪矩 阵,创建GUI软件功能、测试用例和软件问题三者之间的关联关系。

9.  根据权利要求8所述的装置,其特征在于,所述关联关系创建模块进 一步用于:
基于测试用例就是软件功能路径上所包含的界面元素的取值以及预期结 果,获取一个GUI软件功能路径上包含的各种不同类型的界面元素;
基于软件是由软件功能组成的,一个软件功能中包含多个界面元素,同 时,一个测试用例对应着多个界面元素,界面元素是软件功能和测试用例之 间的最小描述单元,是两者之间的桥梁,采用追踪矩阵描述界面元素与测试 用例之间的映射关系并构建界面元素与测试用例追踪矩阵。

10.  根据权利要求9所述的装置,其特征在于,所述关联关系创建模块进 一步用于:
测试用例设计完毕后,按照测试用例描述的步骤执行测试用例并记录发 现的软件问题;
采用软件问题与界面元素追踪矩阵构建测试用例与软件问题追踪矩阵。

说明书

说明书面向问题的GUI软件关联功能分析方法及装置
技术领域
本发明涉及软件工程技术领域,尤其涉及一种面向问题的GUI软件关联功 能分析方法及装置。
背景技术
在软件生存周期中,发现问题→修改问题→验证问题始终伴随着整个软 件生存周期,一旦发现问题,开发人员通过对问题进行分析,找出问题产生 的原因,并修改相关软件,问题修改完毕后,测试人员设计相应的测试用 例,验证问题修改的正确性。这个过程需要反复进行,直到软件满足规定的 要求。
在每一轮的修改→验证过程中,由于软件功能和结构的复杂性,开发人 员和测试人员难以准确掌握软件问题与相关软件功能的关系,经常出现如下 问题。(1)软件修改不彻底。由于开发人员不了解某个软件问题所涉及的软 件功能,经常出现顾此失彼的现象,甚至是越改越糟的情况;(2)软件测试 不充分。由于测试人员不了解某个软件问题所涉及的软件功能,经常出现 “错那测那”的现象,遗漏很多需要测试的功能。
为了解决上述问题,业界提出了很多方法,有代表性的是基于源代码分 析的软件变更影响分析方法,这种方法主要通过比较新旧版本源程序代码, 找出软件修改部分,并根据软件代码之间的依赖关系,找出受代码变更影响 的代码。这种方法是从源代码层面给出的解决方案,对测试人员有较高的要 求,一是要求测试人员能够理解代码,将问题与相应的代码对应起来;二是 需要测试人员将代码与软件功能对应起来。软件功能需求是外在的显性要 求,无论是测试还是开发,直接面对的是软件功能而不是源代码,因此,上 述方法在使用上受到一定的限制。
有鉴于此,为填补现有软件工程技术领域的功能自动获取技术的空白, 并且针对图形用户界面获取软件功能中存在的技术问题,有必要提供一种新 的面向问题的GUI软件关联功能分析方法及装置,从而能够快速、准确、方便 地获取软件问题所关联的软件功能,以提高GUI软件测试效率和充分性。
发明内容
为了解决上述问题,本发明提供的一种面向问题的GUI软件关联功能分析 方法及装置,能够快速、准确、方便地获取软件问题所关联的软件功能,以 提高GUI软件测试效率。
本发明提供了一种面向问题的GUI软件关联功能分析方法,包括:S1、通 过获取GUI软件的窗口元素、分析窗口内元素依赖关系、获取窗口调用关系以 及基于界面元素的软件功能组成,以得到GUI软件功能;S2、根据得到的GUI 软件功能,创建GUI软件功能、测试用例和软件问题三者之间的关联关系; S3、通过所述三者之间的关联关系,找出软件问题所对应的测试用例,并且 找出该问题所关联的软件功能;S4、通过所关联的软件功能,在回归测试时 重新测试所述软件的相应功能。
作为一种实施例,所述步骤S1进一步包括:基于GUI软件界面中的元素都 按照树形结构排列,软件的启动界面为该树形结构的根结点,遍历以该窗口 为根结点的树形结构,以获取该窗口所包含的所有界面元素;基于同一个窗 口中的界面元素之间存在着一定的逻辑制约关系,通过界面元素的不同排列 组合操作构成软件的子功能,以分析窗口内元素依赖关系;根据界面元素类 型属性进行过滤得到界面元素类型为按钮的窗口元素,将按钮作为遍历的起 始节点,并遍历当前按钮结点的所有子结点,其他结点类型不做处理,递归 遍历当前结点的子结点界面元素,处理完子结点界面元素后,处理当前结点 的兄弟结点,以获取窗口调用关系;在分别获取了各窗口元素及其依赖关 系、各窗口间的调用关系的基础上,通过将窗口调用关系与各窗口中元素依 赖关系进行组合,最终得到基于界面元素的软件功能组成。
作为一种实施例,所述步骤S2进一步包括:构建软件功能与测试用例追 踪矩阵;接着,构建测试用例与软件问题追踪矩阵;接着,基于软件功能与 测试用例追踪矩阵和测试用例与软件问题追踪矩阵,创建GUI软件功能、测试 用例和软件问题三者之间的关联关系。
作为一种实施例,所述构建软件功能与测试用例追踪矩阵,进一步包 括:基于测试用例就是软件功能路径上所包含的界面元素的取值以及预期结 果,获取一个GUI软件功能路径上包含的各种不同类型的界面元素;基于软件 是由软件功能组成的,一个软件功能中包含多个软件元素,同时,一个测试 用例对应着多个界面元素,界面元素是软件功能和测试用例之间的最小描述 单元,是两者之间的桥梁,采用追踪矩阵描述界面元素与测试用例之间的映 射关系并构建界面元素与测试用例追踪矩阵。
作为一种实施例,所述构建测试用例与软件问题追踪矩阵,进一步包 括:测试用例设计完毕后,按照测试用例描述的步骤执行测试用例并记录发 现的软件问题;采用软件问题与界面元素追踪矩阵构建测试用例与软件问题追 踪矩阵。
本发明还提供了一种面向问题的GUI软件关联功能分析装置,包括:软件 功能构建模块,用于通过获取GUI软件的窗口元素、分析窗口内元素依赖关 系、获取窗口调用关系以及基于界面元素的软件功能组成,以得到GUI软件功 能;关联关系创建模块,用于根据得到的GUI软件功能,创建GUI软件功能、 测试用例和软件问题三者之间的关联关系;检测模块,用于通过所述三者之 间的关联关系,找出软件问题所对应的测试用例,并且找出该问题所关联的 软件功能,通过所关联的软件功能,在回归测试时重新测试所述软件的相应 功能。
作为一种实施例,所述软件功能构建模块进一步用于:基于GUI软件界面 中的元素都按照树形结构排列,软件的启动界面为该树形结构的根结点,遍 历以该窗口为根结点的树形结构,以获取该窗口所包含的所有界面元素;基 于同一个窗口中的界面元素之间存在着一定的逻辑制约关系,通过界面元素 的不同排列组合操作构成软件的子功能,以分析窗口内元素依赖关系;根据 界面元素类型属性进行过滤得到界面元素类型为按钮的窗口元素,将按钮作 为遍历的起始节点,并遍历当前按钮结点的所有子结点,其他结点类型不做 处理,递归遍历当前结点的子结点界面元素,处理完子结点界面元素后,处 理当前结点的兄弟结点,以获取窗口调用关系;在分别获取了各窗口元素及 其依赖关系、各窗口间的调用关系的基础上,通过将窗口调用关系与各窗口 中元素依赖关系进行组合,最终得到基于界面元素的软件功能组成。
作为一种实施例,所述关联关系创建模块进一步用于:构建软件功能与 测试用例追踪矩阵;接着,构建测试用例与软件问题追踪矩阵;接着,基于 软件功能与测试用例追踪矩阵和测试用例与软件问题追踪矩阵,创建GUI软件 功能、测试用例和软件问题三者之间的关联关系。
作为一种实施例,所述关联关系创建模块进一步用于:基于测试用例就 是软件功能路径上所包含的界面元素的取值以及预期结果,获取一个GUI软件 功能路径上包含的各种不同类型的界面元素;基于软件是由软件功能组成 的,一个软件功能中包含多个软件元素,同时,一个测试用例对应着多个界 面元素,界面元素是软件功能和测试用例之间的最小描述单元,是两者之间 的桥梁,采用追踪矩阵描述界面元素与测试用例之间的映射关系并构建界面 元素与测试用例追踪矩阵。
作为一种实施例,所述关联关系创建模块进一步用于:测试用例设计完 毕后,按照测试用例描述的步骤执行测试用例并记录发现的软件问题;采用软 件问题与界面元素追踪矩阵构建测试用例与软件问题追踪矩阵。
由上述本发明的实施例提供的技术方案可以看出,采用本发明所提出的 方法及装置,通过构建软件功能、测试用例和软件问题三者之间的关系,, 找出软件问题所对应的测试用例,进而找出该问题所关联的软件功能,这些 功能就是回归测试时必须重新测试的功能,能够快速、准确、方便地获取获 取软件问题所关联的软件功能,以提高GUI软件测试效率和充分性。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的 描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所 需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的 前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例的面向问题的GUI软件关联功能分析方法构建的软 件功能-测试用例-软件问题关联图示意图;
图2为本发明一实施例的面向问题的GUI软件关联功能分析方法的具体流 程示意图;
图3为本发明一实施例的数据库登录界面示意图;
图4为本发明一实施例的界面元素获取工作流程示意图;
图5为本发明一实施例的获取窗口调用关系流程示意图;
图6为本发明一实施场景的学生管理系统的界面示意图;
图7为本发明一实施场景的新建人员窗口的界面示意图;
图8为本发明一实施例的学生管理系统软件的功能组成图;
图9为本发明一实施例的面向问题的GUI软件关联功能分析方法的整体流 程示意图。
具体实施方式
下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出, 其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功 能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发 明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式 “一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解 的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步 骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、 整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被 “连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或 者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无 线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项 的任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语 (包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一 般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该 被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一 样定义,不会用理想化或过于正式的含义来解释。
为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例 做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。
针对这种情况以及目前所面临的上述问题,本发明提出了通过分析软件 的图形用户界面获取软件功能的方法,主要解决如何快速、准确地获取软件 所具有的功能技术问题。
图形用户界面类软件,其界面展现方式主要分为两种:基于菜单窗口和 基于对话框窗口的界面。这两种图形用户界面类软件虽然展现风格有所不 同,但可采用相同的方法获取软件功能。本方案主要利用微软Windows操作系 统提供的Microsoft UI Automat i on(简称UIA)框架,对被测软件的用户界 面进行分析,获取主界面中的菜单和界面元素,而后通过自动触发菜单和界 面元素的点击事件,得到次级菜单或次级对话框窗口,依此方式,递归找出 被测软件所有层级的菜单或对话框中包含的元素,通过分析菜单层级关系或 对话框窗口调用关系,得出被测软件的功能组成结构。
图1为本发明一实施例的面向问题的GUI软件关联功能分析方法构建的软 件功能-测试用例-软件问题关联图示意图。本方案主要通过构建软件功能-测 试用例-软件问题追踪表,建立软件功能、测试用例和软件问题三者之间的对 应关系。软件问题通过测试用例发现,测试用例是桥梁,它一端连接着所发 现的软件问题,另一端连接着对应的软件功能。如图1所示,三者之间是多对 多的关系,即一个测试用例可以发现多个软件问题,一个软件问题可以由多 个测试用例发现;一个软件功能对应着多个测试用例,一个测试用例可以与 多个软件功能相关联。
图9为本发明一实施例的面向问题的GUI软件关联功能分析方法的整体流 程示意图。如图9所示,本发明提供一种面向问题的GUI软件关联功能分析方 法,包括:S1、通过获取GUI软件的窗口元素、分析窗口内元素依赖关系、获 取窗口调用关系以及基于界面元素的软件功能组成,以得到GUI软件功能; S2、根据得到的GUI软件功能,创建GUI软件功能、测试用例和软件问题三者 之间的关联关系;S3、通过所述三者之间的关联关系,找出软件问题所对应 的测试用例,并且找出该问题所关联的软件功能;S4、通过所关联的软件功 能,在回归测试时重新测试所述软件的相应功能。
图2为本发明一实施例的面向问题的GUI软件关联功能分析方法的主要工 作流程示意图。如图2所示,软件功能需求获取可以包括但不限于:窗口元素 获取;窗口内元素依赖关系获取;窗口调用关系获取;基于界面元素的软件 功能组成。测试用例设计可以进一步包括:正常值判断;异常值判断;测试 步骤设计。最后,通过执行测试用例,进一步找到软件的问题并记录。本发 明所提出的方法,通过构建软件功能、测试用例和软件问题三者之间的关 系,找出软件问题所对应的测试用例,进而找出该问题所关联的软件功能, 这些功能就是回归测试时必须重新测试的功能,能够快速、准确、方便地获 取软件问题所的关联软件功能,以提高GUI软件测试效率和充分性。
一、软件功能获取
作为一种实施例,所述步骤S1进一步包括:基于GUI软件界面中的元素都 按照树形结构排列,软件的启动界面为该树形结构的根结点,遍历以该窗口 为根结点的树形结构,以获取该窗口所包含的所有界面元素;基于同一个窗 口中的界面元素之间存在着一定的逻辑制约关系,通过界面元素的不同排列 组合操作构成软件的子功能,以分析窗口内元素依赖关系;根据界面元素类 型属性进行过滤得到界面元素类型为按钮的窗口元素,将按钮作为遍历的起 始节点,并遍历当前按钮结点的所有子结点,其他结点类型不做处理,递归 遍历当前结点的子结点界面元素,处理完子结点界面元素后,处理当前结点 的兄弟结点,以获取窗口调用关系;在分别获取了各窗口元素及其依赖关 系、各窗口间的调用关系的基础上,通过将窗口调用关系与各窗口中元素依 赖关系进行组合,最终得到基于界面元素的软件功能组成。
1、软件功能定义
对于图形用户界面类软件而言,软件功能为从某个根界面元素到叶子界 面元素所经过的界面元素排列。图3为本发明一实施例的数据库登录界面示意 图。例如,对于图3所示的软件界面,数据库登录功能是由“服务器、端口、 用户名、密码、确定”所构成的界面元素排列。
2、窗口元素获取
图形用户界面类软件是由不同的窗口组成的,每个窗口中包含各种不同 种类的元素,如菜单、文本框、对话框、列表框等。窗口中不同元素的组合 输入构成了该窗口的功能实现。要提取窗口的功能,首先需要获取组成该窗 口功能的所有界面元素。通过分析发现,在Windows操作系统中的UIA框架 下,界面中的元素都按照树形结构排列,软件的启动界面为该树形结构的根 结点,这些元素可以以AutomationEIement对象的形式进行访问,并通过 Automation ID、Name、ControlType等获取对象的多种属性。同时,采用 TreeWalker/FindAll方法可以对对象进行遍历和条件化查询。这样,对于某 个窗口而言,获取该窗口所包含的界面元素的过程实际上就变成遍历以该窗 口为根结点的树形结构的过程。
图4为本发明一实施例的界面元素获取工作流程示意图。如图4所示,获 取窗口界面元素及其信息的主要流程可以包括:输入窗口标题;获取窗口句 柄;获取窗口界面元素;获取第一个孩子节点;判断该节点是否为空,若 否,则递归遍历子节点,若是,则结束该流程;递归遍历后,处理兄弟节 点,随后结束该流程。该方法的核心思想是获取当前窗口的窗口句柄,通过 当前窗口句柄构建窗口中界面元素树的根结点,使用UIA框架提供的 TreeWalker类,采用深度遍历算法递归构造以当前窗口为根结点的界面元素 树,从而获取窗口中所有界面元素及其信息。
3、窗口元素依赖关系分析
对于图形用户界面类软件,用户通过操作窗口中的界面元素来实现软件 功能。同一个窗口中的界面元素之间存在着一定的逻辑制约关系,通过界面 元素的不同排列组合操作构成软件的子功能。
在获取窗口所有界面元素的基础上,经过分析得到一般界面元素间存在 的四类逻辑关系:
(1)串行关系,表示界面元素间的执行顺序是串行的,依次输入和选择 界面元素内容后实现相应的子功能。这种情况在图形用户界面软件中最常 见。
(2)并列关系,表示界面元素间的执行顺序是并列的,两个或多个界面 元素必须是被同时操作后才能实现相应的子功能。例如计算类功能,必须同 时输入和选择参与计算的各参数值后才能得到最终的计算结果。
(3)互斥关系,表示界面元素间的执行是互斥的,不能同时存在。这种 互斥关系多体现在单选按钮等界面元素中。
(4)关联关系,表示界面元素间的执行是有选择性关联关系的。例如在 学生管理软件中选择了学生所在的学院后,由于学院与下属的系存在关联关 系,相关的界面元素就会形成一个或多个界面元素操作序列。
通过对窗口界面元素及其逻辑依赖关系的分析,得到当前窗口所包含的 所有子功能。
4、窗口调用关系获取
通过上述方法能够获取窗口的组成元素及其依赖关系,从而也就分析出 该窗口所实现的功能,该功能只是整个软件功能的一个组成部分。对于功能 复杂的图形用户界面软件而言,一个功能往往是通过调用多个窗口而实现 的,不同窗口所实现的功能相互组合构成软件的整个功能。因此,除了获取 单个窗口的功能外,还需要获取窗口间的调用关系,从而得到完整的软件功 能。
下面详细阐述获取窗口调用关系的过程。通过上述第二点介绍的方法, 首先可以得到被测软件主窗口的所有界面元素及其信息,该信息以树形结构 展示,然后根据界面元素类型ControlType属性进行过滤得到界面元素类型为 按钮的窗口元素。在获取主窗口的基础上,需要找到当前主窗口调用的子窗 口,并建立窗口的调用关系。通过调用invoke界面元素模式触发GUI事件, 模拟人工点击按钮的操作,递归查找当前窗口的子窗口,并保存主窗口与子 窗口的调用关系。图5为本发明一实施例的获取窗口调用关系的流程示意图。 如图5所示,获取窗口调用关系可以包括:传入主窗口节点;获取第一个孩子 节点;判断是否节点为空,若是,则结束该流程,若否,则进一步判断 Invoke界面元素模式;若Invoke界面元素模式为否,则结束该流程;若 Invoke界面元素模式为是,则递归遍历子节点,随后处理兄弟节点并结束该 流程。
该算法函数的传入参数rootElement是被测程序的主窗口,即遍历的起 点。遍历时首先找到rootElement的第一个子结点,如果该结点是按钮界面元 素,则需要遍历当前结点的所有子结点,调用结点的Invoke界面元素模式 (相当于点击按钮);其他结点类型在这里不做处理。递归遍历当前结点的 子结点界面元素,处理完子结点界面元素后,处理当前结点的兄弟结点。
5、基于界面元素的软件功能获取
通过上述介绍的方法,分别获取了各窗口元素及其依赖关系、各窗口间 的调用关系,在此基础上,通过将窗口调用关系与各窗口中元素依赖关系进 行组合,最终得到基于界面元素的软件功能组成。
作为一种实施例,所述步骤S2进一步包括:构建软件功能与测试用例追 踪矩阵;接着,构建测试用例与软件问题追踪矩阵;接着,基于软件功能与 测试用例追踪矩阵和测试用例与软件问题追踪矩阵,创建GUI软件功能、测试 用例和软件问题三者之间的关联关系。
二、软件功能与测试用例追踪矩阵构建
作为一种实施例,所述构建软件功能与测试用例追踪矩阵,进一步包 括:基于测试用例就是软件功能路径上所包含的界面元素的取值以及预期结 果,获取一个GUI软件功能路径上包含的各种不同类型的界面元素;基于软件 是由软件功能组成的,一个软件功能中包含多个软件元素,同时,一个测试 用例对应着多个界面元素,界面元素是软件功能和测试用例之间的最小描述 单元,是两者之间的桥梁,采用追踪矩阵描述界面元素与测试用例之间的映 射关系并构建界面元素与测试用例追踪矩阵。
1、测试用例定义
测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期 结果,以便测试某个程序路径或核实是否满足某个特定需求。其中,测试输 入是测试用例设计的核心,直接关系到测试质量。对于图形用户界面类软件 而言,测试用例就是软件功能路径上所包含的界面元素的取值以及预期结 果。
2、界面元素取值
一个软件功能路径上包含各种不同类型的界面元素,其中,每个界面元 素可以取不同的值,包括正常值和异常值,因此,一个软件功能测试项对应 着多个测试用例。
3、界面元素与测试用例映射
软件是由软件功能组成的,一个软件功能中包含多个软件元素,同时, 一个测试用例对应着多个界面元素,界面元素是软件功能和测试用例之间的 最小描述单元,是两者之间的桥梁。
本方案中采用追踪矩阵描述界面元素与测试用例之间的映射关系,追踪 矩阵如表1所示。
表1 界面元素与测试用例追踪矩阵
序号   测试用例1 测试用例2 …… 测试用例n
1 界面元素1     2 界面元素2     ……     n 界面元素n    
表1中给出了软件所包含的所有界面元素以及所设计的所有测试用例,如 果某个测试用例中包含该界面元素,则在相应的位置用●标注。
4、软件功能与界面元素映射
软件功能是由界面元素组成的,为了找出软件功能与界面元素之间的关 系,本方案中采用追踪矩阵描述软件功能与界面元素之间的关系,追踪矩阵 如表2所示。
表2 软件功能与界面元素追踪矩阵
序号   界面元素1 界面元素2 …… 界面元素n 1 软件功能1   2 软件功能2   ……   n 软件功能n    
表2中给出了软件功能与界面元素之间的对应关系,如果某个软件功能中 包含该界面元素,则在相应的位置用●标注。
5、软件功能与测试用例追踪关系
表1给出了软件所包含的所有界面元素与设计的所有测试用例之间的对应 关系,表2给出了软件功能与界面元素之间的对应关系,通过查询表1和表2, 很容易构建软件功能与测试用例之间的对应关系。
三、测试用例与软件问题追踪矩阵构建
作为一种实施例,所述构建测试用例与软件问题追踪矩阵,进一步包 括:测试用例设计完毕后,按照测试用例描述的步骤执行测试用例并记录发 现的软件问题;采用软件问题与界面元素追踪矩阵构建测试用例与软件问题追 踪矩阵。
测试用例设计完毕后,按照测试用例描述的步骤执行测试用例,一旦发 现软件问题,记录发现的软件问题。
为了找出测试用例与软件问题之间的关联关系,本方案中采用软件问题 与界面元素追踪矩阵,描述两者之间的关系,追踪矩阵如表3所示。
表3 软件问题与界面元素追踪矩阵
序号   界面元素1 界面元素2 …… 界面元素n 1 软件缺陷1 × × 2 软件缺陷2 × × …… × n 软件缺陷n ×
表3中给出了软件缺陷与界面元素之间的对应关系,如果操作某个界面元 素软件没有出现问题,则在相应的位置用√标注;如果某个软件缺陷是由操 作该界面元素时引发,则在相应的位置用×标注。
一旦构建了软件缺陷与界面元素之间的追踪矩阵,再结合表1中给出的界 面元素与测试用例之间的追踪矩阵,可以建立测试用例与软件缺陷的追踪关 系。
四、软件问题关联域分析
软件问题通过执行测试用例而发现,软件问题被发现后,需要找出该问 题所关联的软件功能,这样,开发人员可以修改该问题所关联的所有软件功 能,问题修改完成后,测试人员重新运行与该问题有关联的测试用例,验证 问题修改的正确性。
结合表2和表3,以软件界面元素为查找对象,通过搜索表2和表3,找出 软件缺陷所关联的软件功能;
结合表1和表3,以软件界面元素为查找对象,通过搜索表1和表3,找出 软件缺陷所关联的测试用例。
本发明还提供了一种面向问题的GUI软件关联功能分析装置,包括:软件 功能构建模块,用于通过获取GUI软件的窗口元素、分析窗口内元素依赖关 系、获取窗口调用关系以及基于界面元素的软件功能组成,以得到GUI软件功 能;关联关系创建模块,用于根据得到的GUI软件功能,创建GUI软件功能、 测试用例和软件问题三者之间的关联关系;检测模块,用于通过所述三者之 间的关联关系,找出软件问题所对应的测试用例,并且找出该问题所关联的 软件功能,通过所关联的软件功能,在回归测试时重新测试所述软件的相应 功能。
作为一种实施例,所述软件功能构建模块进一步用于:基于GUI软件界面 中的元素都按照树形结构排列,软件的启动界面为该树形结构的根结点,遍 历以该窗口为根结点的树形结构,以获取该窗口所包含的所有界面元素;基 于同一个窗口中的界面元素之间存在着一定的逻辑制约关系,通过界面元素 的不同排列组合操作构成软件的子功能,以分析窗口内元素依赖关系;根据 界面元素类型属性进行过滤得到界面元素类型为按钮的窗口元素,将按钮作 为遍历的起始节点,并遍历当前按钮结点的所有子结点,其他结点类型不做 处理,递归遍历当前结点的子结点界面元素,处理完子结点界面元素后,处 理当前结点的兄弟结点,以、获取窗口调用关系;在分别获取了各窗口元素 及其依赖关系、各窗口间的调用关系的基础上,通过将窗口调用关系与各窗 口中元素依赖关系进行组合,最终得到基于界面元素的软件功能组成。
作为一种实施例,所述关联关系创建模块进一步用于:构建软件功能与 测试用例追踪矩阵;接着,构建测试用例与软件问题追踪矩阵;接着,基于 软件功能与测试用例追踪矩阵和测试用例与软件问题追踪矩阵,创建GUI软件 功能、测试用例和软件问题三者之间的关联关系。
作为一种实施例,所述关联关系创建模块进一步用于:基于测试用例就 是软件功能路径上所包含的界面元素的取值以及预期结果,获取一个GUI软件 功能路径上包含的各种不同类型的界面元素;基于软件是由软件功能组成 的,一个软件功能中包含多个软件元素,同时,一个测试用例对应着多个界 面元素,界面元素是软件功能和测试用例之间的最小描述单元,是两者之间 的桥梁,采用追踪矩阵描述界面元素与测试用例之间的映射关系并构建界面 元素与测试用例追踪矩阵。
作为一种实施例,所述关联关系创建模块进一步用于:测试用例设计完 毕后,按照测试用例描述的步骤执行测试用例并记录发现的软件问题;采用软 件问题与界面元素追踪矩阵构建测试用例与软件问题追踪矩阵。
五、本发明的应用场景之一
下面以图6给出的学生管理系统软件为例,详细描述实现本发明的具体实 施过程。该软件是一个典型的包含图形用户界面的管理类软件,具备管理软 件所具有的新建、删除等典型功能。
1、软件功能获取
以图7所示的新建人员窗口为例,采用本方案2.1节中介绍的方法,通过 分析新建人员窗口界面元素及界面元素间依赖关系以及该窗口与其他窗口的 调用关系,得到如下结果:
(1)窗口中的姓名、身份证号、工号、学号等基本信息界面元素为串行 关系;
(2)窗口中的人员类别与学生类别、学制为并列关系,人员类别与教师 职称、职务为并列关系;
(3)窗口中的学生类别和学制与教师职称和职务为互斥关系;
(4)窗口中的学院与系所为关联关系。
通过上述分析得出新建人员子功能组成列表如图8所示。
2、界面元素与测试用例追踪
根据获取到的基于界面元素的软件功能,得到界面元素与测试用例的追 踪表如表4所示。由该表可以看出,测试用例1是由“姓名、性别、身份证 号、出生日期、学院、系所、人员类别、工号/学号、学生类别、学制”这10 个界面元素取正常值组成的,而测试用例3虽然同样是由这10个界面元素组成 的,但其中的“姓名”取值为“空”,即异常值,其他的测试用例与此类 似。
表4 界面元素与测试用例追踪矩阵
序号 界面元素 测试用例1 测试用例2 测试用例3 测试用例4 1 姓名 2 性别 3 身份证号 超长 4 出生日期 5 学院 6 系所 7 人员类别 8 工亏/学亏 9 学生类别     10 学制     11 教师职称     12 职务    
3、界面元素与软件功能追踪
根据上述分析结果,得到“新建学生”,即功能1、“新建教师”,即功 能2与界面元素的追踪表如表5所示。
表5界面元素与软件功能追踪矩阵
序号 界面元素 新建学生 新建教师 1 姓名 2 性别 3 身份证号 4 出生日期 5 学院 6 系所 7 人员类别 8 工亏/学亏 9 学生类别   10 学制   11 教师职称   12 职务  
4、界面元素与软件问题追踪
假设该软件在测试执行过程中,当输入一个正常的“出生日期”时软件 出现错误,记为“软件问题1”;当输入一个超长的“身份证号”时软件出现 错误,记为“软件问题2”,由此得到界面元素与软件问题的追踪表如表6所 示。
表6 界面元素与软件问题追踪矩阵
序号 界面元素 软件问题1 软件问题2 1 姓名 2 性别 3 身份证号 × 4 出生日期 × 5 学院 6 系所 7 人员类别
8 工亏/学亏 9 学生类别   10 学制   11 教师职称   12 职务  
5、软件问题关联域分析
根据表6给出的软件问题与界面元素的对应关系,可以得出这两个软件问 题与界面元素“出生日期”和“身份证号”有关联;根据表4给出的结果,可 以得出设计的四个测试用例都与这两个界面元素有关;根据表5的分析结果, 可以得出“新建学生”和“新建教师”这两个功能与这两个界面元素有关。
根据上述分析结果,得出这两个软件问题所关联的软件功能是“新建学 生”,和“新建教师”、所关联的测试用例是“测试用例1”、“测试用例 2”、“测试用例3”、“测试用例4”。因此,在软件错误修改过程中,除了 要直接修改与这两个界面元素处理相关的代码,还要关注与这两个界面元素 相关联的“新建学生”和“新建教师”这两个软件功能;同样,在回归测试 时,除了要直接测试“出生日期”和“身份证号”这两个界面元素外,还要 执行与此相关的测试用例。
六、本发明优点和积极效果
软件问题是开发人员修改软件的依据,同时也是测试人员进行回归测试 的依据,采用本发明所提出的方法,可以方便、快速地构建软件功能-测试用 例-软件问题三者之间关系,并通过该关系找出软件问题所关联的软件功能和 测试用例。这种方法不需要开发人员和测试人员通过阅读相关软件文档获取 相关信息,就可以构建软件功能-测试用例-软件问题三者之间的关联关系, 一方面可以大大减轻工作量;另一方面可以保证分析的准确性和全面性(软 件功能-测试用例-软件问题三者之间关系复杂,人工分析难免造成遗漏), 有效解决因软件问题关联域分析不全面造成的软件修改不彻底、软件回归测 试不全面等问题。
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中 的模块或流程并不一定是实施本发明所必须的。通过以上的实施方式的描述 可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用 硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说 对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件 产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以 使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行 本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同 相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同 之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例, 所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描 述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元 可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可 以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元 上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案 的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并 实施。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并 不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发 明的保护范围应该以权利要求的保护范围为准。

面向问题的GUI软件关联功能分析方法及装置.pdf_第1页
第1页 / 共21页
面向问题的GUI软件关联功能分析方法及装置.pdf_第2页
第2页 / 共21页
面向问题的GUI软件关联功能分析方法及装置.pdf_第3页
第3页 / 共21页
点击查看更多>>
资源描述

《面向问题的GUI软件关联功能分析方法及装置.pdf》由会员分享,可在线阅读,更多相关《面向问题的GUI软件关联功能分析方法及装置.pdf(21页珍藏版)》请在专利查询网上搜索。

本发明公开一种面向问题的GUI软件关联功能分析方法,包括:通过获取GUI软件的窗口元素、分析窗口内元素依赖关系、获取窗口调用关系以及基于界面元素的软件功能组成,以得到GUI软件功能;根据得到的GUI软件功能,创建GUI软件功能、测试用例和软件问题三者之间的关联关系;通过所述三者之间的关联关系,找出软件问题所对应的测试用例,并且找出该问题所关联的软件功能;通过所关联的软件功能,在回归测试时重新测试所。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1