在敏捷开发中如何使用 Rational Quality Manager 缩短软件测试周期

在敏捷项目中,随着客户业务需求的不断变更,如何使得项目在确保产品的质量的同时快速高效地响应客户需求的变化,已成为软件质量管理需要研究的一个重要课题。Rational Quality Manager(RQM)是以业务为驱动的软件质量管理集成平台和门户,它通过强大的从业务需求到测试计划,设计和执行过程的跟踪帮助企业有效控制软件质量。本文将主要介绍如何利用 RQM 快速地对敏捷开发项目的软件业务进行响应,从而缩短软件测试生命周期。

戴 亮亮, 高级软件工程师, IBM

戴亮亮,IBM 中国开发中心(CDL)全球流程服务部门的高级软件工程师,拥有超过 10 多年软件开发经验和 5 年敏捷项目中的经验。现主要从事数据库优化,内容管理,工作流程和 Window 桌面自动化等方面解决方案的设计和开发工作。



徐 艳婷, 软件工程师, IBM

徐艳婷,IBM 中国开发中心(CDL)全球流程服务部门软件工程师,专注于 BPM 领域,主要从事 BPM、数据库以及 Web 开发等方面解决方案的设计和开发工作。您可以通过 develoerWorks社区与徐艳婷进行交流。



2012 年 10 月 22 日

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

前言

在并不遥远的过去,商业开发的节奏比现在要稍微慢一些,一个新产品和方案的开发往往需要几个月甚至几年时间。但是随着软件全球化的到来,客户和市场开始了快速、高响应和安全有序的敏捷业务实践,软件的开发周期以周进行计算,并且能够随时根据客户的反馈对业务进行修改,越来越多的企业意识到一个敏捷的开发和测试方法能够带来更大的商业价值和更广阔的发展空间,同时,这也给软件质量管理带来了许多新的挑战。


什么是敏捷开发

敏捷软件开发(Agile Software Development)初起于九十年代中期。最早是为了与传统的瀑布软件开发模式(Waterfall Model)相对应,所以当时的方法叫做轻量级方法(Lightweight Methods)。二十世纪初,17 位该方法的倡导者建立了敏捷联盟(Agile Alliance),并将该软件开发方法命名为敏捷软件开发过程。

敏捷联盟在成立之初总结了四条基本的价值原则:

  1. 人员交流重于过程与工具 (Individuals and interactions over processes and tools)
  2. 软件产品重于长篇大论 (Working software over comprehensive documentation)
  3. 客户协作重于合同谈判 (Customer collaboration over contract negotiation)
  4. 随机应变重于循规蹈矩 (Responding to change over following a plan)
图 1. 敏捷开发流程
图 1. 敏捷开发流程

查看图 1 大图

敏捷测试方法就是通过高度迭代工作、频繁得到客户的反馈,动态调整测试计划、进行测试的执行来保障整个生产的过程安全的、及时的发布最终产品。同时,敏捷测试人员需要通过不断的沟通和协作,修正质量指标,从而正确建立测试策略,确保客户的有效需求得以圆满实现。


敏捷开发的挑战

我们可以看出在敏捷开发中最为核心的价值观就是:持续不断的客户发聩;以一定时间为迭代周期;频繁高效的沟通和协同工作;简化和重用。

这也是敏捷测试所面临的核心问题,如何才能正确、及时地确保持续不断的客户需求被全部测试?如何才能保证团队之间能够高效协作?如何进行周期迭代测试?

持续不断的客户反馈

敏捷开发中强调对需求变化和用户反馈的动态管理,我们在敏捷开发中常用的测试工具,往往都不能对需求的变化进行跟踪和管理。通常,我们会通过邮件或者口头的方式来通知需求的变化,这就给我们的测试带来了许多新的问题。

