敏捷开发和测试中重现缺陷和验证缺陷的解决方案,第 2 部分: 重现缺陷

本文是系列第二篇,主要讲述开发人员在环境中重现缺陷,如何借助 IBM Rational Functional Tester、Rational Team Concert 以及 Rational Quality Manager 快速重现缺陷问题。

杨 思君, 高级软件工程师, IBM

杨思君,现为 IBM Rational 系统测试部门高级软件工程师。在测试领域有十年的测试经验。2010 年加入 IBM Rational SVT 团队。现在致力于 Rational ClearCase 产品的可靠性测试。对测试自动化有浓厚的兴趣。



陈 弘, 高级软件工程师, IBM

陈弘,现为 IBM Rational ClearQuest 部门高级软件工程师。2007 年加入 IBM。一直致力于软件测试和测试自动化领域。



章 岩, 高级软件工程师, IBM

章岩,IBM Rational ClearQuest 测试工程师。有 7 年软件测试经验,主要关注软件测试自动化,测试服务和云计算等领域。



2013 年 3 月 28 日

免费下载:IBM® Rational® Functional Tester 试用版 | IBM® Rational® Performance Tester 试用版
     IBM® Rational® Team Concert 试用版 | IBM® Rational® Quality Manager 试用版
下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。

问题描述

在本系列的第一部分中,描述了如何用 Rational Automation Framework (RAF) 和 IBM Workload Deployer (IWD) 准备测试环境,本文主要针对如何在测试环境上重现缺陷问题。本文基于系列第一篇文章中创建出的测试环境,利用 RFT 的录制回放功能,Rational Quality Manager(RQM) 的测试管理功能和 Rational Team Concert(RTC) 的协作功能,帮助开发人员更快速更准确的重现缺陷问题。

在正常工作中,经常会出现开发人员根据测试人员在缺陷中描述的步骤不能重现缺陷,由于环境的差异,个人操作习惯的不同,或者重现步骤过于复杂,经常导致很多测试人员发现的缺陷无法被重现。这个大大拖延了缺陷修复和验证的速度。又或者,测试人员为了方便经常会选择把自己的环境直接给开发,这样虽然能让开发者直接看到了缺陷复现的环境,方便调试,但对于测试人员来说,也同时失去一套自己费时费力建好的环境。

那么,如何才能让开发人员更快速的在环境中重现缺陷问题呢?下面我们具体描述一下使用 IBM 工具的一种最佳实践。


产品简介

Rational Functional Tester ( 简称 RFT): 是 IBM Rational 研发的一款面向对象的自动化测试工具,可以模拟用户在实际使用中的基于图形化界面的操作。它支持 Windows 和 Linux 平台上对多种应用程序的测试,可以满足各种用户多方面的需要。

Rational Quality Management ( 简称 RQM): 是基于 Web 的,集中测试管理环境,它为测试计划、工作流控制、追踪,和能够量化项目决策及可交付件如何影响并结合商业目标的量度报告提供协作的且可定制的解决方案。

Rational Team Concert ( 简称 RTC): 是构建在 IBM Rational 面向软件交付技术的下一代协作平台 Jazz 平台上的第一个商用产品、一个协作式的软件开发环境,它包含了集成的源代码控制、工作项管理和构建管理等功能。RTC 是一个可实时相互协作的软件交付环境,可以帮助跨地域分布的开发团队简化协作开发过程,并使其软件交付过程实现自动化管理。


方案描述

本文中提到的方案需要开发和测试人员双方的合作:

图 1. 具体流程
图 1. 具体流程

RQM 作为测试管理系统,测试人员需要通过 RQM 创建缺陷。RTC 作为变更管理的工具,存储具体缺陷内容,开发人员可以直接通过 RTC 中缺陷的描述了解问题内容。

  1. 测试人员在测试环境中发现缺陷
  2. 测试人员通过系列第一篇中描述的方法把测试环境的配置信息存储到 RAF 并在 IWD 中模板化
  3. 测试人员需要在测试环境中录制重现缺陷的脚本,这里会用到 RFT
  4. 测试人员在 RQM 中创建缺陷,并把 IWD 中虚拟系统模式 (Virtual System Pattern) 的名称包括在缺陷内容中,同时把 RFT 录制好的缺陷重现脚本作为附件添加到缺陷中。
  5. 开发人员收到缺陷提醒通知后,可以在 RTC 中查看缺陷具体内容
  6. 开发人员根据 IWD 中虚拟系统模式的名称去 IWD 中创建虚拟机,虚拟机中已经安装 RFT
  7. 开发人员获得缺陷重现脚本,在生成的虚拟机中运行,重现缺陷。

