在不牺牲测试环境覆盖率的情况下实现自动化测试

使用 Rational Quality Manager 降低暴露特定于环境的缺陷的风险

从很多方面看,自动化测试都要比手动测试具有优势,如准确性、省时、资源利用率以及更早地进行回归检测等。然而,根据测试计划在正确的测试环境中执行自动化测试,也同样重要。否则会使特定于环境的缺陷暴露于利益相关者面前。Pramod Chandoria 介绍了如何能够确保根据所计划的测试环境覆盖范围在正确的机器上运行自动化测试,并降低暴露特定于平台问题的风险。本文还解释了如何在 Rational Quality Manager 中配置、管理和运行自动化测试。

Pramod Kumar Chandoria, 咨询软件工程师, IBM

作者的照片Pramod Chandoria 任职于印度的 IBM Rational 软件实验室。他代表 Test Automation 团队定义了第一个版本的 Automation OSLC 规范。自 Version 1.0 起,他就开始领导 Rational Quality Manager 的设计和开发。他的专业领域包括测试执行和与测试自动化工具的集成。Pramod 持有印度理工学院罗克分校的学位,而且拥有将近九年的产品开发经验。



2013 年 1 月 21 日

下载 IBM® Rational® Quality Manager 试用版  |  在线试用 IBM Rational 协作化生命周期管理解决方案
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

简介

软件测试是软件开发生命周期中的重要组成部分,因为它可以保证该软件中的软件开发人员和拥有者按预期完成工作。由于当今的软件及软件环境越来越复杂,仅使用手动方法管理测试工作变得很艰难。许多组织都在寻求自动化测试工作的解决方案,以降低最终产品遗留回归缺陷的风险。

幸运的是,现在有很多自动化工具可用于实现自动化测试,其中包括 IBM® Rational® Functional Tester 和 Rational® Performance Tester。最初的问题是与如何自动化测试以及如何随着应用程序的更改维护测试有关。然而,在创建了一套非常成熟的自动化测试套件后,从长远来看,非常实用。

实现测试自动化后,在所有支持的平台(包括 Microsoft Windows 2008 Server、Android、Firefox 10、IBM® WebSphere® Application Server、Oracle、IBM® DB2 等)上运行自动化测试时,出现了另一个挑战。每年由于版本更改、对新平台的支持以及其他因素,都将导致受支持的平台列表发生变化。

取最近一个例子,自版本 3.0 以来,Mozilla 公司又发布了多个版本的 Firefox 浏览器。这意味着重要的不是运行此测试,在所有支持的测试环境上运行所有测试也一样重要。本文解释了您如何确保您的自动化测试自动涵盖了您测试计划中的所有平台,从而确保在发布软件前最大限度地执行了测试范围和缺陷检测。

图 1. 手动脚本
手动脚本编辑器以及各个手动步骤

图 1 的大图


使用 Rational Quality Manager 实现自动化测试

IBM® Rational® Quality Manager 是一款基于 Web 的测试管理工具。它集成了大多数领先的自动化工具,包括 Rational Functional Tester、Rational Performance Tester、Rational® Robot、HP Quick Test Professional 等。Rational Quality Manager 公开了 RESTful web API,使其很容易与其他工具相集成。

本质上 Rational Quality Manager 提供两类脚本:

  • 使用各种自然语言步骤的本机手动脚本,如上面图 1 所示
  • 远程脚本,表示外部自动化脚本,如下面图 2 所示
图 2. 远程功能测试脚本
用于功能测试器脚本的远程脚本编辑器

手动脚本会捕获自然语言语句中的各个手动步骤(如图 1 所示),因此在手动测试中很实用。另一方面,远程脚本则表示实际外部自动脚本的占位符,这些脚本可通过特定的外部自动化工具运行,如上面图 2 所示。每个远程脚本都有一个类型,该类型是建立在自动化工具的类型基础上。Rational Quality Manager 无法运行远程脚本;它只能协调执行工作:将远程脚本委托给可实际运行该脚本的自动化工具。