我们可以假设一下,每天测试人员收到了一堆邮件,这些邮件中包含着无形中的需求变化,往往这些需求变化没有任何的文档,大多情况下是口头传达,所以这使得测试人员并不清楚需求具体做了什么变化,而且往往会突然发现开发出的产品已经和之前预想的产品部分样子不一样了。接下来测试人员需要确认需求变化内容,修改业务流程图,需要修改被测的功能列表,而一天以后测试人员还有很可能还需要去修改这些已有的业务流程图和被测的功能列表……于是我们产生了困惑,究竟该怎么做才能使维护的成本下降,且又保障产品质量?

分布式团队

敏捷专家推荐开发测试工程师们坐在一起工作,这样交流更加方便直接,减少沟通成本,但是,在这个全球化的时代,越来越多的团队分布在不同地理区域,不同时间区域下工作,这就给敏捷开发和敏捷测试带来了额外的沟通成本和挑战。如何能够在这个敏捷团队中通过各种方法保障沟通顺畅,是不得不面对的问题。

让我们模拟一个真实的软件测试过程来感受一下敏捷所带来的挑战吧。有一个基于 Web 的应用服务正在如火如荼的进行敏捷开发,业务需求是这个应用能在 IE7 上正常运行。测试经理王经理根据需求,制定好了一个在 IE7 上测试的测试计划,测试人员小李和小胡根据计划部署好了测试环境,准备对软件质量进行测试。但是,在测试的过程中,从市场部门过来的需求变化了,一个新的浏览器 Windows IE8 问世了,并且用户非常渴望这个软件能在新的浏览器 IE8 上运行正常,需求的变化,引发了整个测试计划的转变,测试团队必须修改测试计划去对 IE8 进行测试。这种情况下,整个测试团队面临的以下问题:

  • 面对需求的变化(支持新的浏览器 IE8),而这个变化能够被整个测试团队感知,并且快速的对这个变化进行行动么?
  • 测试经理小王如何根据需求的变化,迅速地将变化转换成工作任务交给测试人员小李和小胡去实施呢?
  • 测试人员小李准备好的测试用例需要根据需求进行修改,有哪些能重用的方法可以节省他的时间么?
  • 测试人员小胡搭建的测试环境也需要变化,需要快速部署,有加速部署减少时间的捷径么?
  • 测试经理小王更担心的是,测试工作因为需求带来了巨大的变化,测试真的能成功,从而保障软件的质量么?

我们需要的是一个支持敏捷实践的工具,一方面它首先能够支持敏捷的实践,另一方面能够解决敏捷测试中需求的变化追踪,能够帮助测试人员和开发业务人员进行交流,并且有效能够支持重用和简化过程。这样,就能缩短整个测试的生命周期。


使用 RQM 加速敏捷测试

IBM Rational 的一款企业软件全生命周期质量管理产品 Rational Quality Manager 正致力于解决客户所面临的这一系列问题。Rational Quality Manager,简称为 RQM,它具有良好的协作性以及自动化特性,提供了灵活的测试管理方式,能很好的适应敏捷的软件交付。它是以业务为驱动的软件质量管理集成平台,具有强大的能力从业务需求到测试计划,设计和执行过程的跟踪,帮助企业有效控制软件质量,优化资源,合理重用现有资源。让我们一起感受一下 RQM 如何帮助客户解决敏捷测试带来的一系列的挑战的吧。

RQM 系统中的需求变化追踪

敏捷开发方法主张用户能够全程参与到整个开发过程中,这使需求变化和用户反馈能被动态管理,并及时集成到产品中。对于敏捷测试而言,需求的不断变化,也是敏捷给测试工作带来的最大的挑战,如何能在测试过程中快速准确的追踪需求变化,从而降低需求变化所带来的风险,达到更好的控制软件质量的目标。

