使用 Rational Functional Tester 给开发人员带来的好处

Comments

企业应用程序开发会涉及具有单独的小组,拥有清楚的职责的大型项目团队。团队常常被分成更小的分析人员团队、开发人员团队和测试人员团队。虽然这可以成为一个适当的管理结构,但它还创建了团队之间的屏障。我们的经验是当一个正式的测试团队成立时,开发人员可能更少进行自己代码的彻底测试了。这虽说不上是开发人员不关心开发出好的产品,但可以简单地说测试成为“其他人的工作”了。该问题常常混合了功能测试只是测试团队的工作,及单元测试只是开发团队的工作的假设。两级测试的界限是模糊的,并导致责任的间隙没有传达清楚。

重要的是您得承认开发人员(我们所知道的开发人员)喜欢解决复杂的设计和代码问题,而不喜欢开发测试。只有在以下的情况下,开发人员才认为测试是重要的:当测试与帮助解决问题相关;当测试能够确保问题能够被解决;当测试能够帮助解决工作中的其他问题。归根结底,本文将向您介绍可以使用 IBM® Rational® Functional Tester 来帮助解决这些问题的方法。它不是对更加传统的开发人员测试工具的替代,而是另一个能够使您更好地进行具体类型的测试的工具。

关于开发者测试的公共问题

传统的开发人员测试在单元级别上发生。像 JUnit 和 NUnit 的工具会虑及开发人员功能的低级别操作,且它们提供用于报告通过或失败结果的标准报告结构。其他工具,如 JUnitBe,允许在一个网络容器中执行测试用例以测试容器资源。所有这些工具能够:

  • 允许您用自己的母语和环境来书写测试用例
  • 是可扩展的
  • 包括多种用来实施您可能想要执行的大多数类型的测试扩展

然而,大多数这些工具不能从用户的观点来实施测试。那些从用户观点考虑测试的工具常常受限于一个具体的情况或环境(Swing、Internet Explorer,等等)。JFCUnit 是这种工具的一个杰出实例。另外,几乎所有这些工具都要求您手动书写测试用例代码。它们不提供获取测试、测试数据、或复杂情况的自动方法。由于它们依赖于要进行编码的测试用例、隐藏的接口和多种需要在不同环境中测试的工具,所以这些工具的使用对开发人员常常是有限制的。测试人员不会复用它们,除非那些测试人员本质上是技术性的。

开发人员常常处于紧张的项目进度中。这导致测试用例很难保持最新。当使用需要编码的解决方案时,如 NUnit,单元测试工件需要手动地与日期保持同步。如果您落后进度了,且测试用例打破了,那么您必须快速处理否则它将成为您开发工作史上仅仅的闪光点。常常只有最专注的开发人员会在面临紧张的期限时花时间来维护他们所有的单元测试。

用户界面表现出另外的难题。测试一个用户界面组件需要进行单元执行、数据输入和结果评估。复杂的界面(不论是基于 Web 的、Swing,或其他的)将问题扩大了。您可能需要测试组件对具体输入值的反应,但在到达该组件之前,需要对多个面板进行输入,才能到达此输入区域。在最终到达您所关心的要进行评估的值之前,这可能导致花费许多分钟来进行数据输入及面板显示。

Rational Functional Tester

Rational Functional Tester 是一个面向对象的自动测试工具,它可以使您测试多种应用程序。您可以通过记录对应用程序的测试来快速地生成脚本,并且您可以测试应用程序中的任意对象,包括对象的属性和数据。Rational Functional Tester 为您提供一个选择脚本语言和开发环境的机会 —— Eclipse 框架中的 Java™ 或者 Microsoft® Visual Studio ® .NET 开发环境中的 Microsoft ® Visual Basic® .NET。

将 Rational Functional Tester 集成到您的开发平台中可以把您带到一个新的效率级别上。这是一个巨大的优势,因为进行安装后,Rational Functional Tester 就成为您的本地开发环境中的一个无缝部分。Rational Functional Tester 提供记录和回放功能,并存储 Java 或 .NET 源代码的记录脚本。其允许您实际上不做任何工作就能创建可重复的测试脚本,也允许您使用您的程序设计技术用您本地的开发语言来增强脚本以满足具体的需求。

此功能及方便的使用为进行开发和测试团队之间的新级别的整合创造潜能。设想一个使用了包含典型的工作台应用程序工程的公共源存储库的工程,也包含测试工件工程。这里是几个此类型环境中的可能的情况:

  • 情况 1:开发人员为系统增强录制新脚本并检入(check in)测试脚本。一个可以将脚本添加到一套适当的测试程序中并准备在开发人员结束编码之前就进行应用程序新版本的回归测试的测试人员立即得到了该脚本!
  • 情况 2:开发人员为系统增强录制新脚本并检入(check in)测试脚本。一个可以使脚本成为数据驱动并开始向开发人员已经编码的简单用例中添加更多用例的测试人员立即得到了该脚本。
  • 情况 3:开发人员收到了一张关于功能测试周期中遇到的问题的缺陷清单。缺陷清单标识遇到了问题的测试脚本。开发人员在本地调试模式下启动应用程序,在合适的位置设置断点,选择清单中标识的脚本并开始回放。
  • 情况 4:测试人员正在开发针对产品某一特性的测试用例。测试人员对应用将要或应该表现的方式感到困惑。测试人员可以打开开发人员的测试脚本、检查代码和注释,并执行测试脚本以查看开发人员认为正在开发的内容是什么。如果测试人员看到问题,他可以以对于开发人员编码的新测试用例的形式来建议变更。
  • 情况 5:开发人员坐下来维护不是他们开发的一小段代码。开发人员对代码表现的方式感到困惑。开发人员可以打开测试脚本,检查代码和注释,并运行测试脚本以查看原有开发人员所认为自己开发的内容是什么。