通常会在实验室机器上运行自动化测试,其机器的所测试的应用程序 (Application Under Test, AUT) 和自动化工具均设置为运行自动化测试。要想与 Rational Quality Manager 集成,每个自动化工具需要拥有一个称为执行适配器的轻量实用工具,来填补 Rational Quality Manager 与自动化工具之间的差距。每个 Rational 自动化工具都拥有一个特定于 Rational Quality Manager 的适配器,可将二者连接起来。

规划的自动测试的执行

Rational Quality Manager 提供的测试案例可以与手动脚本或远程脚本相关联起来,从而执行该测试用案。规划的结果是创建多个测试案例执行记录。这些记录内容通常涵盖要执行的测试用例、执行时间、执行人,以及使用的测试环境类型(本文最相关)。单个测试用例通常拥有多个执行记录,每个执行记录涵盖一个惟一的测试环境。

注册一个执行适配器

启动某个特定于自动化工具的适配器时,它会注册到 Rational Quality Manager,从而以供自动化测试执行工作使用。该注册的结果是 Rational Quality Manager 创建两种资源:适配器和实验室资源(测试机器)。适配器表示已注册的适配器,并且链接到实验室资源,后者捕获正在运行该适配器的机器的各种细节。在默认情况下,适配器仅捕获机器名称、IP 地址、域名等信息。

要想自动提供完整的机器细节,可以将 Rational Quality Manager 同 IBM® Tivoli® Provisioning Manager、Tivoli Application Dependency Discovery Manager 和开源 StAX (Streaming API for XML) 或软件测试自动框架 (Software Testing Automation Framework, STAF) 相集成。Rational Quality Manager 在线帮助中的 “集成” 一节中提供了更多的相关信息(参阅 参考资料 获取链接)。另外,您可以在 Rational Quality Manager 中手动编辑实验室资源,以提供有关正在运行适配器的机器的详细信息。

Rational Quality Manager 还提供了命令行适配器 (CLA)(参见 参考资料 的链接,获得各种相关的详细资料)。任何可以在命令行中运行的脚本均可以在 CLA 中执行。它可以像 ping 命令一样简单,也可以像包含一个复杂的脚本的 .bat 文件路径一样复杂。安装自动化工具时,通常也包括了特定于该自动化工具的适配器。

遵循下面的步骤向 Rational Quality Manager 服务器注册命令行适配器:

  1. 将命令行适配器 .zip 文件从 Rational Quality Manager 安装目录复制到测试机器:
    ...\JazzTeamServer\server\conf\qm\adapters\ RQMCommandLineAdapter.zip
  2. 将文件提取到某个文件夹中。
  3. 确保测试机器上已安装了 Java Runtime Environment (JRE) 1.5 或更高版本
  4. 打开命令窗口,并更入您提取和保存该文件内容所在的目录。
  5. 在命令窗口中运行以下命令(斜体字表示变量,要换为您的信息):
    start.bat -repository https://rqmservername:9443/qm -user user ID -password password -adapter uniqueAdapter ID -adapterName your adapter -projectArea name of the Rational Quality Manager project area

成功注册后,适配器控制台中会显示一条确认消息,如图 3 所示。

图 3. 注册命令行适配器
命令行适配器已注册并且正在轮训服务器

在适配器控制台中查看已注册的执行适配器

在本节中,您将了解如何查看从不同机器向 Rational Quality Manager 服务器注册的所有执行适配器。

  1. 打开 Web 浏览器,并输入 Rational Quality Manager URL,例如:
    https://server:9443/qm/web/console
  2. 提供有效的登录信息,登录该项目区域
  3. 单击 Execution > Adapter Console 以打开控制台
  4. 确认已列出了您从测试机器上连接时使用的适配器,如图 4 所示,并且该适配器的 Health 列显示一个绿色的图标(红色图标意味着适配器注册后很长时间都未激活。)
