实战 GUI 产品的自动化测试,第 2 部分:构建利于维护的自动化测试系统

发表于:2011-7-01 10:57

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:孙沛 陈晓鹏 陈海泉    来源:51Testing软件测试网采编

  简介:

  自动化测试技术是保证产品质量的重要手段。随着敏捷开发方法的盛行和产品发布周期的缩短,产品对测试的要求也相应提高,因此自动化测试也变得比以前更加重要。冰冻三尺非一日之寒,和产品开发一样,产品的自动化测试系统也需要通过迭代开发不断强化,逐步解决效率瓶颈,更广泛、更灵活的支持产品开发的需求。那么,如何从无到有建立 GUI 产品的自动化测试系统?GUI 产品自动化测试每一阶段的目标是什么?在逐步演化的过程中,我们可能会面对哪些问题?这些又可以如何解决呢?本系列文章希望能够结合我们团队的经验,一一解答。

  在上篇文章中,我们介绍了 GUI 产品自动化测试的一些基本原则和工作原理,也了解了如何通过 Rational Functional Tester(RFT)这一强大的自动化测试工具来进行脚本的录制和回放。不知您是否已经亲手尝试过呢?RFT 能够帮我们轻松生成一些简单的代码,不过,要想构建出易于维护的测试系统,却并没有那么简单。在本篇文章中,让我们一起来看一看构建一个易于维护和扩展的系统又需要注意哪些方面的问题。

  基石——IBM 框架简介

  Rational Functional Tester 是通过录制和回放机制来实现自动测试的,对于每个脚本,都有独立的对象映射文件,包含对测试对象(TestObject)的定义。当对同一个应用程序界面录制多个脚本时,会重复地定义测试对象。随着工程规模的扩大,维护代码将会逐渐出现困难。因为,当被测程序界面发生变化时,用户必须更新相关的每个对象映射文件。测试用例数量越大,维护工作就会变得更繁重。为了解决代码重用的问题,IBM QSE 团队总结并在很多测试项目中应用了叫做 IBM 框架的(又称 ITCL)代码结构。

  此架构包括三个层次:

  ● 应用对象层:该层包含以被测程序用户界面元素逻辑关系组织的类。这些类又基于每个更基础的类,比如按钮和文本框。这些类将 RFT 的测试对象完全封装起来,并使它们能被上层代码重用。

  ● 任务层:包括以被测程序功能组织的类,这些类中的函数通过调用应用对象层的类,能够执行连贯的操作步骤以实现某些功能,并能被多个测试用例使用到。

  ● 测试用例层:调用应用对象层和任务层的代码,按测试用例的要求执行测试步骤,验证测试结果和输出日志

图 1. IBM 框架(又称 ITCL)

  测试用例层名如其意,一看就明白。下面,让我们分别来仔细看一看作为三层架构基础的应用对象层和任务层:

  应用对象层

  应用对象层包含两部分内容:测试控件库和界面定义。

  被测程序中的每种控件都能在测试控件库中找到对应的类,比如按钮和文本框会有对应的类:NPushButton 和 NTextField。这些类提供了基本的方法让用户操作控件和获取控件属性。

  被测程序中的界面也在应用对象层被定义成类,它包含着这一界面中所有控件信息的定义。以图 1 所示消息对话框为例,它在应用对象层中对应的类叫做 DlgSpellCheck(见例 1),里面定义着不同的方法。每个方法用于获取界面上的一个控件。通过这个方式,被测程序的每个界面元素,都在应用对象层中有唯一的定义。任务层调用应用对象层的方法得到控件对应的类,再调用控件类的方法来操作控件和获取验证信息。

《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号