Rational ClearQuest 外部数据管理简要分析
 

2009-09-04 作者:梁 路 来源:IBM

 
本文内容包括:
为方便用户在多个用户数据库之间或者在 Rational ClearQuest 与其他变更管理系统之间移动数据,ClearQuest 提供了将系统内部的数据转存为外部数据的功能以及对应的反向转存功能。由于外部数据管理功能存在于多个客户端,且使用功能、步骤和设置在不同的客户端不尽相同,有些甚至差别很大。本文分析和总结了这些异同,方便用户针对自身情况进行正确的选择和使用。

一、简介

随着软件测试的发展,软件缺陷管理已经越来越成为软件质量保障的重要手段。IBM Rational ClearQuest 是特别针对动态的、不断更新的软件开发工作的缺陷管理软件,提供了最佳的变更需求管理解决方案。

ClearQuest 提供了将系统内部的数据转存为外部数据的功能以及对应的反向转存功能,方便用户在多个用户数据库之间或者在 ClearQuest 与其他变更管理系统之间移动数据。可以将这一功能笼统地称为外部数据管理。该功能分布在多种不同的客户端上,且不同的客户端的用法和限制条件不尽相同。本文重点将此方面的功能做一总结,便于用户在存储和转移数据时更快的选择较为合适的方法,并了解其使用方法。

二、ClearQuest 外部数据管理概述

在 ClearQuest 的使用过程中,经常存在如下一些情况:

情况 1:使用者为新项目建立独立的用户数据库。然而,随着企业维护的项目增多,管理者出于数据管理方面的需要,要将这些数据库整合在一起或者将一个单一数据库迁移到企业级用户数据库中。
情况 2:企业的所有项目都被维护在同一个企业级用户数据库中。随着项目的扩大,数据库庞大笨拙,用户需要创建单独的数据库将项目分别管理。
情况 3:出于项目管理的需要,处于同一个企业级用户数据库中的某些个别项目需要特别定制。因此用户需要创建单独的数据库,并且从整合的库中引出相应的数据,引入到新库中去。
情况 4:团队成员之间需要共享他们在 ClearQuest 系统中的一些设计成果或工作模板。

以上多种情况的共同之处在于,用户都需要在不同的 ClearQuest 数据库之间移动数据。为方便操作,ClearQuest 提供了较完善的外部数据管理功能,包括外部数据的导出(Export)和导入(Import),为用户在 ClearQuest 数据库之间或者在 ClearQuest 与其他变更管理系统之间移动数据提供了方便。

外部数据管理包括外部数据的导出和导入。通常的流程是,用户先将某 ClearQuest 系统内部需要共享或移动的数据保存为外部数据,存储在文件系统中;需要时再将外部数据引入另外的 ClearQuest 或其它变更管理系统。ClearQuest 为多种数据提供了该功能,除记录以及记录的历史、附件等信息外,还支持对查询、图表、报告等数据的导出导入。

在不同 ClearQuest 系统之间移动外部数据的基本条件是,两系统使用相同的编码页(codepages)。此外,移动不同的外部数据还有各自的条件。例如,记录只能在源和目的数据库中具有相同的源和目的域的情况下才能被导入导出工具移动。

由于产品提供多种客户端,且客户端的开发有先后、功能有侧重,因此不同客户端导入导出操作的步骤和参数设置方式也有差别。此外,导出后的文件有多种存储方式,对应着不同的应用,使用方式不尽相同。

由此可见 ClearQuest 外部数据管理的过程,存在着一些值得注意却容易忽略的条件、步骤和技巧。为避免每个用户去摸索和试验,本文总结了 ClearQuest 中较为常用的此方面功能,并列出了他们的使用方式以及值得注意的步骤,在下文针对不同类型的数据分别介绍。

为方便检索,将 ClearQuest 支持导出的外部数据分平台列于下表。

表 1: ClearQuest 支持导出的外部数据
 
表 1: ClearQuest 支持导出的外部数据
  ClearQuest RCP 客户端和 Eclipse 插件 ClearQuest
Windows
客户端
ClearQuest
Web Client
ClearQuest
Designer
记录模板 X (.xmi)      
记录
(按特定记录导出)
X (.txt .xml) X (.txt)    
记录
(按特定查询导出)
X (.txt .xml) X (.txt) X
(Excel .txt)
 
