“生成质量指示器”报表

“生成质量指示器”报表可显示指定生成定义的测试覆盖率、代码改动和 Bug 计数。 您可以使用此报表来帮助确定代码各部分与发行质量的接近程度。

在理想情况下,测试率、Bug 数和代码改动反映的情况应一致,但事实往往并非如此。 在发现差异时,您可以使用“Bug 质量指示器”报表检查特定生成和数据系列的详细信息。 此报表将测试结果、测试中的代码覆盖率、代码改动和 Bug 结合在一起,使您可同时进行多方面查看。

有关如何访问、刷新或管理报表的信息,请参见报告 (SQL Server Reporting Services)

备注

此报表要求已使用 SQL Server Reporting Services 配置包含您的团队项目的团队项目集合。当打开团队资源管理器并展开您的团队项目节点时,如果未显示 报告“报告”,则此报表不可用。

主题内容

  • 报表中的数据

  • 更改报表中的生成数

  • 解释报表

  • 筛选报表

此报表可用于回答以下问题

  • 软件质量如何?

  • 测试通过率如何?正在测试多少代码?

  • 根据代码和测试指标,团队是否有可能实现目标?

需要的权限

若要查看报表,您必须被分配到或属于某个组,而该组已经在 Reporting Services 中被赋予**“Browser (浏览者)”**角色。 有关详细信息,请参阅向团队项目添加用户

报表中的数据

“生成质量指示器”报表中显示的数据派生自数据仓库。 X 轴根据为平台、配置和生成定义设置的筛选器列出报表包括的特定生成。

每条竖线代表从一个或多个生成派生的一组数据。 在报表的代码大小表示中,每条竖线的长度代表已签入基本代码的大小。 可对竖线进行缩放,以使最大图形适合图表的高度。 可在生成后的任何时间运行手动测试,这些手动测试与该生成相关联。 尚未运行的测试计为“无结论”。

下图显示了一个示例“生成质量指示器”报表。

“生成质量指示器”报表示例

下表说明为报表中每个质量指示器显示的信息:

质量指示器

描述

活动 Bug(计数)

折线图,用于描述生成时处于活动状态的 Bug 的数量。

备注

Bug 不与生成显式关联。有些已计数的 Bug 可能不会影响图表中显示的生成。可以使用“区域”参数按产品区域筛选 Bug。这种方法可显示最有可能影响报表中的生成的 Bug。

代码改动(行)

折线图,该图描述在生成之前,团队在签入中添加、删除和更改的代码的行数。 代码改动的计算方式是:确定对生成添加、删除或修改的代码行数,然后除以生成中的总行数。

代码覆盖率(百分比)

折线图,该图描述测试覆盖的代码的百分比。

无结论的测试

堆积条形图的灰色部分,指示未成功或被暂停的测试的数量。 如果生成未成功,则要么不对测试进行计数,要么将测试计为“无结论”。

失败的测试

堆积条形图的红色部分,指示针对生成失败的测试的数量。

通过的测试

堆积条形图的绿色部分,指示针对生成已通过的测试的数量。

备注

有关通过或未通过测试结果的含义的更多信息,请参见“测试计划进度”报表

您可以按下列方式筛选报告:

  • 通过指定生成数和报表结束日期更改 X 轴的范围。 显示的第一个生成的日期取决于生成频率。

  • 通过指定要包含在报表中的平台、配置和生成定义,筛选报表显示的生成集。 在该序列中设置参数,因为生成定义的可用值集取决于平台和配置。

  • 通过指定要包括的产品区域筛选在报表中计入的 Bug。 此筛选器不影响 X 轴上显示的生成集、代码改动、代码覆盖率和测试结果。

有关更多信息,请参见此主题后面的筛选报告。

必需的测试和生成管理活动

为了使“生成质量指示器”报表有用,并正确描述该报表可显示的所有质量指示器,团队成员必须执行以下活动来管理测试和生成:

  • 配置生成系统。 若要使用 Team Foundation Build,必须设置生成系统。

    有关详细信息,请参阅配置和管理生成系统

  • 创建生成定义。 您可创建数个生成定义,可运行其中的每个生成定义为不同平台生成代码。 此外,还可以针对不同配置来运行每个生成。

    有关详细信息,请参阅定义生成过程

  • 定义要随生成自动运行的测试。 在生成定义中,您可以定义随生成运行的测试,还可以将测试通过定义为生成成功的必要条件。

    有关详细信息,请参阅对生成过程使用默认模板

  • 配置测试,使其收集代码覆盖率数据。 为使代码覆盖率数据显示在报告中,团队成员必须对测试进行检测以收集相关数据。

  • 定期运行生成。 您可以按设置的时间间隔或在每次签入之后运行生成。 可以在使用计划触发器时创建定期生成。

    有关更多信息,请参见创建或编辑生成定义运行、监视和管理生成

    备注

    虽然团队成员可以使用生成资源管理器对生成进行手动分级,但此分级不会反映在“生成质量指示器”报告中。生成分级在“生成摘要”报告中显示。有关更多信息,请参见对已完成生成的质量进行评级“生成摘要”报表

更改报表中的生成数

根据报表包含的生成数和应用于报表的其他筛选器,“生成质量指示器”报表的显示会大不相同。 通过更改报表中显示的生成数,可使报表聚焦于特定生成范围。

设置报表中表示的生成数

  1. 在**“生成数”**中,输入要包括的数量。

  2. 在**“结束(日期)”**旁,单击日历图标,然后单击要含入报表中的生成的最后运行日期。

  3. 单击**“查看报表”**。

解释报表