图 4. 查看适配器控制台
适配器控制台显示了已注册的适配器

图 4 的大图

更新测试环境信息

注册适配器后,Rational Quality Manager 会相应地为运行该适配器的各个机器创建一个实验室资源。通过使用此实验室资源,Rational Quality Manager 可以确定运行适配器的测试环境。如前所述,将适配器注册到 Rational Quality Manager 仅提供极少量有关机器的信息,如主机名和 IP 地址。这些信息远远不够。您可以使用两种方法更新测试环境信息。一种是用 Tivoli 的配给工具来自动更新 Rational Quality Manager(参阅 参考资料 部分中的
"Rational Quality Manager and Tivoli" 链接)。

本文仅介绍如何手动为实验室资源更新测试环境信息:

  1. 执行 前一节中的步骤,以打开适配器控制台。
  2. 单击 Machine Name 链接,以打开与该适配器相关联的实验室资源。
  3. 单击 Operating System 部分。更新其操作系统信息。
  4. 单击 Hardware 部分,并提供有关机器的所有细节。
  5. 单击 Software 部分,并添加您可更新的所有软件,如 Browser、Database、Application Server 等。
  6. 单击 Save 以保存测试环境信息。

为每个已注册的适配器重复执行这些步骤。

导入外部自动化脚本

您可以将由外部 Rational 软件创建的自动化测试导入到 Rational Quality Manager 中。按照 “引用自动化测试脚本” 和相关小节(参阅 参考资料 中的相关链接)中的说明进行操作。通过为每个自动化测试创建一个代理脚本,您应该能够将外部自动化测试导入到 Rational Quality Manager 中。

配置自定义测试环境的范围

本节提供的详细指南可确保,Rational Quality Manager 在选择或提议某个执行适配器时,运行该适配器的机器能够符合为测试用案执行记录所指定的测试环境要求。

  1. 以项目管理员 (Project Administrator) 的身份登录 Rational Quality Manager。
  2. 单击 Application Administration > Manage Project Properties(参见图 5)。
图 5. 管理项目属性
下拉菜单中的 Manage Project Properties 选项
  1. 在 Manage Project Properties 视图中的 Properties 部分,单击 Execution Preference,如图 6 所示。
图 6. Execution preference
在 Properties 下选择 Execution Preferences

图 6 的大图

  1. 在默认情况下,Rational Quality Manager 在执行自动化测试时不会尝试匹配任何测试环境。要改变此行为,选择 Custom Search 单选按钮,然后选中测试环境(操作系统和浏览器等)类型的复选框,表明在搜索适配器时希望匹配这些环境元素。如果想匹配具体的测试环境,请选择 Environment 单选按钮。
  2. 单击 Save 以更新执行首选项。

通过执行这些步骤后,您已将 Rational Quality Manager 配置为在正确的机器上运行自动化测试。这意味着如果您创建了一个执行记录以在安装了 Firefox 浏览器的 Windows XP 上执行,则 Rational Quality Manager 将验证所选的机器是否符合测试环境的要求。

使用测试单元实现稳固的测试平台

通常都是多个团队同时参与单个项目。每个团队都有其自己与 Rational Quality Manager 项目相连的一组执行适配器。当然,您可不希望您的测试会干扰他人的测试环境。通过使用测试单元 (test cell),您可以限制将要执行自动化测试的机器范围。

要创建测试单元,请执行以下操作:

  1. 单击 Lab Management > Create > Test Cell。
  2. 提供测试单元的逻辑名称。
  3. 单击 Lab Resource 部分下面的绿色加号图标(参见图 7)。
  4. 添加您希望运行测试的所有机器。
  5. 单击 Save 按钮保存该测试单元。
图 7. 测试单元
与实验室资源有关的测试单元编辑器

图 7 的大图

运行一个自动化测试

