UML软件工程组织

使用 Rational Functional Tester 和开源的 SAFS 解决方案进行关键字驱动测试
Daniel Gouveia (dgouveia@us.ibm.com), 销售工程师, IBM 

本文引入了一种使用 Rational Functional Tester 来支持关键字驱动(Keyword-Driven)测试的开源架构 SAFS(Software Automation Framework Support)。它覆盖了实现此方案所需要的一些不同的组件。

 介绍

您已经拥有了IBM®Rational®Functional Tester。购买它用来实现"更加快速开发质量更好的软件"的范例。它使您能够做许多事情,如创建动态验证点,在记录的同时进行数据驱动测试,等等。但是,您发现您的测试自动化工程师和非技术测试人员和/或者业务分析师产生了脱节。非技术测试团队对Functional Tester感到畏惧。他们宁愿停留在使用英文进行脚本的编写,而不愿使用Functional Tester的Java™ 语言。所以您如何消除这两组人员之见的脱节问题呢? 何不尝试实现一个关键字驱动的自动化体系架构,比如SAFS。

软件自动化框架支持(Software Automation Framework Support,或者SAFS),起初是一个开源架构,由SAS研究所的Carl Nagle开发。最早它被设计用来作为实现关键字驱动测试的一个待定工具框架。这就意味着SAFS可以在多种测试自动化工具中使用同样的关键字文件。这是通过让在下层的 SAFSDRIVER(SAFS如何执行)命令调用不同的"工具引擎"来实现的。其中一个引擎用于Rational Functional Tester,它可以使非技术测试人员开发自动化的测试。现在,自动化测试可以覆盖整个测试团队--不仅仅局限在只有测试自动化工程师才可以完成。

实现

将SAFS应用在Functional Tester环境中并不是一件很困难的事情。实际上,您会发现它把需要书写的Java代码减少到了最低程度。它的安装包括了以下高层的步骤:

  • 安装SAFS(框架的本身)
  • 安装STAF(用于实现工具独立服务的软件测试自动化框架,比如写日志)
  • 设置已存在的项目(包括一些目录更改以及安装java/class文件)

一旦安装和配置工作完成,测试的开发将会包括以下表文件:

  • .MAP 文件
  • Step Table (.SDD) 文件
  • Suite Table (.STD) 文件
  • Cycle Table (.CDD) 文件
  • safstid.ini 文件

MAP文件将Functional Tester对象(例如classicsJava, tree2, placeOrder,等等)和对您的团队有意义的日常关键字(例如ClassicsMainWin,ComposerTree,PlaceOrderButton,等等)关联在一起。它还可以让您指定应用程序的常量,比如输入文本(例如 composer="Haydn")。以下的例子描述了MAP文件的样子。

 图1. MAP文件
 
 Step Table (.SDD)文件是一些“固定的”步骤,用来告诉Functional Tester该做些什么。每一行都表示一个指令。例如,以下行 …

T,ClassicsMainwin,PlaceOrderButton,Click

…指示Functional Tester点击在ClassicsMainWin上发现的PlaceOrderButton。Functional Tester参照MAP文件中的PlaceOrderButton和ClassicsMainWin关键字,并Functional Tester知道需要点击的对象叫作 placeOrder ,并且这个对象能够在基于classicsJava的窗口上被找到。下图显示了执行测试用例的SDD文件的片断。

图2. 执行测试用例


 Suite Table (.STD) 文件是一个中间媒介文件,它可以用于把多个SDD文件组织在一起。这些文件可以用在许多事情上,比如测试一个包含多个输入的用例。这个功能与Functional Tester中的shell脚本概念有些相似。下图展示了一个调用3个独立SDD文件的STD文件。

图3. 调用三个独立的SDD文件


 Cycle Table (.CDD)文件是更高层的文件,它用于调用多SDD文件并且设置一定的元数据。例如,一个CDD文件可以被用于调用所有描述系统级测试的SDD文件。STD文件通过调用相应的SDD文件可以管理应用程序不同部分(组件,用例,功能的主要区域,等等)的回归测试。CDD文件可以通过调用必要的STD文件管理整个应用程序的回归测试。下图阐述了一些元数据的设置(例如测试版本,什么应用映射被使用,等等)同时调用了一个 Suite Table 文件。

图4. 设置元数据并且调用一个 Suite Table 文件


 最后,safstid.ini文件是配置SAFSDRIVER执行的方法。它可以告知SAFS使用哪些测试自动化工具,在哪里可以找到我们的项目目录 (包含了我们的表格文件),我们想要获得什么样的日志,以及如何自动启动。下图阐述了 Rational Functional Tester Engine 的配置。

图5. Rational Functional Tester Engine 配置
 

 结论

总的来说,引入了一个关键字驱动体系架构,比如像SAFS,可以极大地提高您测试团队的生产力。然而,就如同自动化本身一样,它不是万能的。在实现这个框架,开发最佳实践,开发必需的表、映射以及配置文件等时仍然会存在许多问题。此外,您还需要计算成本/收益,以分析哪些地方应该采用自动化,而哪些地方则不必采用。


版权所有:UML软件工程组织