记录
(按记录类型导出)
X (.txt .xml)      
报表(Report) X (.rpt) X (.rpt)    
报表格式
(Report Format)
  X (.rft)    
图表(Chart) X (.qry) X (.qry)    
查询(Query) X (.qry) X (.qry)    
表单(Form)       X (.frm)
图片形式图表
(Chart)
X(.jpg .bmp) X X
(.jpg .bmp)
 

三、外部数据导入导出功能

1. 记录模板(Record Templates)

在同一个项目内,用户经常需要以一组常用的属性为基础,对其稍加修改以建立多条记录。为了操作便捷,且便于在组织和个人之间共享,ClearQuest 允许将记录类型的常用属性建成模板。Windows 客户端、Eclipse 插件和 RCP 客户端都提供了该功能。然而只有 Eclipse 和 RCP 客户端允许将模板导出并从同类客户端导入,从而实现模板在用户间共享。

导出记录模板

在 RCP 客户端选择主菜单,文件 > 导出 > 记录模板,在向导中选择需要导出的模板,如图 1 所示。向导允许同时导出多个模板到一个外部数据文件中去,文件的格式统一为 XMI。

图 1. 导出记录模板向导
导出记录模板向导

导入记录模板并使用

在 RCP 客户端选择主菜单,文件 > 导入 > 记录模板,从文件系统选择需要导入的模板文件。在向导中展开模板所属的记录类型,从中选择要导入的模板(如果文件包含多个模板)。

模板被导入后,再次新建该类型的记录时,模板下拉菜单中会出现可使用的新模板。选择合适的模板并点击“装入”按钮即可应用。当模板不适应需求时,可先在“创建”向导中应用该模板,并直接修改字段的值。最后在“装入”右侧的下拉菜单选择“更新”,则模板得到修改。如果需要删除模板,则在下拉菜单将其选中,点选“除去”选项。

图 2. 记录模板的装入和使用
记录模板的装入和使用

2. 记录(Record)

记录是用户数据库中比较重要的数据信息,所以 ClearQuest 在多种客户端提供了最多的方法完成该项操作。下文对记录的导入和导出过程分别分析。

1) 导出记录

按照导出记录的方式分,大致可分为按记录类型导出、按查询导出和对特定记录导出。可以看出导出的范围逐一缩小。

  • 按记录类型导出记录

只有 Eclipse 插件、RCP 客户端和 Windows 客户端的 Import Tool 提供了按记录类型导出的功能,其它客户端只能通过建立适当的查询完成该功能。以 RCP 客户端为例:首先,不选中任何查询,选择主菜单 > 文件 > 导出 > 记录,打开导出向导;如果多个数据库连接处于连接状态,选择从那个数据库导出;最后选择导出记录的类型;之后的向导步骤与按查询导出记录(下一节)的步骤相同,不再赘述。向导将导出数据库中该记录类型的所有记录。

  • 按静态查询导出记录

在 Eclipse IDE 和 RCP 客户端中,ClearQuest 提供了最为完善的导出功能,而在 CQ Web 中的功能较简洁。

Eclipse 插件和 RCP 客户端:

  1. 右键点选导航窗口中需要导出的查询,选择导出查询 Export Records。或者通过主菜单 > 文件 > 导出 > 记录,打开向导。
  2. 选择记录类型和需要导出的查询(如果通过主菜单打开向导)。
  3. 在字段选择窗口选择需要导出的字段。
  4. 在导出参数设置窗口,选择导出文件的格式、使用的代码页、记录定界符以及单个文件的最大存储记录数。
  5. 最后,指定导出文件的存放位置和名称,开始导出。

Web 客户端:

ClearQuest 在 Web 客户端也提供了按查询导出记录的功能,但导出字段只能是查询的显示字段,保存格式也只支持 TXT,而不支持 XML 格式。导出的步骤是:首先,运行要导出的查询;继而在结果集的工具栏中选择“导出网格”,导出的数据将按照一定格式显示在新弹出的浏览器窗口中;最后,用户可将数据保存为 TXT 或 HTML 格式。

因为 Web 客户端没有相应的向导,对于导出参数的设定和其它客户端有较大不同。其中两相最为重要:可导出的最大记录数和定界符(Delimiter)的选择。