生成测试用例执行记录后,您可以手动运行每个记录,方法是单击 Browse Test Case Execution Records 视图中的 Run 按钮。当您希望根据需要运行单个自动化测试时,这种方法很有用。

通常,您可能希望创建一个自动化测试套件,并运行整个套件,以节省时间。在某些情况下,您可能想要根据某种日程安排定期运行自动化测试。您也可能想在任何时候创建新版本时,运行自动化测试,以确保在版本中不会出现回归问题,并且在整个测试团队开展测试工作之前就找出问题。在本节中,您将学习如何为自动化测试手动运行测试套件,以及更高级的选项,设计一个可按计划运行多次自动化测试的工作流程。

使用测试套件运行自动化测试

  1. 按照信息中心给出的说明创建一个测试套件(参阅 参考资料)。将所有的自动化测试用例添加到其中,并确保为每个测用例指定了测试环境。
  2. 要指定测试环境,请执行以下操作:
    1. 查看所需的行,然后单击 Change Execution Properties
    2. 选择测试环境。
    3. 单击 OK,然后保存该测试套件。
  3. 在测试套件编辑器中单击 Run
  4. 在默认情况下,Rational Quality Manager 会为每个测试选择一个适配器。要更改默认适配器,请单击 Edit Adapter。您也可选择测试单元,让 Rational Quality Manager 在运行时分发各个测试。这样,可允许指定测试单元中的软件在运行时根据适配器的可用性来完成适配器的选择工作。
  5. 选择 Run in parallel(以防各个测试之间没有依赖关系),以最大限度减少套件执行的总体时间。
  6. 单击 OK

自动化测试的日程按排

  1. 单击 Execution > Create Execution Schedule。
  2. 提供测试安排表的名称。
  3. 选择可用的测试计划安排选项(参见图 8):
    1. 安排在指定的时间执行一次
    2. 安排在每天指定的时间执行
    3. 安排在每周指定的日期执行
    4. 根据版本可用性来制定日程安排

注意:
前三个选项都是根据时间来安排执行情况。当您想在每次创建新版本时运行测试,那么最后一个选项更加实用。

图 8. 日程安排的类型
不同的日程安排类型

图 8 的大图

  1. 在 Steps 部分中,单击 + (加号)按钮添加一个测试套件执行记录,如图 9 所示。通过过滤找寻所需的记录,然后将其添加到 Steps 部分中。您可根据需要随意添加执行记录。
图 9. 添加一个日程安排步骤
在执行日程安排中添加一个测试套件步骤

图 9 的大图

  1. Rational Quality Manager 会自动为执行工作选择可用的适配器。但是,为了在运行时更好地使用可用适配器,请选择工具栏中的 Choose machines at run time。选中的适配器将被设置为 "Search runtime",如图 10 所示。
图 10. 在运行时搜索适配器
选中 Search Runtime

图 10 的大图

  1. 如果想隔离 Rational Quality Manager 机器(其中的 Rational Quality Manager 应该可以搜索可用的适配器并且不干扰其他的测试环境),则可将测试单元与执行日程安排相关联。
  2. 单击保存

当触发某个日程安排时,已添加到该执行日程安排中的所有步骤将依次执行。

提示:
要管理已安排好的作业,可选择 Next scheduled time。要取消某个日程安排,可单击 Execution > Browse > Scheduled Jobs


结束语

在本文中,您了解了如何使用 Rational Quality Manager 针对各种类型的测试自动化工具(包括命令行脚本)运行并安排自动化测试。本文解释了如何配置 Rational Quality Manager,以使自动化测试根据测试计划在测试环境中运行,并确保已正确覆盖所有支持的平台。您还了解了如何使用测试单元更好地管理自动化测试。


下载

描述名字大小
测试单元的样例代码TestCell1080

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=855808
ArticleTitle=在不牺牲测试环境覆盖率的情况下实现自动化测试
publish-date=01212013