简介: 许多敏捷软件开发团队都面临的一个挑战是,确保其单元测试包含大部分代码。这在确保他们创建尽可能少的缺陷并且代码可重构时非常重要。因此,重要的度量指标(除了通过的所有测试之外)之一是已包含的代码数量。从 Rational Application Developer 8.0.3 开始,您可以配置 IBM® Rational® Application Developer 并将它与 IBM® Rational Team Concert™ 集成,以便在交付代码之前运行测试并检查代码覆盖率。本文将介绍如何设置此先决条件(名为 Code Coverage Advisor),还将介绍如何使用它来增加项目中测试的代码的覆盖率。

  在许多类型的开发项目中,无论您使用的是敏捷开发方法、Rational Unified Process (RUP),还是瀑布式开发方法,在开发期间,测量已执行代码的数量是一个主要度量指标。这对开发人员和测试人员都很重要,因为当开发人员生成具有高代码覆盖率的代码时,测试团队可以关注代码是否满足业务目标,而不是陷入大量低级代码缺陷中。

  当代码覆盖率非常重要时

  下列是代码覆盖率非常重要时的一些场景的常见示例:

  ● 任何想要响应业务并以低风险方式进行更改的团队

  ● 正在开发代码、想要提供工作质量可见性或需要满足约定的 SLA 的第三方

  ● 当某个项目定义了开发和测试之间的协议,以便通过开发测试获得代码覆盖率时,这意味着测试团队在捕捉代码错误上花费的时间更少

  ● 敏捷团队可能想要在每个 sprint(冲刺阶段)结束时制定发布代码决策,因为这会提高交付物的质量,在将代码用于生产之前很少需要转换代码

  ● 一些想要减少技术债务的团队,这些团队可以逐渐增加单元测试的数量并重构代码,从而减少错误并减低复杂性

  ● 想要通过构建度量程序来衡量质量和技术债务的组织,这样做可及早发现发展趋势并进行相应的改进

  许多敏捷团队都面临的一个具体挑战是,确保他们的单元测试包含大部分代码。这在确保他们创建尽可能少的缺陷并且代码可重构时非常重要。(考虑到团队发展的趋势是涉及很少的设计或没有设计,则具有良好的单元测试非常重要。)一个主要度量指标(除了通过的所有测试)是已包含的代码数量,这是新 IBM? Rational? Application Developer 版本发挥作用的地方。

  今年早些时候,我编写了一个原型扩展,用该扩展来集成 IBM? Rational Team Concert? 和 Rational Application Developer。如果没有足够的代码覆盖率,会阻止交付给 Rational Team Concert 的代码,正如在 Rational Application Developer 中测量的那样。此扩展(现在名为 Code Coverage Advisor)已正式纳入 Rational Application Developer 中,在版本 8.0.3 之后都可以找到它。这意味着您现在可以配置 Rational Application Developer 和 IBM Rational Team Concert,在交付代码之前检查代码覆盖率。本文将介绍如何设置它,以及在项目开发期间如何使用它来提高代码覆盖率。

  提示:

  您需要了解一些 Rational Application Developer 知识才能理解本文。

  后面的内容包含了三个主题:

  1、何时适合使用 Code Coverage Advisor

  2、当使用在 Rational Application Developer 中配置的此额外过程交付代码时会发生什么事

  3、如何配置 Rational Team Concert 以使用 Advisor

  适合使用 Code Coverage Advisor 的情况

  如何使用 advisor?以下是两个主要场景:

  ● 第一个场景针对的是新项目,出现在您想要确保单元测试提供足够的代码覆盖率时。在这种场景下,可使用 Advisor 帮助开发团队维护高标准的单元测试和代码覆盖率。

  ● 第二个场景针对的是您想要改进的具有糟糕的单元测试或不存在单元测试的项目。通过打开 Advisor,要求开发人员为他们修改的代码提供单元测试,这样这些团队可以一种简单、递增且可管理的方式进行改进。此外,这种方法意味着正在编写的单元测试将包含正在修改的代码;因此,开发人员很可能会发现缺陷。

  在这两种场景中,Code Coverage Advisor 可提供大量价值,通过帮助团队维护单元测试的高代码覆盖率来改进其代码质量。下一部分将介绍开发人员在已经配置了代码覆盖率功能时如何使用 Rational Application Developer 交付代码。