您可以检查该报表,以便针对任何特定生成定义获取下列问题的答案:

  • 软件质量如何?

  • 团队是否测试了足够的代码?

  • 测试是否通过?

  • 根据代码和测试指标,团队是否有可能完成工作?

  • 测试通过率如何?正在测试多少代码?

    备注

    彩色段和灰色段的比率可反映测试覆盖的代码部分,而彩色段内的比例仅可大概反映通过或未通过测试的代码部分。产生此歧义的原因在于:彩色段内的绿色部分其实表示已通过测试的数量。一处代码的一个错误可能导致许多测试失败,而一个错误也可能表示设计中的全局性错误(该错误会影响整个基本代码)。

正常的报表版本

正常的“生成质量指示器”报表会显示以下指示性特征:

  • 大多数测试都通过(大面积绿色),很少有测试未通过(少量红色)。

  • 红色所占百分比小于 20-30%。

下图所示的代码覆盖率和测试通过率较高并且随时间提高。 代码改动、活动 Bug、无结论的测试和未通过的测试都较少并且有减少趋势。

生成质量指示器的正常版本

不正常的“生成质量指示器”报表版本

不正常的“生成质量指示器”报表版本将显示以下一个或多个指示性特征。 您可能需要根据以下指南调查原因。

  • 代码覆盖率较低,代码改动较多。 下图显示代码覆盖率降低而代码改动增多。 此数据是一个明确的警告,表明正在签入的新代码没有相应的单元测试可以覆盖。

    “生成质量指示器”报表中的代码改动

  • 运行测试的比率较低。 下图显示运行测试的比率较低。 此数据可能表明团队未执行足够的测试。 测试进度的阻滞可能表明缺少资源,或测试人员可能在做其他事情,如在编写测试自动化功能而非测试当前功能。 无论是哪种情况,资源平衡都可能是合理的。

    “生成质量指示器”报表中的低测试率

  • 代码改动率较高,代码覆盖率较低。 代码改动率较高意味着会以更改所产生的副作用的方式引入 Bug。 在合理重构的项目中,您可看到代码改动不会造成代码覆盖率或测试通过率的变化。 否则,代码改动率较高可能意味着覆盖率降低并且需要重新编写测试。

    下图所示的情况是代码改动率较高,测试的代码覆盖率较低,但测试通过率保持较高水平。 此数据表明当前运行的测试未涉及新代码。

    “生成质量指示器”报表中的高代码改动率

  • 测试未通过的比率较高。 下图显示当前运行的许多测试都有合理的代码覆盖率,但这些测试都未通过。 此数据可能表明开发行为不严谨;或者,在早期迭代中,表明测试对于此产品阶段而言过于严格。

    “生成质量指示器”报表中的测试失败信息

    应尽快处理未通过的测试。 如果修复代码不可行,则应暂时禁用未通过的测试,而且应对 Bug 进行记录。 虽然在项目早期不急于处理代码分析错误有时是可以接受的,但应避免让红色部分变得过大。

  • 测试通过率较高,活动 Bug 比率较高。 下图显示测试通过率较高,但引入 Bug 比率仍较高。 出现此情况的原因可能有多种。 对于此产品阶段,测试可能不够严格。

    “生成质量指示器”报表中的低测试率

    在早期迭代中,简单的测试没有问题;但是,随着产品的逐渐成熟,测试应会运用更广泛的方案和集成。 测试可能已过时或测试了错误的功能。 可能有必要改变测试方法。

  • 测试通过率在提高,但代码覆盖率未提高。 通常,运行的测试越多,测试覆盖的代码也应该越多。 然而,如果测试执行率和测试通过率在提高,而代码覆盖率没有相应提高,则表明增加的测试可能是多余的。

  • 活动 Bug 计数增加,但测试失败率未提高。 如果活动 Bug 计数增加,而测试失败率未相应提高,则表明测试所检测的功能可能与 Bug 所报告的功能不同。

  • 活动 Bug 计数减少,而测试通过率未提高。 如果活动 Bug 计数减少,而测试通过率未提高,则表明您可能面临重新激活率增加的风险。

  • 大面积灰色。 灰色段表示在给定生成中未生成或测试的代码。 此数据仅显示在定期报表中,在定期报表期间内未发生一个或多个指定的生成。

筛选报表

您可通过以下方式筛选“生成质量指示器”报表:

  • 通过指定生成数和报表结束日期更改时间间隔。

  • 通过指定要包括在报表中的平台、配置和生成定义来筛选报表中表示的生成集。

    备注

    您可以将生成定义配置为不运行测试、运行某些测试或运行所有测试。根据生成定义的配置,报表会有很大不同。

  • 通过指定要包括的产品区域筛选在报表中计入的 Bug。

下图显示了可用的筛选器:

生成质量指示器筛选器

按以下过程指定的顺序来应用筛选器。 某些筛选器的可用选项取决于之前设置的筛选器。

筛选报表中显示的生成

  1. 在**“生成数”**中,输入要包括的数量。

  2. 在**“结束日期”**旁,单击日历图标,然后单击要包括的生成的最后日期。

  3. 在**“平台”**列表中,选中要包括的每个平台对应的复选框。

  4. 在**“配置”**列表中,选中要包括的每个配置对应的复选框。

  5. 在**“生成定义”**列表中,选中要包括的每个生成定义对应的复选框。

  6. 单击**“查看报表”**。

筛选报表中显示的 Bug 计数

  1. 在**“区域”**列表中,选中要包括的每个测试结果的复选框。

    此步骤将基于测试结果的层次结构来筛选报表。

  2. 单击**“查看报表”**。

请参见

其他资源

报告 (SQL Server Reporting Services)