当前位置: 首页 > 专利查询>南京大学专利>正文

基于事件可达性模型的图形用户界面测试脚本修复方法技术

技术编号:7262901 阅读:330 留言:0更新日期:2012-04-14 09:04
基于事件可达性模型的图形用户界面测试脚本修复方法,获取待测新版本GUI的控件元素之间的事件序列可达性关系,生成描述GUI结构和GUI控件事件调用可达性关系的模型;并对已有测试脚本进行剖析,得到原测试脚本的GUI测试操作序列;然后将GUI测试操作分类为关键操作和非关键操作,通过采用保留关键操作的方式,保留原测试脚本的测试逻辑;在事件可达性模型中搜索路径,在关键操作之间插入相应的粘合操作使得修复后的测试脚本能够在新版本GUI上正常回放,完成测试脚本的修复。本发明专利技术对失效的测试脚本进行修复,保证测试用例原有测试逻辑,减轻了测试人员的负担,解决了回归测试中GUI脚本失效的问题。

【技术实现步骤摘要】

本专利技术属于软件测试领域,尤其是针对图形用户界面GUI程序的回归测试技术和全流程自动化测试研究,采用基于对象库和事件可达性的模型修复技术,是一种测试用例修复技术,为一种。
技术介绍
现今工业界中图形用户界面测试,即GUI测试往往基于录制/回放工具,人工录制GUI测试脚本,并在测试阶段将GUI脚本在GUI上自动回放。市场上存在若干款基于录制/回放的商业或开源⑶I自动化测试软件。例如惠普公司(HP)的QuickTest Professional WrP)、国际商用机器公司(IBM)的 Rational Functional Tester (RFT)以及开源GUI自动化测试框架WatiN等。其中惠普公司的QTP产品质量可靠,市场应用广泛,已是事实上的业界标准。这种基于录制/回放技术的GUI测试往往应用于回归测试。然而,在软件开发过程中,GUI的修改,即使是较小的修改往往会引起大量原有GUI测试脚本失效。GUI脚本失效问题较大程度上限制了 GUI自动化测试的广泛应用。GUI测试用例修复技术旨在解决该问题,该技术根据GUI的变化信息,尝试对测试用例进行修复,使得经过修复的测试用例能够在新版本的GUI上正常回放。该方法能够修复失效的测试用例,有助于保持原有测试用例集的覆盖率。最初的GUI测试用例修复技术采用完全由人工手动修复的方式对GUI测试用例进行修复。测试工程师分析新旧版本GUI的变化信息,并修改失效测试用例的相关语句,使得经过修改的测试脚本能够在新版本GUI上正常回放。人工修复修复成功率很高,而且经过修复的测试用例往往能够很好的保留原有测试逻辑。但是,人工修复效率较低,消耗大量人力成本。软件模型是对软件行为和软件结构的抽象描述,在GUI测试用例修复技术中,可以通过建立⑶I结构模型,描述⑶I信息和新旧版本⑶I之间的变化信息的方式,指导⑶I 测试用例的修复。基于测试模型的GUI测试用例修复技术可以在一定程度上用于GUI测试用例的自动化修复。近几年学术研究中提出了一些基于模型的测试用例修复技术。如基于 GUi模型的GUi测试脚本辅助修复工具和基于Ere模型的测试模型的自动修复工具。但是这些工具存在一定的不足,基于GUI模型的GUI测试脚本辅助修复工具为测试工程师提出了修复建议,但并没有完成GUi测试用例的自动化修复;基于Ere模型的测试测试用例修复工具虽然完成了自动化修复,但是修复过程可能会改变测试用例原有测试逻辑。综上所述,基于模型的GUI测试用例修复技术,通过采用分析模型中描述的GUI信息和新旧版本GUI变化信息的方式,指导或者完成GUI测试脚本的修复,使得修复后的测试脚本能够在新版本GUI上正常回放。但是,目前提出的基于模型的GUI测试用例修复技术存在不能自动化修复的不足。
技术实现思路
本专利技术要解决的问题是GUI的回归测试中,需要对失效的GUI测试用例进行修复,现有的GUI测试用例修复技术不能在实现自动修复的同时保证测试用例原有测试逻辑,需要一种能实现自动化修复并保有原来测试逻辑的测试脚本修复方法。本专利技术的技术方案为, 获取待测新版本图形用户界面GUI的控件元素和控件元素之间的事件可达关系,生成描述 GUI控件事件可达性关系的GUI控件事件可达性模型;对旧版本测试脚本进行剖析,得到旧版本测试脚本的GUI测试操作序列,然后将所述GUI测试操作序列中包含的测试操作分类为关键操作和非关键操作,通过保留关键操作的方式保留旧版本测试脚本的测试逻辑;通过在GUI控件事件可达性模型中搜索路径,在关键操作之间插入粘合操作,使得经过粘合操作得到的新测试脚本在新版本GUI上正常回放,完成测试脚本的修复,其中,对于关键操作和非关键操作的判断,通过考察该操作对待测新版本GUI结构的影响的方式判断该操作的类型,如果操作执行后待测新版本GUI的结构不发生改变, 则认为这个控件是关键操作,反之则为非关键操作。具体包括以下步骤1)、生成待测新版⑶I的事件可达性模型1. 1)、通过⑶I自动化测试软件的图形用户界面学习工具生成待测新版⑶I的对象库;1. 2)、根据人工生成或者自动获取的控件类型和控件-窗口调用关系列表信息, 结合对象库生成待测GUI的事件可达性模型;2)判断旧版本测试脚本是否失效,失效则进行修复2. 1)利用人工生成或者自动获取的控件ID对应关系或新旧版本GUI控件映射表中描述的控件对应关系,将旧版本测试脚本GUI测试操作序列的GUI元素转化成新版本GUI 的元素;2. 2)检测转换后的操作序列所涉及的控件和控件序列是否在事件可达性模型存在相应的点和边,判断旧版本测试脚本是否失效,如果检测所涉及的控件和控件序列在事件可达性模型中都存在相应的点和相应的边,则有效,反之,则失效;3)对步骤2、中检测失效的测试脚本进行修复3. 1)将旧版本测试脚本转化成GUI测试操作序列;3. 2)提取⑶I测试操作序列的关键操作;3. 3)将旧版本测试脚本的关键操作转化成可以在新版本GUI上回放的关键操作 采用ID映射或者通过查询新旧版本GUI控件映射表进行映射的方法,将旧版本测试脚本的关键操作映射为新版本的操作;3. 4)在转化后的关键操作之间插入粘合操作;3. 5)生成适用于新版本的⑶I新测试脚本,完成修复。步骤1. 2)具体如下1. 2. 1)对于对象库中的⑶I控件元素,通过分析控件类型确定这个控件元素和本窗口其他控件元素的关系;1. 2. 2)对于对象库中的⑶I控件元素,通过分析控件-窗口调用图关系确定这个控件元素和其他窗口下控件元素之间的关系;1. 2. 3)根据步骤1. 2. 1)和1. 2. 2)中的信息生成事件可达性模型,具体步骤如下如果是简单控件,即没有结构信息的GUI控件元素,这个控件和其他简单控件,以及结构控件的顶层控件为事件可达关系;如果是结构控件,则这个控件和简单控件以及其他结构控件的顶层控件为事件可达关系,并且和该结构控件层次结构的下一级控件为事件可达关系;如果是结构控件层次结构的中间级控件,则该控件和该结构层次的下一级控件、该结构控件结构层次的上一级控件、该结构控件结构层次的同一级控件、简单控件以及其他结构控件的顶层控件为事件可达关系。步骤3. 4)的粘合操作为确定两个相邻关键操作涉及的控件在事件可达性模型中对应的节点,利用路径寻找算法寻找两个控件之间的路径,即两个控件之间的需要的点击操作,并将这些操作插入相应的两个相邻关键操作之间,使得关键操作序列在新版本GUI 上正常回放。所述控件类型和控件-窗口调用关系列表信息,以及新旧版本GUI控件映射表由人工生成或者自动获取的方式得到,其中,控件类型和控件-窗口调用关系列表信息由人工的方式确定或采取GUI逆向工程的方式自动获取;新旧版本GUI控件映射表由人工生成, 如果待测软件的GUI版本管理采用了 GUI控件ID管理的方式,则可以通过版本管理GUI控件的ID信息自动生成新旧版本GUI控件映射表。在多数情况下,一个⑶I测试脚本可以看作⑶I操作序列。在⑶I脚本录制过程中,测试工具记录测试工程师的操作,如鼠标点击,键盘输入等,并将这些操作以GUI操作序列的形式记录到⑶I测试脚本中。这些操作有的涉及到业务逻辑,有的不涉及业务逻辑。 本专利技术定义了关键操作和非关键操作的概念本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:陈振宇邹云潇高则宝赵志宏
申请(专利权)人:南京大学
类型:发明
国别省市:

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

1
相关领域技术