相比较其他方案,这个解决方案的优点是:

  • 开发人员能很快得到一套环境,且此套环境能保证与测试人员所用的环境一致。
  • 开发人员无需掌握太多 RFT 技能就能利用 RFT 回放脚本。

准备工作 1

在 IWD 中,把 RFT 的安装作为基础虚拟系统模式的一部分,这样创建的虚拟系统模式就会包含 RFT 的安装。

RFT 的录制是通过焦点,页面上的图标摆放的位置,窗口的大小都可能会导致坐标的错误,使得回放失败,这个问题怎么解决?

上面这个问题是我们在使用 RFT 回放脚本时经常碰到的,由于我们使用 IWD 中统一模板创建缺陷重现环境,这样环境配置是相同的,RFT 脚本的回放不会出现上述问题。

准备工作 2

由于测试人员需要在创建缺陷是提供 IWD 虚拟系统模式名称和附加缺陷重现脚本。这里需要在 RTC 中缺陷模板中添加一个字段 IWD Pattern,这样开发人员可以清晰获得虚拟模板信息。

图 2. RTC 项目管理界面
图 2. RTC 项目管理界面

图 2 大图

在上图中选择工作项 (Work Item),然后为这个工作项添加属性 (Types and Attributes),添加完毕后可在创建新的缺陷时看到 IWD Pattern 字段,然后需要编辑工作项展示页面,编辑完毕后创建新的缺陷页面就会呈现更改后的页面,包括 IWD 虚拟系统模式字段。

图 3. RTC 工作项展示页面编辑
图 3. RTC 工作项展示页面编辑

图 3 大图

准备工作 3

图 1 具体流程中提到测试人员需要通过 RQM 来创建缺陷,缺陷具体内容会直接存储到 RTC 中,这就要求提前配置好 RQM 和 RTC 的集成环境。

  1. 创建需要的 RQM 项目
  2. 创建需要的 RTC 项目
  3. 在 RQM 项目管理页面中,关联 (Association) 部分,添加和 RTC 项目的关系"使用",RTC 提供的"缺陷"功能即可。
  4. 完成上述步骤后,就可以在 RQM 中测试执行完毕后,测试执行结果 (Test Execution Result) 中关联或创建新的 RTC 中的缺陷。

具体实现步骤

测试人员录制缺陷重现脚本

测试人员的测试环境可由 IWD 迅速得到,这部分可参考本系列的第一篇文章。下面阐述测试人员如何在测试环境中用 RFT 静默方式录制缺陷重现脚本。

我们以 WAS 中的 Plants by WebShere 程序为例,假定购买 Bonsai Tree 时,在 QUANTITY 框输入 abc,弹出告警消息框 Quantity must be a valid number。现在假定 Plants by WebShere 程序设计已经更改,弹出告警消息框中的内容应该为 Warning:Quantity must be a valid number。所以测试人员发现了一个缺陷,现在录制这个缺陷的重现步骤。

图 4. WAS 网上花店应用错误示例
图 4. WAS 网上花店应用错误示例

第一步:用 RFT 图形界面创建 RFT Project。

首先假设您拥有一个名为 SampleProject 的 RFT 项目,如果没有可以打开 RFT 图形界面创建一个 Project。在菜单中选择"File" -> "New" -> " Functional Test Project"。

图 5. RFT IDE 界面
图 5. RFT IDE 界面

在创建项目界面中输入项目名称和项目路径。点击 Finish 按钮,就会创建好一个 RFT 项目。

图 6. RFT 项目创建页面
图 6. RFT 项目创建页面

第二步:静默录制脚本

创建好项目之后,我们就不再需要 RFT 图形界面了,而是使用静默方式录制缺陷重现脚本。

静默方式录制脚本的优点在于不需要操作者对 RFT 有太多了解。只需简单一个命令及几个按钮动作即可完成录制。

在 Windows 命令行中输入如下命令,该命令会录制一个名为 SampleScript 的脚本。

图 7. 从命令行启动静默录制
图 7. 从命令行启动静默录制

运行上述这条命令,会启动 RFT 录制小窗口。点击图中红色标记的 Start Application 按钮打开 Start Application 窗口。

图 8. RFT 录制操作窗口
图 8. RFT 录制操作窗口

在 Start Application 窗口中点击 Edit Application List…按钮,添加测试应用程序的 URL。

图 9. 选择一个应用程序 url
图 9. 选择一个应用程序 url

此处我们假定测试的应用程序 URL 为http://clmsvr-sjy.cn.ibm.com:9081/PlantsByWebSphere/,我们在 Windows 的 hosts 文件中加入如下行以方便 hostname 和 IP 地址的映射:

<ip_address> clmsvr-sjy.cn.ibm.com

在 Edit Application List 界面中点击 Add,选择 HTML Application,将上面的 URL 加入。