可导出记录的最大数量,需要通过设置 pl.properties 文件的 WEB_MAX_ROW_COUNT 属性来设置,默认值为 1000。参数的修改必须通过重起 ClearQuest server 才能生效。特别地,如果该参数设置超过 10000,并且导出记录的数量确实达到一万条或更多,则浏览器可能在等待查询结果返回的过程中超时。因此,当导出记录多于 10000 条时建议使用 Eclipse 或 RCP 客户端导出。该文件在不同平台的存储位置略有不同,详见表 2。

表 2: 不同平台上 pl.properties 文件的位置
 
表 2: 不同平台上 pl.properties 文件的位置
Option Location
On Windows systems C:\Program Files\Rational\Common\rwp\EmbeddedExpress\profiles\profile1\
installedApps\DefaultNode\RationalClearQuestWeb.ear\CQWebModule.war\
WEB-INF\classes\pl.properties
On the UNIX system and Linux /opt/rational/common/rwp/EmbeddedExpress/profiles/profile1/
installedApps/DefaultNode/RationalClearQuestWeb.ear/CQWebModule.war/
WEB-INF/classes/pl.properties

此外,在 CQ Web 中定界符(Delimiter)的设定,也同其他客户端不同。设置方法是:在 Web 页面的工具条中点击“站点配置”;选择应用程序 Tab 页;输入期望的“导出网格定界符”。该修改操作可以立即对所有的连接到该 ClearQuest 服务器的 Web 客户端生效,不必重新启动。

  • 按动态查询导出记录

ClearQuest 可以导出静态查询,但不能直接导出动态查询。动态查询包含了和用户动态交互以获取查询条件的步骤,其查询结果是不确定的。如图可见动态查询的右键菜单中没有“导出记录”选项,但有时我们又有这样的需求。此时,可以将动态查询中的动态条件除去,转换为静态查询导出。另一个较快捷的方法是,将动态查询转化为一个 SQL 查询后再导出,此时导出的数据是屏蔽了动态条件的查询结果,即动态查询所有可能结果的合集。

图 3. ClearQuest 不能直接导出动态查询
ClearQuest 不能直接导出动态查询

转化为 SQL 查询的步骤是:右键点选特定查询 >SQL> 转换为 SQL 查询,之后的导出步骤与静态查询相同。由此带来的限制是,一旦转变为 SQL 查询,就不能再通过“编辑”向导修改查询属性了,对查询的修改只能通过编辑 SQL 语句完成,且用户必须具有 SQL 编辑权限;此外,向 SQL 查询转换的操作是不可逆的。

图 4. 转化为 SQL 查询的动态查询可以直接导出
转化为 SQL 查询的动态查询可以直接导出
  • 导出特定记录

在 RCP 客户端、Eclipse 插件以及 Windows 客户端上提供了针对特定记录的导出功能。

RCP 客户端允许导出特定的一条或几条数据:从结果集中选中一条或多条记录 > 右键 > 导出,其余步骤同“按静态查询导出记录”。然而,与“按静态查询导出记录”不同的是,该向导只能导出结果集显示出的字段,而不允许添加其他导出字段。

同时,Windows 客户端也提供了简易的向导,如图 5 所示。它只能导出 TXT 格式的数据,且同样不能修改导出字段。

图 5. Windows Native 客户端记录导出向导
Windows Native 客户端记录导出向导

2) 导入记录

ClearQuest 支持将导出的记录文件直接导入 ClearQuest 用户数据库中,或者导入到 Microsoft Excel 等其他的系统中。其中,向 Microsoft Excel 产品交互时,即可以先将记录导出为外部文件再导入,也可以直接由 ClearQuest Web 客户端直接导入。

  • 将文件直接导入 ClearQuest

ClearQuest 支持通过 Import Tool、Eclipse 插件和 RCP 客户端三种方式将文件导入用户数据库。由于两者过程相似,在此仅针对 RCP 客户端的关键步骤作简要介绍。