RQM 提供了需求模块,它带有内嵌的需求管理系统,也可以集成当前主流的需求管理软件 Rational RequisitePro 或 Doors,将 RequisitePro 或 Doors 中的需求导入 RQM 中的需求模块,用以追踪需求与测试计划、测试用例之间的关系,从而实现业务驱动的软件质量管理。用户可以将业务需求和测试用例以及测试计划相关联,在 RQM 中也能够方便的查看是否所有需求被测试计划和测试用例覆盖,并且 RQM 系统提供了需求变更的自动通知功能, RQM 会根据需求的变化改变状态标识位,从而通知用户是否有新的需求变更。并且,需求的变更也会通知改变对该需求相关的测试计划、测试用例。

让我们回到之前的模拟案例,当业务需求从 IE7 改变到 IE8 时,RQM 中的对应需求的状态标识位"Status"会被相应的标成"Updated",需求的改变将会被传导到 RQM 的测试计划模块,测试计划中关联了该需求的测试用例也会自动更新其状态为"Suspect",这样,测试经理小王就可以迅速地发现变化,并且了解这会对哪些测试计划和测试用例产生影响,接下来,他所要做的就是根据新的变化去分配任务给测试人员小李和小胡,小李和小胡及时对测试计划或测试用例进行准确的更新和修改。

图 2. 需求的状态标识位
图 2. 需求的状态标识

RQM 系统中的任务分配

RQM 中的测试计划用于指导工作。它为每一项测试定义了测试的目标和范围,并包含了决定您的测试什么时候结束的判断标准。

默认的模板中,测试计划包括以下:

  • 跟踪概述,审批和测试计划状态;
  • 创建并管理测试用例,并将它们与测试计划联系起来;
  • 从外部需求管理工具中引入并跟踪项目需求,并将这些需求与测试用例联系起来,或者直接在测试计划中联系需求以追踪覆盖面;
  • 测试计划会支持和测试相关环境(浏览器,数据库,操作系统以及其他的项目),并使用它们来生成测试配置并追踪覆盖面;
  • 测量总体测试计划和执行效果,并为每一个测试迭代定义时间表;
  • 定义业务目标,测试目标以及进入和输出标准;

在测试计划中,它将非常方便的去进行测试工作的分配,在任何一个 Section 中,会有一个带 Create 链接的 Work Item 项。点击 Create 链接,将会打开 Create Work Item 对话框视图,我们所要去做的,只是选择一个所有者以及一个截止日期,并对这个测试工作进行描述,然后它会在 Create 链接以前所在的 Work Item 区域中,去创建一个任务链接,工作项目所有者将会收到有一个工作项的通知,并且这个工作项将会被用来追踪他需要去做的一些事情。

让我们回到之前的模拟案例,测试经理小王发现需求变化后,需要进行测试环境的重新布置和测试用例的修改,于是他来到 Test case Section,建立一个工作项,分配给测试工程师小李,让他修改测试用例。随后,他来到 Test Environments Section,建立一个工作项,去重新准备测试环境,并且分配给测试工程师小胡,这样,工程师小李和小胡就可以分别的进行他们的工作了。

在 Rational Quality Manager 中,协作是其中最大的特点,当经理小王将任务分配给小李和小胡后,系统会同过给其发送邮件,可以在任务工作栏显示,或者可以直接通过即时通讯工具与小李和小胡联系,以保障任务的快速传递。并且,通过不同的优先级和重要性标识,小李和小胡可以马上开始目前最重要的工作。

RQM 测试用例的重用和自动化

为了能够重复使用测试,Rational Quality Manager 使用关键词,这就允许测试员在测试期间共享共有性的步骤。这些步骤可以是手工的步骤,也可以是自动化的测试脚本。关键词(Keyword)可以用于手工测试和自动化测试的混合使用,是让测试团队共享测试的一种非常简单的方法。