图 10. 添加应用 url
图 10. 添加应用 url

点击 Finish 按钮,退出 Start Application 窗口。下面就可以开始脚本的录制了。

测试人员在打开的应用程序界面上进行操作,首先点击 Bonsai Tree 图标:

图 11. 脚本录制 1
图 11. 脚本录制 1

图 11 大图

然后在 QUANTITY 框中输入 abc,点击 Add to cart 按钮,应用程序弹出告警消息框。

图 12. 脚本录制 2
图 12. 脚本录制 2

最后测试人员点击下图中红色标记的 Stop Recording 按钮完成录制过程。

图 13. 脚本录制 3
图 13. 脚本录制 3

完成录制之后,在 SampleProject 目录下生成一个 SampleScript.java 脚本,脚本内容如下:

图 14. 录制脚本 Java 文件
图 14. 录制脚本 Java 文件

图 14 大图

第三步:创建缺陷

完成这些之后,将录制的脚本工程做成 zip 包,测试人员就可以在 RQM 里执行测试用例时将脚本信息,用于部署环境的 IWD 环境信息附录到缺陷报告之上。关于如何通过 IWD 创建测试环境模板,并部署环境,请参考本系列第一篇文章。

在 RQM 中,测试人员运行测试用例,测试用例运行失败,测试人员创建软件缺陷并把脚本包文件,IWD 环境部署信息链接附录到缺陷信息中。这里为了方便开发人员更好的获得缺陷环境信息和重现步骤,我们对 RTC 缺陷模板进行一些定制和配置,添加了 IWD Pattern 字段,并让添加附件部分在 RQM 里可见。

图 15. RQM 中创建新缺陷的页面
图 15. RQM 中创建新缺陷的页面

开发人员回放脚本重现缺陷

开发人员在浏览缺陷信息时,可以从中得到用于复现缺陷的脚本和测试环境信息。通过字段 IWD Pattern 里的链接连接到 IWD 系统。开发人员通过 IWD 部署测试环境。此环境模板正是测试人员发现缺陷时所用模板,被测应用及 RFT 应用已经预装完毕。开发人员在新得到的系统内解开缺陷附录的脚本包压缩文件,并通过以下步骤重现缺陷。如下图所示:

图 16. RTC 中存储的缺陷信息
图 16. RTC 中存储的缺陷信息

图 16 大图

首先开发人员在部署好的环境 Windows 的 hosts 文件中加入如下行以方便 hostname 和 IP 地址的映射:

<ip_address> clmsvr-sjy.cn.ibm.com

然后在 Windows 命令行中输入如下命令编译 RFT 脚本 SampleScript。

图 17. RFT 编译脚本命令
图 17. RFT 编译脚本命令

最后开发人员在 Windows 命令行中输入如下命令回放 RFT 脚本 SampleScript,脚本就会按照测试人员的录制过程复现 defect。

图 18. RFT 脚本回放
图 18. RFT 脚本回放

这样,开发人员直接从缺陷里得到了环境信息,部署新环境,并通过附录的 RFT 脚本信息直接回放脚本,重现缺陷。


结束语

现在开发人员已经可以重现缺陷问题了,下面就是解决问题,提交产品代码变更后,测试人员进行缺陷验证的环节,这个部分我们会在系列第三篇中描述。

参考资料

学习

获得产品和技术

  • 获取免费的 Rational 软件工具包系列,了解最新的 IBM Rational 软件开发工具技术文档和资源。
  • 下载更多免费的 IBM Rational 试用版软件,了解 IBM Rational 软件的最新特性。
  • 获取更多 IBM 试用版软件,并熟练掌握来自 DB2®、Lotus®、Tivoli®,以及 WebSphere® 的开发工具和中间件产品,用这些试用版软件开发您的下一个项目。这些试用版软件可以免费直接从 developerWorks 下载。

讨论

  • 加入 developerWorks 中文社区,developerWorks 社区是一个面向全球 IT 专业人员,可以提供博客、书签、wiki、群组、联系、共享和协作等社区功能的专业社交网络社区。
  • 访问 developerWorks 社区上的 Jazz 技术小组,这里汇集了丰富的 Jazz 平台中文技术资源。 您可以通过这里了解更多关于 Jazz 平台和 Jazz 技术发展趋势的最新信息。
  • 访问 developerWorks 社区上的 敏捷开发小组,在那里您将有机会与更多的开发人员一起交流敏捷开发最佳实践。
  • 加入 IBM 软件下载与技术交流群组,参与在线交流。

条评论

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=863196
ArticleTitle=敏捷开发和测试中重现缺陷和验证缺陷的解决方案,第 2 部分: 重现缺陷
publish-date=03282013