[发明专利]跨模型的图形用户界面测试脚本自动修复方法无效
| 申请号: | 201110419535.9 | 申请日: | 2011-12-15 |
| 公开(公告)号: | CN102567201A | 公开(公告)日: | 2012-07-11 |
| 发明(设计)人: | 陈振宇;高则宝;邹云潇;骆斌 | 申请(专利权)人: | 南京大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/44 |
| 代理公司: | 南京天翼专利代理有限责任公司 32112 | 代理人: | 黄明哲 |
| 地址: | 210093 江*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 模型 图形 用户界面 测试 脚本 自动 修复 方法 | ||
技术领域
本发明属于软件测试技术领域,尤其是软件测试中针对图形用户界面GUI程序的回归测试技术领域,修复对象是自动化GUI测试脚本,具体来说是测试工程师使用自动化GUI测试工具录制的测试脚本,为一种跨模型的图形用户界面测试脚本自动修复方法。
背景技术
软件工程中,软件测试是必不可少的重要的一环。为了保证软件质量,软件测试工程师需要花费大量人力物力进行软件测试。这些测试活动包括系统级别的测试,即图形用户界面GUI测试。现有的自动化测试工具提供了录制/重放的功能,测试工程师可以手工录制测试脚本,并在回归测试过程中重新执行测试脚本。
然而随着软件演化和版本变更,应用程序的GUI往往会发生或大或小的变更。由于自动化测试工具录制的GUI测试脚本的执行依赖于GUI具体的层次结构,因而应用程序GUI上细微的变更往往可能导致回归测试中大量在旧版本GUI程序上录制的GUI测试脚本在新版本的GUI程序上无法顺利执行。手工修复这些旧版本GUI测试脚本或者抛弃旧版本测试脚本重新为新版本GUI程序录制一套GUI测试用例集是一项繁杂的工作,需要耗费大量的人力和时间。
目前业界使用的自动化GUI测试工具很多,有HP公司的QTP(Quick Test Professional)、HP公司的Win Runner,IBM公司的Rational Robot等。以HP公司的QTP为例,它是目前业界应用广泛的GUI测试工具,它使用录制/重放的机制辅助测试工程师实现GUI测试脚本的手工录制和自动回放。
事件可达性模型是基于应用程序的GUI结构而得到的有向图模型。有向图中的节点为应用程序的GUI中的控件元素上触发的点击事件,而有向图中的一条有向边表示从上一个GUI元素上的点击事件到下一个GUI元素的点击事件可达。GUI应用程序的事件可达性模型数据通常用XML文件的形式来持久化。目前存在一些工具如GUITAR等可以用来自动抓取应用程序的GUI结构并分析控件点击事件之间的可达性,从而得到GUI应用程序的事件可达性模型。
目前已有一些工具,比如GUITAR使用自动化的过程来抓取并解析应用程序的GUI结构和事件流程,从而得到GUI程序的事件可达性模型。然而,由于实际GUI应用中GUI结构具有较大的复杂性,并且许多GUI控件需要通过执行特定操作产生特定情景之后才可用,因而给自动抓取带来了很大困难,进而导致自动抓取解析得到的事件可达性模型在很大程度上不能完整描绘GUI应用程序中包含的全部事件流程,甚至很可能会有大量控件未被识别。
因此目前阶段,完全基于自动化获取的事件可达性模型的修复方法在实际的GUI测试脚本修复中往往很难解决具体的问题,可用性有限。
发明内容
本发明要解决的问题是:现有的自动化事件可达性模型不能完整描绘GUI应用程序中包含的全部事件流程,甚至很可能会有大量控件未被识别;在脚本修复过程中需要处理事件不可识别,即在新版本的事件可达性模型中找不到相应的GUI控件和事件,或者事件流可达性失效,也即上一个事件触发之后,不可以直接触发当前事件的问题。
本发明的技术方案为:跨模型的图形用户界面测试脚本自动修复方法,对在旧版本图形用户界面GUI程序上录制的GUI测试脚本,针对新版本的GUI程序进行自动修复,
1) 使用工具自动获得新版本GUI程序的自动化事件可达性模型,通过GUI测试脚本语句中描述的GUI控件的层次信息,在自动化事件可达性模型中描述的GUI层次结构中找到对应的GUI控件元素,事件可达性模型中GUI控件和其点击事件一一对应, GUI测试脚本的GUI控件对应映射到自动化事件可达性模型中的点击事件,完成事件流映射;
2)建立一个自建事件可达性模型,自建事件可达性模型为有向图结构,图中的节点为GUI事件,包含事件相关的GUI控件信息以及事件类型信息,GUI控件信息包括GUI控件的名称、类型、以及父级GUI元素的层级关系, 图中的有向边A->B表示从事件A到事件B可达,也即应用程序在触发事件A之后可以直接触发事件B,自建事件可达性模型初始为空;
3)使用自动化事件可达性模型和自建事件可达性模型分析GUI测试脚本的事件流,当检查到某行GUI测试脚本语句相应的事件在自动化事件可达性模型以及自建事件可达性模型中找不到对应节点的时候,出现了事件不可识别的问题:
3.1) 如果测试工程师指出没有找到的节点是因为相应GUI控件在新版本GUI程序中已经被删除,则使用跳过此节点直到找到下一个合法节点的方法修复GUI测试脚本;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110419535.9/2.html,转载请声明来源钻瓜专利网。





