[发明专利]将针对图形用户界面的测试脚本模块化和方面化有效
申请号: | 201010232300.4 | 申请日: | 2010-07-15 |
公开(公告)号: | CN101957791A | 公开(公告)日: | 2011-01-26 |
发明(设计)人: | M·格雷查尼克;谢晴;傅忱 | 申请(专利权)人: | 埃森哲环球服务有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京市金杜律师事务所 11256 | 代理人: | 酆迅;姜彦 |
地址: | 瑞士沙*** | 国省代码: | 瑞士;CH |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 图形 用户界面 测试 脚本 模块化 方面 | ||
技术领域
本公开涉及使用测试脚本来测试图形用户界面(GUI)应用,并且具体地,涉及用于创建对不同的GUI应用和/或GUI应用的不同版本进行测试的可复用和/或可调整的测试脚本的系统和方法。
背景技术
先进技术的不断发展产生了有助于令日常生活的几乎每个方面自动化的复杂计算机软件应用。目前,存在用以对各方面进行协助的应用,从写小说、填写所得税申报表到分析婴儿名字历史趋势。这些应用的一个几乎普遍存在的特征在于其采用图形用户界面(GUI)。GUI实现了图形窗口、指针、图标和其他特征,用户通过这些特征与底层程序进行交互。利用GUI实现的程序称为GUI应用(GAP)。GAP在发布之前需要进行全面测试。
过去,将GUI实现于应用中比全面测试GAP要容易。对于任何很复杂的GAP而言,GUI元素的排列和组合产生了可能具有从轻微到致命故障的任何严重程度错误的潜在命令和命令序列。由此,GAP必须进行全面测试以便保证GUI按照预期来与用户进行交互。手动测试大型企业GAP是乏味、易错且繁重的。作为对手动测试的替代,测试工程师开发了测试脚本来使GAP测试自动化。
测试脚本包括导航语句和逻辑语句。导航语句访问和操纵或者获取GUI对象的特性,而逻辑语句确定GAP是否按照预期运行。在执行时,这些测试脚本通过借由在GUI对象执行动作来模仿用户与GAP进行交互的活动,而在不同状态中驱动GAP。测试脚本处理输入数据、使用该数据来设置GUI对象的值、对该GUI对象执行动作以使GAP执行计算、访问其他GUI对象以获取计算结果,以及将结果与期望结果进行比较。为了测试GAP的不同GUI和功能,必须编写多个不同的测试脚本。作为一个示例,测试旅行预订GAP将需要不同的测试脚本来测试不同的GUI对象,在用户通过GAP进行导航以预订出发航班、预订酒店和/或汽车、预订返回航班以及做出其他旅行安排时显示这些GUI对象。一个测试脚本可以确定GAP是否响应于用户选择特定出发航班而显示了正确的返回日期选项,而另一测试脚本可以确定响应于该相同用户选择的酒店预订日期是否是正确的。为了全面测试旅行预订GAP,必须编写更多的测试脚本。
虽然确定是否显示了正确日期是适用于多种不同类型GAP的普遍存在的测试,但是测试脚本(例如,旅行预订测试脚本)不可移植以用于测试其他类型的GAP,因为逻辑语句夹杂了GAP相关的导航语句以便访问和测试GAP内的GUI对象。同样,当修改GAP(即,相同GAP的不同版本)时,测试脚本难于更新,因为必须重写的导航语句分散在多个不同的测试脚本之间。测试工程师已经发现,测试脚本即使在相同GAP的不同版本之间也是不易于移植的,并且在多数情况下,更希望从头编写新的测试脚本而不是修改现有测试脚本。
生成跨不同的GAP或者相同GAP的不同版本可移植的测试脚本存在其他障碍。在一种生成测试脚本的方法中,捕获/重放工具被用于记录鼠标坐标和用户动作。然而,因为捕获/重放工具使用鼠标坐标,所以(即使轻微地)改变GUI布局,通常将使测试脚本无效。另一生成测试脚本的方法称为“利用对象映射来测试”,其捕获GUI对象的特性值(而不仅仅是鼠标坐标)。测试工程师给GUI对象的特性值集合指派唯一的名称,并且继而在测试脚本中使用这些名称来引用对象。理论上,对GUI布局的改变可以通过修改GUI对象的特性值来说明,这些GUI对象通常存储在对象库中。然而,即使在由于以下所阐述的相关性而对GUI做出很小的改变时,更新基于对象映射的GUI测试(如果不是禁止的)也是困难的。
导航和操纵表达式(NAME)是在测试脚本导航GUI对象、设置或获取GUI对象的值或者对其执行动作时使用的表达式。NAME包括应用编程接口(API)调用,其具有保持正在接受测试的GUI对象的特性值的对象。不同的测试架构导出不同的API调用来访问和操纵GUI对象。由此,NAME依赖于GUI对象类型(例如,列表框、文本框等)、屏幕上对象的位置以及底层GUI测试架构。因为NAME通过GUI对象的特性来引用GUI,所以即使GUI对象最细微的改变也可使引用该GUI对象的测试脚本内的所有NAME无效。例如,将GUI对象从组合框改变为文本框将几乎一定会使引用GUI对象的原始测试脚本中所有NAME无效。NAME和测试逻辑之间的互相依赖使得测试脚本硬连线至特定GAP和测试架构。因为GUI对象的创建依赖于底层GUI框架,其在不同的GAP之间可能是不同的,所以测试脚本的可移植性进一步恶化。由于这些原因,迄今为止,基于NAME的测试脚本即使在具有相同功能性的GAP之间都是不可复用的,从而丧失了测试自动化的潜在益处。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于埃森哲环球服务有限公司,未经埃森哲环球服务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010232300.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种罗勒提取物的精制方法
- 下一篇:泮托拉唑与多潘立酮的联合用药物