| 下载试用版:IBM® Rational® Team Concert 标准版 | IBM® Rational® Team Concert 免费版 |
|---|
| 下载更多的 IBM 软件试用版,并加入 IBM 软件下载与技术交流群组,参与在线交流。 |
本文向您介绍了怎样使用 IBM® Rational Team Concert™ 3.0 版本特性,来收集正交缺陷分类法(Orthogonal Defect Classification,ODC)数据以便作进一步的分析。本系列的第一篇文章将会描述如何在 IBM® Rational® Jazz™ 环境中,使用 ODC 数据收集的工具来支持 ODC 过程所需要的步骤。第二篇文章会描述怎样创建一系列的评价图,并使 Rational Team Concert 环境中的所有团队成员都能使用该图。
要按照本文中介绍的指南操作,您需要安装 Rational Team Concert 3.0 服务器,并配置相应的 Rational Team Concert Eclipse 客户端。您还需要拥有更改过程定义的权限。如果您没有安装 3.0 版本的 Rational Team Concert 服务器或者客户端,您可以查看本文的 参考资料 部分,以找到关于从 Jazz 网站获得,安装和配置需要软件的信息。
正交缺陷分类法(Orthogonal Defect Classification,ODC)是一种功能强大的缺陷分析方法,开发团队可以使用该方法来监视项目过程和健康状况,该技术是由 IBM 研发实验室团队开发的。ODC 过程已经有效地应用到许多的项目之中,结果证明它对高质量软件的交付作出了很大的贡献。ODC 是从缺陷分类的一系列简单规则中创建的,以便轻松地应用到多个项目之中。ODC 方法的简便性降低了将其引入到软件开发周期之中的成本。因此,它就为客户与开发团队带来了真正的价值。在与您的开发环境集成后不久,您就可以看到在项目过程追踪、风险管理,以及质量方面重大的改进,这同样也会使得客户满意度也有极大的提高。
ODC 的主要假设在于,扩展每一个缺陷记录及完整定义的其他数据。信息越多,意味着作出的决策越完善。在特定的时间之后,每个缺陷的 ODC 数据会得到系统和综合的收集,以让团队对不同开发活动期间发现的缺陷的特征进行广泛的分析,以找出缺陷趋势。这种分析使得对关键的问题作出了全面的了解。接下来的是最重要的部分:防止不可预料情况进一步发生可以采取的措施。
ODC 语义信息不但有助于作出更好的决策,而且能够极大地降低成本。通过预防缺陷的产生,在开发阶段消除缺陷的隐患,并降低缺陷逃逸率,它为改进软件的质量提供了一种简单有效的方法。ODC 分析可以回答开发阶段所问的大多数问题,例如:
- 每个活动期间我们是否找到了正确的缺陷?
- 缺陷通常都在什么地方?
- 测试中没有涉及到什么?
- 源代码和测试的质量随着时间的变化怎样?
- 我们是否得到客户适当的注意力?
- 我们是否正在不断完成代码?
- 我们是否让产品更加稳定?
完整的 ODC 分类及评价过程是定义完善的,由如图 1 所示的主要阶段组成。
图 1. ODC 主过程阶段
该过程包含了按照以下顺序发生的活动:
- 分类(Classify): 分类步骤获取了 ODC 数据收集。收集数据需要团队内的两个基本角色:提交者(Submitter) 以及 响应者(Responder)。测试人员通常会扮演提交者的角色,而开发团队的成员则会扮演响应者的角色。分类是向缺陷实体分配正确权限的持续性过程。
- 确认(Validate): 这一步骤必须由拥有特定项目知识储备以及操作技巧的合格人员来执行。Validator 角色会向团队提供基于分类缺陷评审结果的反馈。
- 评估(Assess): 对于 ODC,该评价关注于 ODC 属性与其他缺陷相关的数据,例如构件或者安全性。通常来说它还包含了特定 ODC 属性的缺陷趋势的分析,其基础是另一个 ODC 属性内特定属性集的缺陷的数量。
- 执行(Act): 这是在分析分类缺陷的基础之上实施操作的阶段。
本文关注的是支持 Rational Team Concert 中正确特性的 分类 以及 确认 阶段,以支持缺陷类型工作项的 ODC 方案。
| ODC 成功指南 |
|---|
下面是所有确保项目中 ODC 方法能够取得成功的关键性因素:
|
必须要引入 ODC 分类的概念,以理解怎样配置开发环境。缺陷生命周期通常由开发周期的一些状态组成,但是只能两次获得有用的信息:一次是发现缺陷时,一次是开发员交付修复时。
当您在识别缺陷时,在将缺陷传递给开发序列之前,提交者(Submitter)必须要在追踪工具之中收集所有需要的信息并记录它。尽管在缺陷分析中所有的数据都很有用,但是您可以使用初始的 ODC 数据集进行扩展。有三个特定 ODC 的类别会识别打开缺陷的环境。对于缺陷提交者,您可以使用接下来的类别来对其分类:
- 活动(Activity)
- 活动是在发现缺陷时执行的。可用的活动是由项目团队定义的。
- 触发器(Trigger)
- 发现缺陷时就会满足条件,这严格取决于活动。当一项活动取决于特定的项目时,激发器就会一直处于不变更状态。
- 影响(Impact)
- 对缺陷的评价会影响到客户。
当缺陷由响应者(Responder)关闭时,还可以使用描述缺陷本质和范围的其他数据。该信息会归类为以下五种类型中的一种:
- 目标(Target)
- 修复的实体
- 缺陷类型(Defect type)
- 修复的实质内容
- 识别符(Qualifier)
- 导致缺陷的直接原因
- 源(Source)
- 识别拥有缺陷目标的起源
- 历史(Age)
- 目标的历史
注意:
每个角色所实现的信息排除在外。您应该配置 Rational Team Concert 以让它们处于分隔状态。这就是我们的目标之一。
在本文发布时,Rational Team Concert 目前并不直接支持 ODC 缺陷分类功能;但是,您有很多种方法扩展 RTC 的功能以实现这个目标。通过扩展 Rational Team Concert 平台,您就可以使用 ODG 过程来丰富它的功能。
为了在 Rational Team Concert 中实施 ODC 数据收集功能,您就可以定义通用属性来扩展 Rational Team Concert 工作项工件(这就是 Rational Team Concert 的功能)。这可以完美地匹配了 ODC 数据模型的简便性,后者关注的是定义完善的缺陷相关属性。
为了支持 ODC 数据收集功能,您需要定制工作项的 Defect 类型。为了实现这一点,您可以运行 Rational Team Concert Eclipse 客户端,并在 Process Configuration Editor 中选择项目定义或者模板。您可以使用 Process Configuration 的 Work Items 部分:
项目配置 > 配置数据 > 工作项
首先,您需要为 ODC 属性添加需要的枚举项。在该 ODC Activity 范例中将会演示创建一个新枚举项的过程:
- 打开 Enumerations 编辑器,并在打开的项目中,切换至 Choose enumeration to edit 并点击 Add。
- 一个对话框窗口会出现,如图 2 所示,这样您就可以提供一个枚举项 ID 及其名字。在您输入信息并点击 OK 之后,编辑就可以使用新的枚举项了。
图 2. 为 ODC Activity 添加一个新的枚举项
现在可以通过将其添加到 Enumeration Literals 列表,来定义枚举项及它们的顺序。
- 通过点击每一个枚举项类型的 Add Literal,您可以定义条目,包括“未指派”。
- 然后,在 Enumeration 部分之中,将 Default Literal 及 未指派 Literal 设置为值 未指派,如图 3 所示。
图 3. 向枚举项添加条目
对 ODC 属性所需要的剩余枚举项重复上述步骤,以创建枚举项。表 1 与表 2 显示了每一个创建枚举项的条目。表 3 显示了枚举项 ID 和名字。
表 1. ODC Submitter 属性的 Enumeration 条目
| ODC 活动 | ODC 触发器 | ODC 影响 |
|---|---|---|
| 未指派 设计评审 代码检查 单元测试 构建 BVT CVT SVT IVT GVT TVT DBCS IVT 性能 评测性 ID 评审 GUI 评审 接受性 Beta | 未指派 设计一致性 逻辑,流程 反向兼容性 项目兼容性 并发性 内部文件 语言依赖 边缘效应 稀少情况 简单路径 复杂路径 覆盖面 变量 序列 交易 工作负荷,压力 恢复性,预期 启动,重新启动 硬件配置 软件配置 屏幕截图,字符 导航 工具,GUI 行为 | 未指派 不稳定性 标准 可服务性 完整性 安全性 转移 可靠性 性能 文献 需求 维护性 实用性 可访问性 功能 |
表 2. ODC Responder 属性的枚举项
| ODC 目标 | ODC 缺陷类型 | ODC 标识 | ODC 时间 | ODC 源 |
|---|---|---|---|---|
| 未指派 需求 设计 代码 构建,包 信息开发 国家语言支持 | 未指派 分配 检查 规则,方法 函数.类,对象 计时,序列化 界面,O-O 信息 关系 用户界面 转化 | 未指派 丢失 不正确 不相关的 | 未指派 基础 新 覆盖 重新修复 | 未指派 室内开发 库再使用 外来源 固定的 |
表 3. ODC 通用属性名及识别符
| 名称 | ID |
|---|---|
| ODCActivity | odc.activity |
| ODCTrigger | odc.trigger |
| ODCImpact | odc.impact |
| ODCTarget | odc.target |
| ODCDefectType | odc.deftype |
| ODCQualifier | odc.qualifier |
| ODCAge | odc.age |
| ODCSource | odc.source |
创建的枚举项会用作缺陷 ODC 通用属性的类型。
当您定义所有需要的枚举项时,您可以向 Defect 工作项添加 ODC 通用属性。您可以按照下面的步骤来实现该操作:
- 打开 Types and Attributes 并确保您选择了工作项的 Defect 类型。
图 4. Types 及 Attributes 编辑器
- 切换至 Types and Attributes 编辑器的 Attributes 部分,并选择 Show only custom attributes。
- 点击 Add。
- 在新窗口(见于图 5)之中,提供关于 ODC Activity 通用属性所需要的信息,包括用于相应枚举项的适当枚举项以及相同 ID。
图 5. 创建一个新的通用属性
- 重复第 1 步和第 2 步以完成剩余的 ODC 属性。
当您在创建所有的 ODC Submitter 属性时,您需要扩展 Defect 编辑器,这样它就可以显示 ODC 数据。在此之前,您就需要为编辑 ODC 数据的 Defect 编辑器定义一个 UI 区域。按照下面的操作来完成它:
- 打开 Types and Attributes 部分,检查是否选中了 Defect 选项,确定在 Work Item Types 中选中了 Defect 项目,并查看 Work Item Editor 下面显示了什么编辑器 ID。图 4,在上面显示了类型与属性的配置。
- 打开 Editor Presentations 并为 Defect 选中适当的演示。
- 点击 Add Tab 按钮,并在适当的位置提供 Title,Layout 及 ID(见于图 6)。
- 点击 OK。
图 6. 向缺陷演示编辑器添加 ODC 项
- 点击 Add Section,并将其命名为
ODC Submitter,然后选择一个选项。 - 重复上述的步骤来添加
ODC Responder部分。 - 对于 ODC Submitter 部分,为
ODC Activity,ODC Trigger与ODC Impact添加演示。Add Presentation 按钮显示了创建演示的对话框。在 Attribute-based Presentation 部分之中,选择一个适当的属性,并在 Kind 下拉菜单之中,选择 Enumeration。您还可以选择输入一个标签,描述及一个 ID。
图 7. 向 ODC Submitter 部分添加 ODC Activity 演示
- 在 ODC Responder 部分之中,添加
ODC Target,ODC Defect Type,ODC Qualifier,ODC Age以及ODC Source。 - 创建一个新的范例缺陷,并确认 ODC 项目和部分得到了适当的创建。
ODC 属性之间的依赖也可以反映在缺陷提供者的 ODC 项目上。ODC Activity 与 ODC Trigger 之间的关系显示在 Submitter 部分中。ODC Target 与 ODC Defect Type 之间的其他关系在 ODC Responder 部分之中。
ODC Trigger 的可能值取决于 ODC Activity 的当前值。ODC Target 与 ODC Defect Type 之间也是这样。您可以在 Attribute Customization 编辑器 Value Sets 特性中管理它们之间的关系。您需要创建 Dependent Enumerations 值的新定义并选择枚举项,以定义依赖值。对于源枚举项的每一个选项,如果其值已经选中的话,那么您可以选择目标枚举项中可用的值。确定 未指派 一直被选中以预防初始化期间产生问题。图 8 展示了 ODC Activity 与 ODC Trigger 依赖的一个范例。
图 8. ODC 活动与 ODC 激活器的依赖值
您还可以使用 ODC 项,它位于缺陷编辑器中,以追踪 ODC 确认。当您想要向存储其他数据的地方添加一个通用选项时,您可以使用该项。您可以看到其他的选项,该选项指示了是否执行了确认,以及确认执行到什么程度(ODC 确认枚举项:None,ODC Submitter,ODC Responder 与 ODC Submitter 及 ODC Responder)。
您还可以添加一个 ODC Comments 字段,以提供对缺陷有反馈的初始者和拥有者。图 9 显示了 Validation 与 Comments 字段,而图 10 在 Defect Editor 中显示了结果。
图 9. ODC 项上其他的部分以便确认
图 10. Defect 编辑器的复杂表达式以便 ODC 数据追踪和确认
正交缺陷分类发(ODC)是每个项目阶段分类缺陷并节省项目团队大量时间的一种有效方法,但是只是在该方法得到适当地实施和使用时才会这样。过程与开发平台的适当集成对成功非常关键。正如您从本文中所看到的那样,Rational Team Concert 3.0 可以按照对 Defect 工作项和确认活动轻松应用 ODC 方案的方式进行扩展。在本系列的下一篇文章中,我们将会描述如何使用 Rational Team Concert 以支持 ODC 分析阶段的方式。
由两篇文章所组成专题的下一篇文章向您解释了怎样扩展 Rational Team Concert 3.0 以支持 ODC 分析阶段。
我先要感谢 Michael Spisak,IT Architect,IBM Certified Consulting IT Specialist 及 Master Inventor 对本文所作的技术评审工作,以及 Witold Kopel,Justyna Drozdz 和 Rafal Adamczyk 对本文做的一般性评审工作和鼓励。
学习
- 更多有关 ODC 的内容:
- IBM 研究网站上的 ODC 基础
- 在 Chillarege 网站 上查看基础知识
- Ram Chillarege,Inderpal S. Bhandari,Jarir K.Chaar,Michael J. Halliday,Diane S. Moebus,Bonnie K. Ray,Man-Yuen Wong。"Orthogonal Defect Classification -- A Concept for In-Process Measurements"。IEEE Transactions on Software Engineering,18 卷,11 号,1992 年 11 月。
- 阅读 在 Rational Team Concert 3.0 中定制属性,Patrick Streule 作(2010 年 11 月),以及 Jazz 资料库中其它文章,以学习了解更多有关在 Rational Team Concert 3.0 中的定制。
- 查找 Rational Team Concert 文章和 IBM developerWorks 页面上的许多其它资源的链接。您也可以观看 在分布式团队中使用 Rational Team Concert web 广播,或 仪表板和报告 的演示,或者收听 聚焦 IBM 软件解决方案:IBM Rational Team Concert 与 Jazz 的播客。
- 访问 developerWorks 上的 Rational 专区,了解有关 Rational 软件交付平台产品的技术资源和最佳实践。
- 时刻关注 developerWorks 技术事件和 Web 广播,包括各种 IBM 产品和 IT 行业主题。
- 参见 developerWorksLive! 技术讲座,快速了解 IBM 产品和工具,以及 IT 行业趋势。
- 查看 developerWorks 演示中心,从初学者的产品安装和配置演示,到面向有经验开发人员的高级功能。
-
改善您的技能。查看 Rational 培训和认证 目录,其包含了许多广泛议题的课程类型。您可以在任何地方,任何时间学习它们,许多“启动”课程是免费的。
获得产品和技术
- 访问 Jazz 社区,下载 Rational Team Concert 3.0 客户端和服务器试用版本,并阅读 文章。
-
按照最适合您的方式IBM 产品评估试用版软件:下载进行试用,可以在线进行,在云环境中使用,或者在 IBM SOA 人员沙箱 中花一些时间了解如何有效实施面向服务架构。
讨论
- 参加 Jazz.net 上的 使用 Rational Team Concert 讨论区。
- 加入 Rational Team Concert 讨论区,或在 Jazz.net 讨论区 提出问题。
- 通过 撰写一篇 developerWorks 文章 共享您的知识,并帮助那些使用 Rational 软件的人员。您将获得全球范围展示,RSS 企业联合组织,署名和建立,以及 developerWorks Rational web 网站专业编辑和出版的益处。
- 跟随 Facebook 和 Twitter (@ibmrational) 上的 Rational 软件,并添加您的注释和请求。
- 您可以加入 Rational 讨论区,cafés 和 wikis,询问并回答问题,增加您的专业技能。
- 通过加入 developerWorks 中文社区,与其他人员联系,分享您的兴趣爱好,并响应 开发人员驱动的博客。