很难找到能够加强此级别上的开发人员与测试人员间的协作的工具。

不需要您的测试人员进行记录和重放

当您记录脚本的时候,Rational Functional Tester 会自动为被测的应用程序创建测试对象地图。对象地图包含每个对象的识别属性。当您更新对象地图中的识别信息时,任何使用该对象地图的脚本会共享更新的信息,这减少了维护的成本及整个脚本开发的复杂度。对象地图还提供向脚本添加对象的快速方法。它列出应用程序中用到的测试对象,不论它们是否为当前显示出的。您可以通过依据现有的地图或按照需要添加对象来创建新的测试对象地图。

Rational Functional Tester 还以 ScriptAssure 为特色:对象识别技术可以使您成功地回放脚本,甚至是当在测应用程序已经更新过的时候。您可以为测试对象必须通过的,能作为识别候选的识别分数设置门槛,并且如果 Rational Functional Tester 接受了分值高于指定门槛的候选者,您还可以向日志文件中书写警告。这减少了开发人员花在维护 GUI 级别的测试脚本(例如,不同于 JFCUnit)上的时间。

对象地图可以是共享的也可以是私有的。私有地图依附于脚本并且只由该具体的脚本进行访问,反之,共享地图由多个脚本共享。共享地图的优势是,当需要更新对象时,对地图中的一个更新就能修改多个脚本。在 Rational Functional Tester Projects 视图中或当您创建新的测试对象地图时,您可以将多个私有的或共享的测试对象地图合并成一个单个的共享测试对象地图。Rational Functional Tester 可以随意地更新您所选择的指向新合并的测试对象地图的脚本。

超过简单的断言

在记录过程中,您可以向脚本中插入验证点以确定在被测应用程序的构造过程中对象的状态。验证点捕获对象信息(根据验证点的类型,可以是对象属性验证点或五种数据验证点类型中的一个 —— 菜单等级表格文本树形层次列表)并存储到基本数据文件中。此文件中的信息成为随后的构造过程中对象的期望状态。在执行测试之后,您可以利用 Verification Point Comparator 来分析区别,或者如果对象性能改变了,就更新基线(期望的对象状态)。其不仅能提供比传统的断言的更多种的功能,还将数据放在能复用的地方。

您可以用正则表达式替代识别属性 —— 或者考虑基于模式的识别,替代精确地匹配。这允许对象识别中的更多灵活性。您还可以将属性转变成正则表达式及 Verification Point Editor 中的或测试对象地图中的数值范围。另外 Regular Expression Evaluator 允许您编辑时测试表达,这节省了您不得不运行脚本以查看模式是否运行的时间。

继续前进

安装并设置

如果您已经购买了多个 IBM Rational 应用程序的许可版本,您将发现 —— 在安装过程中 —— 单个组件被安装到一个集成的 eclipse 环境中(对于 .NET 的一些扩展是一样的)。要了解集成的应用程序的细节,请参见安装包中 1 号盘中的 install.html 文件。

集成试用版软件

如果您已经下载并安装了 Rational Functional Tester 的测试版本,那么该产品会安装到一个独立的配置上且会与其他 IBM Rational 工具安装集成到一起。出于评估的原因,存在一种集成这些组件的方式,但您不会符合接收来自 IBM Rational 关于这些产品强制集成的技术帮助的条件。

Eclipse 平台是为了将来自多个供应商的产品合并到一个单独的集成环境中而设计的。每个以独立方式安装的产品会有一个 eclipse 文件夹,且也会拥有具体到可插入组件的文件夹。如果您在安装文件夹中检查 Rational Functional Tester Trial 版本,您会找到名为 eclipse 的文件夹,其中含有一个名为 links 的子文件夹和在该文件夹下的名为 com.rational.test.ft_6.1.0.link 的文件。如果您从此位置复制该文件并将副本放置在目标 eclipse 平台安装的 links 文件夹下,在您下次启动 eclipse 平台时 Rational Functional Tester 组件会加入到平台中。

学习 Rational Functional Tester

要得到关于使用 Rational Functional Tester 的一些介绍性材料,查看 Configuration and installation issues with IBM Rational Functional TesterIntroduction to IBM Rational Functional Tester 6.1Using IBM Rational Functional Tester 6.1 to run your first functional regression test

其他 IBM Rational 开发人员测试工具

作为那些您想知道的边注,Rational Functional Tester 工作于 IBM ® Rational® ClearCase® 单流统一变更管理(Unified Change Management,UCM)的视图中。在 Rational Functional Tester 中创建的工件可以分别进行版本控制,就像传统的单元测试脚本。查看 Version control of IBM Rational Functional Tester 6.1 assets using IBM Rational ClearCase 来了解更多关于 ClearCase 集成的信息。

根据您所使用的集成开发环境,IBM® Rational® Component Tester 的集成还可以协助您的开发人员进行测试。查看 Component testing with IBM Rational Application Developer for WebSphere Software

最后,使用 Rational Functional Tester 和 IBM® Rational® PurifyPlus™ 进行运行时分析还可以使许多应用程序受益。此外,如果您使用 Java,请查看 Setting up IBM Rational Purify, Quantify, and PureCoverage servers with IBM WebSphere Studio Application Developer


相关主题

  • 您可以参阅本文在 developerWorks 全球站点上的 英文原文
  • 通过访问试验下载区域来体验 Rational Functional Tester。
  • 要了解更多,请访问 developerWorks Rational 的 Functional Tester 产品区域。您会找到技术文档、指导文章、训导、下载、产品信息等等。

评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=99227
ArticleTitle=使用 Rational Functional Tester 给开发人员带来的好处
publish-date=11102005