关键词(Keyword)是可以重复使用在其他的测试脚本中的声明的集合。您可以使用关键词来搜索查看关键词并将其添加到手动测试脚本。关键词通常是由反映了可重复使用的过程脚本步骤组成。例如,您可以为登入程序创建一组步骤。保存关键词在数据中,这样就可以插入到其他脚本,这样就可以避免这段步骤在不同的脚本中被一再重写。当某关键词被修改,所有和这个关键词相关的脚本都会自动更新。您可以通过关键词的使用自动化测试脚本,我们将关键词指定为某一自动化测试脚本,这样当手动脚本运行到关键词处,将自动启动自动化脚本自动运行,这样可以使得自动化测试和手工测试结合使用,增加测试的效率。

图 3. Keyword
图 3. Keyword

查看图 3 大图

让我们回到之前的模拟案例,测试工程师小李接收到任务去重新更新测试用例,因为有了关键词的功能,他已经将浏览器的设定抽取成关键词,因此,他只需对关键词进行修改,改动就会自动更新所有关联的测试用例,这种重用大大的增加了测试效率。

RQM 测试环境的自动化部署

RQM 提供了实验管理功能,它能帮助用户管理实验机器,部署测试环境与执行自动化测试,从而大大的提高工作效率。

RQM 中的实验室管理模块可以集中的管理机器状态和配置信息,用户可以通过查找来验证是否有满足测试需要的可用资源;RQM 的机器预订功能可以帮助测试人员提前计划资源以达到实验室资源的合理协调使用;同时,RQM 也提供了强大的自动化部署工具,用以帮助用户配置安装相应的测试环境,加快准备测试需要的环境。

在我们之前的模拟案例中,测试人员小胡发现测试环境变化,他需要重新确定测试资源。于是,他利用可以通过在中央资源存储库中搜索资源,来查看是否有满足条件的机器。

图 4. 实验室资源查找
图 4. 实验室资源查找

他发现在他需要的时间段中,并没有他所需要的实验资源,没有任何一个机器中安装了 IE8,于是他从实验室管理员那里去请求一台安装 IE8 的实验室资源。实验管理员可以通过自动化的安装工具来帮助它部署实验室资源。

图 5. 自动化部署环境
图 5. 自动化部署环境

RQM 系统中的报表

在敏捷的环境中,我们需要及时地了解诸多的信息,包括需求的覆盖率,需求的变化,任务分配的情况,测试的执行情况等等,这能帮助我们了解测试项目,并且进行相应的改变。

RQM 中带有强大的报表功能,它能帮助测试经理小王了解测试项目,对测试进度进行追踪,这样保障了在敏捷环境下的软件健康状况

  1. 需求的追踪

Requirements Traceability 报告了需求和测试用例的详细信息,包括是否有需求的改变,是否需求被测试用例所覆盖。

图 6. Requirements Traceability 报告的实例
图 6. Requirements Traceability 报告的实例
  1. 测试成员的任务情况

My Tasks 报表可以帮助用户了解他所被分配的任务。

图 7. My Tasks 报告的实例
图 7. My Tasks 报告的实例
  1. 测试的执行情况

Requirements Status by Execution 报告显示了测试计划中每个需求的工作项的状态。


图 8. Requirements Status by Execution 报告的实例
图 8. Requirements Status by Execution 报告的实例


总结

一个支持敏捷实践的软件测试工具将对敏捷软件开发起到积极的帮助作用。 Rational Quality Manager 正是以业务需求为驱动的软件质量管理集成平台 , 通过其良好的协作性以及信息透明化特性,能够快速的对敏捷的软件业务进行响应,通过自动化地部署和最大限度地重用,可以加速测试的准备和执行过程,通过完善的报表系统,可以保障测试的高质量完成,从而缩短整个软件测试生命周期。

参考资料

学习

获得产品和技术

  • IBM Rational Quality ManagerRQM)是一个基于 Jazz 平台技术的实时协作式质量管理环境,可以帮助跨地域分布的开发团队简化协作质量管理,并使其软件质量管理过程实现自动化管理。

    免费下载:

  • 获取免费的 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=842310
ArticleTitle=在敏捷开发中如何使用 Rational Quality Manager 缩短软件测试周期
publish-date=10222012