选择主菜单 > 文件 > 导入 > 记录,打开导入向导。

  • 步骤一:选择需要导入的数据库连接。
  • 步骤二:选择导入的记录类型和导入数据,后者的可选项包括记录、记录历史信息和记录附件。
  • 步骤三:首先,指定导入文件的路径和名称;其次,指定导入日志的存储位置和文件名。当有部分或全部记录因为任何原因没能导入到 ClearQuest 时,系统会将没能导入的记录保存在该日志文件;最后,指定导入文件使用的定界符。对于历史(history)和附件(attachment)也执行相同的操作。
  • 步骤四:用户需做如下关键设置:
     

    首先,如果有 Duplicates 信息存在于文件中,则需要导入这些信息。但前提是目标模式库(Schema)需要支持 Duplicate 操作和 Duplicate 状态,并且模式库也包含记录在原系统中被转为 Duplicate 之前的状态。用户还须确保被 Duplicate 的记录已先于此 Duplicate 记录被导入。如果这些条件都满足,就可以成功的将 Duplicate 信息导入了,具体操作是:选中 Import duplicates 选项,在 Duplicate ID Field 下拉菜单中选择导入文件中保存“original ID”信息的字段。该字段指明了 Duplicate 记录的父记录(即该 Duplicate 记录具体“重复”了那条记录)。

    其次,由于 ClearQuest 会为每条导入的记录自动创建新的 ID 字段值,所以 ID 字段是无法被导入到新用户库的 ID 中的。而原始的 ID 字段值还有价值,它将一条记录和该记录的历史(history)、附件(attachments)和 Duplicates 信息联系起来,在导入这些信息时,将会用到 ID 字段作为连接。为了不致损失,用户可将 ID 值存于其他字段中。如图 6 所示,是在 Original Record ID Field 下拉菜单选择 old_id 字段来保存原始的 ID 字段。old_id 字段是 DefectTracking Schema 和 Enterprise Schema 为 Defect 类型预设的字段。

    最后,如果需要更新记录而非导入新记录,则需要选中 import updates to existing records 选项;如果记录是有状态的且希望将记录状态信息导入,则选中 Import record states 选项,否则全部有状态记录将统一归为“提交”状态。如图 6 所示:

图 6. ClearQuest RCP 客户端导出向导—步骤三
ClearQuest RCP 客户端导出向导—步骤三
  • 步骤五:首先,选择原始 ID 字段在新用户数据库中的存放字段。该选择应与步骤三中的选择一致。例如,在步骤三种我们选择了 old_id 作为原始 ID 新的存放位置,因此我们将 old_id 这一 Target Field 对应的 Source Field 选择为“id”,如图 7 所示。此外,ClearQuest 在此处提供了映射(mapping)的保存(save)和装载(load)功能,可将常用的 mapping 保存,方便共享和重用。
图 7. ClearQuest RCP 客户端导出向导—步骤四
ClearQuest RCP 客户端导出向导—步骤四
  • 步骤六:指定导入过程允许的最大错误数量,并开始导入。当出错数超过用户设定的上限时,

导入过程将自动停止。

  • 将记录文件导入 Microsoft Excel

ClearQuest 导出的文件具有通用性,不但可以在 CQ 用户数据库间交换,而且可以被 Excel 等多种软件识别。当需要将文件导入到 Excel 时,通过 Excel 主菜单打开 CQ 导出文件,向导自动启动。导入步骤如下:

  • 步骤一:选择文件分割符(Delimited)选项,这是因为 CQ 导出向导不使用空格区分字段;导入的起始行建议设置为一,因为如果在导出时选择 UTF-8 或 UTF-16 作为代码页格式,则导出文件的起始处会包含一个字节顺序标志(Byte Order Mart)。例如以 UTF-16 格式导出的文件,起始字符是 FEFF,他表示字节流是大端在前(Big-Endian);以 UTF-8 编码的文件则以 EFBBBF 起始,表示该字节流是以 UTF-8 编码的。Excel 导入时,该标志会被识别为乱码,而不导入第一行则可以避免该问题;此外,File origin 一项的选择应与 ClearQuest 用户数据库所使用的代码页一致。
图 8. 选择数据的分隔方式、编码格式和起始导入行
选择数据的分隔方式、编码格式和起始导入行
  • 步骤二:选择定界符和文本限定符。定界符的选择应和 ClearQuest 导出文件时所选择的定界符一致。如果不能确定,查看文本文件中各个字段间用何种符号分割即可;文本限定符统一选择双引号。
图 9. 选择字段分隔符和限定符
选择字段分隔符和限定符
  • 步骤三:需要为每一个导出字段指定合适的数据格式。简单地,可以使用 General 字段自动的为每个字段转换合适的类型;也可以为日期字段指定更具体的格式,例如 YMD 或 DMY 等。
图 10. 为各个字段设置数据格式
为各个字段设置数据格式
  • 将查询结果直接导入 Microsoft Excel

如果不希望生成任何中间数据,还可以通过 CQ Web 客户端将查询结果直接导入 Microsoft Excel 电子表格。但仅支持 Microsoft Excel 2002 和 2003,且不能导入动态查询。具体操作是:

首先选中查询,右键点击添加到收藏夹。如果需要导出某一条记录,则运行查询并从结果集中打开该记录,添加到收藏夹。

其次,在 Microsoft Excel 中,创建新的工作簿,并单击主菜单 > 数据 > 导入外部数据 > 新建 Web 查询。将查询的 Web 地址粘贴到 Web 查询地址栏并单击执行。

最后,单击希望导入的结果集旁边的箭头,将其变为绿色选中标记,完成后单击导入。

Microsoft Excel 仅导入出现在“结果集”页面上的记录。如果需要导入更多数据,需增加“结果集”页面上的记录数。其中,Web 地址应与以下示例类似:

导入某条记录的 Web 地址如下:

http://localhost/cqweb/main?command=GenerateMainFrame&service=CQ&schema=
Import_Sample_SQL_2&contextid=SAMPL&entityID=33554902&entityDefName=Defect

导入某查询的 Web 地址类似于:
http://localhost/cqweb/main?command=GenerateMainFrame&service=CQ&schema=
Import_Sample_SQL_2&contextid=SAMPL&queryID=33554700

其中 schema 是数据库模式,contextid 是用户数据库,queryID 是查询标识。如果输入 URL 后出现登陆页面,可以尝试将 &username=admin&password=pwd 追加于 URL 之后。username 和 password 是用户名和密码标识,按用户实际情况填写。

3. 表单(CQ Designer)

为了在组织内部共享设计成果,ClearQuest 允许将 CQ Designer 设计的表单(form)作为外部数据导出,并允许在其他 CQ Designer 中导入并重用。具体操作是在 CQ Designer 中右键点击导航树中 Form 文件加下需要导出的表单,选则 Export Form;在弹出窗口中输入文件名并选择保存到文件系统的适当位置,文件后缀为 FRM。如图 11 所示:

图 11. 导出表单
导出表单

需要导入表单时,选择表单所在的 Form 文件夹,右键点选 Import Form,从文件系统选择 FRM 文件,Designer 将会新建一个表单,并导入 FRM 文件中所有的 TAB 页面、控件以及表单。值得注意的是表单只能在同样记录类型之间共享,一种记录类型的表单不能被导入到其他记录类型中去。

4. 查询(Query)、图表(Chart)、报表(Report)及报表格式(Report Format)

除了以上外部数据之外,ClearQuest 还支持查询(Query)、图表(Chart)、报表(Report)以及报表格式 (Report Format) 等数据类型。它们的基本操作方式同表单的导出过程相似,其客户端支持信息已经在表 1 中列出,不再赘述。其中图表有两种导出方式:导出为 QRY 格式或直接导出图表图片,后者可直接通过在图表上点击右键 > 导出图表来完成。

四、结论

本文旨在帮助使用者在多种导出导入方式中快速的找到合适的选择;以及当只有限几种导入导出方式时(通常因为只有有限的 ClearQuest 客户端可供使用),快速判断操作目标是否可能达成以及如何完成。此外,有些导入导出操作涉及与第三方软件的协作,两方软件在交汇处的说明略显不足,本文希望在此方面做有益补充。

免责说明

本文档是作者在实际工作中总结的经验,仅仅代表个人观点,请以参考及怀疑的观点阅读。任何由此造成的损失,作者不承担责任。谢谢!

参考资料

学习
  • 访问 IBM developerWorks 中国网站 Rational 专区,获得关于 IBM Rational 软件交付平台(Rational Software Delivery Platform)产品的技术资源和最佳实践。
  • 订阅 Rational Edge 中文版,获取软件开发领域的最佳实践。
  • 订阅 IBM developerWorks 时事通讯,一份关于 developerWorks 指南、文章、下载、社区活动、网络广播和技术讲座的电子周刊。
  • 学习 Hello World 系列教程,这是学习 IBM 软件工具的快速通道。在每一篇教程中,都会有快速入门产品演示动画。您可以通过其中的动画演示快速浏览如何使用 IBM 软件完成开发任务。
获得产品和技术 讨论

火龙果软件/UML软件工程组织致力于提高您的软件工程实践能力,我们不断地吸取业界的宝贵经验,向您提供经过数百家企业验证的有效的工程技术实践经验,同时关注最新的理论进展,帮助您“领跑您所在行业的软件世界”。
资源网站: UML软件工程组织