当前位置: 首页 > 专利查询>于秀山专利>正文

图形用户界面软件功能覆盖测试方法技术

技术编号:4087662 阅读:536 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种图形用户界面软件功能覆盖测试方法,通过对被测软件进行分析,找出软件所有窗口之间调用关系、每一个窗口内部所包含的事件及其相互关系以及窗口之间的事件交互关系,对事件交互图进行简化;对测试过程进行跟踪,捕获所述被测软件执行过程中所经过的窗口和事件,并根据捕获的所述测试用例的执行信息生成软件操作图;对测试用例进行优化,剔除重复和冗余的测试用例;将所述软件操作图与所述事件交互图进行比对,在所述事件交互图上标识出已覆盖的事件和事件交互,同时,给出测试覆盖统计结果;根据测试覆盖统计结果,判断是否满足设定的测试覆盖标准;若满足,则停止测试;否则,跟踪新的测试用例执行情况。

【技术实现步骤摘要】

本专利技术涉及一种图形用户界面(GUI)软件功能测试技术,尤指GUI软件功能覆盖 测试方法。
技术介绍
对软件进行充分测试是软件测试的根本要求,覆盖测试是衡量测试充分性的主要 标准。软件覆盖测试研究最早是围绕测试用例对程序代码的覆盖程度而展开的,提出了语 句覆盖、分支覆盖、路径覆盖等标准,并推出了商业化工具,有代表性的有英国LDRA公司的 TestBed。这类工具从源程序代码的角度,采用程序插装技术,通过跟踪测试用例的执行,给 出测试用例对程序代码的覆盖情况,为测试用例设计和测试充分性评价提供依据。图形用 户界面(Graphical User Interface,简称⑶I,又称图形用户接口)软件是采用事件驱动 方式执行的,用户通过与图形的交互来触发相应的事件进而与底层的代码进行交互,因此, 不能用上述方法来度量GUI软件测试充分性。针对上述问题,国内外学者相继开展了针对GUI软件功能测试技术的研究工作, 这些研究工作的重点是如何对⑶I软件的功能进行测试,有代表性的有基于录制/回放 的功能测试,这类工具通过录制用户的操作,以脚本的方式记录测试过程,在回归测试时, 回放测试脚本,从而对软件自动进行测试。这种方法只记录了控件的位置和编号等信息, 这些信息可以保证在脚本回放时能够准确找到相应控件,但对于测试人员而言,这些信息 可读性差,从这些信息中,测试人员难以找到对应的控件,并且,也无法得知控件之间的相 互关系;在功能覆盖测试领域,有代表性的有Coverage Criteria for⑶I Testing (Atif Μ. Memon)。在这些研究报告中,Atif M. Memon提出了事件覆盖、事件交互覆盖、长度为η的 事件序列覆盖、调用覆盖、调用终止覆盖五种GUI软件测试覆盖准则。这种覆盖标准对于指 导测试具有重要的理论价值,但在具体应用中还存在如下问题(1)软件所具有的所有功能以及功能之间的交互(功能图)需要手工获取。软件 功能图是功能覆盖测试的基础和依据,目前所提出的方法中,功能图只能由测试人员根据 软件需求规格说明等文档手工产生,工作量大、准确性差;(2)测试过程跟踪采用事件插装的方法实现,代码膨胀率高;(3)无法直观显示覆盖情况;(4)不能够对测试用例进行优化。GUI软件功能繁多、组合复杂,通过上述方法,测试人员难以准确掌握软件的所有 功能,难以遍历软件的这些功能,无法得知测试用例对软件功能的覆盖程度,容易造成功能 点的重复和遗漏,严重影响了测试质量和效率。
技术实现思路
本专利技术所解决的技术问题是提供一种,解决 了软件功能图自动生成问题。技术方案如下一种,包括通过对被测软件进行分析,找出软件所有窗口之间调用关系、每一个窗口内部所 包含的事件及其相互关系以及窗口之间的事件交互关系,并根据事件在测试过程中所起的 作用对事件交互图进行简化;对测试过程进行跟踪,捕获所述被测软件执行过程中所经过的窗口和事件,并根 据捕获的所述测试用例的执行信息生成软件操作图;对测试用例进行优化,根据测试用例测所覆盖的事件和事件路径等信息,剔除重 复和冗余的测试用例;所述测试用例根据所述被测软件设计,在测试过程中,通过执行所述 测试用例对所述被测软件进行测试;将所述软件操作图与所述事件交互图进行比对,在所述事件交互图上标识出已覆 盖的事件和事件交互,同时,给出测试覆盖统计结果;判断是否满足覆盖标准,根据测试覆盖统计结果,判断是否满足设定的测试覆盖 标准;若满足,则停止测试;否则,跟踪新的测试用例执行情况。进一步所述被测软件的信息分析是通过识别图形用户界面GUI软件中控件,在 构建窗口调用关系图和窗口内事件关系图的基础上得到被测软件的事件交互图,并对事件 交互图进行化简。进一步所述被测软件的信息分析的过程包括识别⑶I软件中控件;构建窗口调用关系图;生成窗口内事件关系;得到被测软件的事件交互图,内容包括控件的名称、属性和相互关系;对事件交互图进行化简。进一步所述事件包括输入/输出性事件、系统交互事件、结构操作事件和无关联 事件。进一步根据事件在测试过程中所起的作用对事件交互图进行简化时,根据对 GUI软件窗口中的事件进行分类,去除不需要的事件之间的交互。进一步构造GUI窗口调用关系图时,对被测软件的窗口及控件进行捕获识别, 按照窗口和控件的标题来识别被测软件的信息;如果出现反复使用的控件,使用控件的句 柄来唯一标识,调用新的窗口后,使用窗口的句柄来标识窗口,并且记录窗口之间的调用关 系,生成窗口调用关系图。进一步测试过程跟踪过程中,采用钩子技术捕获测试用例执行过程中所经过的 窗口、事件和记录测试用例的执行过程,并根据捕获的测试用例执行信息,生成软件操作 图。进一步对测试用例进行优化时在获取的软件操作图基础上进行,剔除重复和冗 余的测试用例。进一步在判断是否满足覆盖标准之前还包括测试覆盖的统计与显示。进一步所述覆盖标准包括窗口覆盖准则、窗口内部事件覆盖准则、窗口内部事件 交互覆盖准则、η长度事件路径覆盖准则或者输入空间覆盖准则;其中,所述窗口覆盖准则是指,当且仅当测试人员所设计的测试用例集T覆盖了 GUI软件所包含的所有窗口,就称该 测试用例集T是窗口覆盖充分的;所述窗口内部事件覆盖准则是指,当且仅当测试用例集 T覆盖了窗口内部所有的事件,就称该测试用例集T是窗口内部事件覆盖充分的;所述窗口 内部事件交互覆盖准则是指,当且仅当测试用例集T覆盖了 GUI软件窗口内部所有事件交 互,就称该测试用例集T是窗口内部事件交互覆盖充分的;所述η长度事件路径覆盖准则是 指,当且仅当测试用例集T覆盖了 GUI软件所包含的所有η长度事件路径,就称该测试用例 集T是η长度事件路径覆盖充分的;所述输入空间覆盖准则是指,当且仅当测试用例集T覆 盖了操作点序列中所有的输入空间特征值组合,就称该测试用例集对此操作点序列的输入 空间是覆盖充分的。本专利技术的技术效果如下1、解决了软件功能图自动生成问题。目前的软件功能图靠手工实现,工作量大,差 错率高;2、解决了事件交互图简化问题。本专利技术提出的简化方法符合软件测试实际,简化 后对测试效果没有影响;3、采用基于有向图的贪心算法对测试用例进行优化,并将其与测试过程有机结 合。本专利技术提出的方法避免了普通贪心算法容易将两个不同路径的测试用例误合并问题;4、采用增强的录制方法,能够识别屏幕上所显示的控件信息,记录信息的可读性 好;5、采用图形化方式,直观显示测试覆盖情况,并能够给出覆盖次数等信息,方便了 测试人员使用。附图说明图1是本专利技术的主流程图2是本专利技术的软件信息分析流程图3是本专利技术的MS记事本软件的替换窗口示意图4是本专利技术的简化后事件交互图5是本专利技术的按钮控件获取流程图6是本专利技术的文本框获取流程图图7是本专利技术的菜单项获取流程图8是本专利技术的IP地址框获取处理流程图9是本专利技术的ListBox列表框获取处理流程图10是本专利技术的ListView控件处理流程图11是本专利技术的未操作控件默认属性提取流程图12是本专利技术的跟踪MS记事本软件中部分操作所得到的软件操作图具体实施例方式本专利技术主要解决软件功能图自动生成、测试过程跟踪、功能覆盖统计与显示、测试 用例优化技术问题,使测试人员能够直观、准确掌握测试用例对软件功能的覆盖程度本文档来自技高网
...

【技术保护点】
一种图形用户界面软件功能覆盖测试方法,包括:通过对被测软件进行分析,找出软件所有窗口之间调用关系、每一个窗口内部所包含的事件及其相互关系以及窗口之间的事件交互关系,并根据事件在测试过程中所起的作用对事件交互图进行简化;对测试过程进行跟踪,捕获所述被测软件执行过程中所经过的窗口和事件,并根据捕获的所述测试用例的执行信息生成软件操作图;对测试用例进行优化,根据测试用例测所覆盖的事件和事件路径等信息,剔除重复和冗余的测试用例;所述测试用例根据所述被测软件设计,在测试过程中,通过执行所述测试用例对所述被测软件进行测试;将所述软件操作图与所述事件交互图进行比对,在所述事件交互图上标识出已覆盖的事件和事件交互,同时,给出测试覆盖统计结果;判断是否满足覆盖标准,根据测试覆盖统计结果,判断是否满足设定的测试覆盖标准;若满足,则停止测试;否则,跟踪新的测试用例执行情况。

【技术特征摘要】

【专利技术属性】
技术研发人员:于秀山
申请(专利权)人:于秀山
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1