“生成质量指示器”报表
“生成质量指示器”报表可显示指定生成定义的测试覆盖率、代码改动和 Bug 计数。 您可以使用此报表来帮助确定代码各部分与发行质量的接近程度。
在理想情况下,测试率、Bug 数和代码改动反映的情况应一致,但事实往往并非如此。 在发现差异时,您可以使用“Bug 质量指示器”报表检查特定生成和数据系列的详细信息。 此报表将测试结果、测试中的代码覆盖率、代码改动和 Bug 结合在一起,使您可同时进行多方面查看。
有关如何访问、刷新或管理报表的信息,请参见报表 (Agile)。
备注
此报告要求已使用 SQL Server Reporting Services 配置包含您的团队项目的团队项目集合。当打开团队资源管理器并展开您的团队项目节点时,如果未显示 “报表”,则此报表不可用。
主题内容
|
此报表可用于回答以下问题:
|
所需权限
若要查看报表,您必须被分配到或属于某个组,而该组已经在 Reporting Services 中被赋予**“浏览者”**角色。 有关更多信息,请参见向团队项目中添加用户或管理权限。
报表中的数据
“生成质量指示器”报表中显示的数据派生自数据仓库。 X 轴根据为平台、配置和生成定义设置的筛选器列出报表包括的特定生成。
每条竖线代表从一个或多个生成派生的一组数据。 在报表的代码大小表示中,每条竖线的长度代表已签入基本代码的大小。 可对竖线进行缩放,以使最大图形适合图表的高度。 可在生成后的任何时间运行手动测试,这些手动测试与该生成相关联。 尚未运行的测试计为“无结论”。
下图显示了一个示例“生成质量指示器”报表。
下表说明为报表中每个质量指示器显示的信息:
质量指示器 |
说明 |
---|---|
活动 Bug(计数) |
折线图,用于描述生成时处于活动状态的 Bug 的数量。
说明
Bug 不与生成显式关联。有些已计数的 Bug 可能不会影响图表中显示的生成。可以使用“区域”参数按产品区域筛选 Bug。这种方法可显示最有可能影响报表中的生成的 Bug。
|
代码改动(行) |
折线图,该图描述在生成之前,团队在签入中添加、删除和更改的代码的行数。 代码改动的计算方式是:确定对生成添加、删除或修改的代码行数,然后除以生成中的总行数。 |
代码覆盖率(百分比) |
折线图,该图描述测试覆盖的代码的百分比。 |
无结论的测试 |
堆积条形图的灰色部分,指示未成功或被暂停的测试的数量。 如果生成未成功,则要么不对测试进行计数,要么将测试计为“无结论”。 |
失败的测试 |
堆积条形图的红色部分,指示针对生成失败的测试的数量。 |
通过的测试 |
堆积条形图的绿色部分,指示针对生成已通过的测试的数量。 |
备注
有关通过或未通过测试结果的含义的更多信息,请参见“测试计划进度”报表。
您可以按下列方式筛选报表:
通过指定生成数和报表结束日期更改 X 轴的范围。 显示的第一个生成的日期取决于生成频率。
通过指定要包含在报表中的平台、配置和生成定义,筛选报表显示的生成集。 在该序列中设置参数,因为生成定义的可用值集取决于平台和配置。
通过指定要包括的产品区域筛选在报表中计入的 Bug。 此筛选器不影响 X 轴上显示的生成集、代码改动、代码覆盖率和测试结果。
有关更多信息,请参见此主题后面的筛选报表。
必需的测试和生成管理活动
为了使“生成质量指示器”报表有用,并正确描述该报表可显示的所有质量指示器,团队成员必须执行以下活动来管理测试和生成:
配置生成系统。 若要使用 Team Foundation Build,必须设置生成系统。
有关更多信息,请参见Configuring Your Build System。
创建生成定义。 您可创建数个生成定义,可运行其中的每个生成定义为不同平台生成代码。 此外,还可以针对不同配置来运行每个生成。
有关更多信息,请参见定义生成过程。
定义要随生成自动运行的测试。 在生成定义中,您可以定义随生成运行的测试,还可以将测试通过定义为生成成功的必要条件。
有关更多信息,请参见定义基于默认模板的生成过程。
配置测试,使其收集代码覆盖率数据。 为使代码覆盖率数据显示在报告中,团队成员必须将测试配置为收集该数据。
有关更多信息,请参见使用测试设置的代码覆盖率已弃用和How to: Gather Code-Coverage Data with Generic Tests。
定期运行生成。 您可以按设置的时间间隔或在每次签入之后运行生成。 可以在使用计划触发器时创建定期生成。
有关更多信息,请参见创建生成定义和运行、监视和管理生成。
备注
虽然团队成员可以使用生成资源管理器对生成进行手动分级,但此分级不会反映在“生成质量指示器”报告中。生成分级在“生成摘要”报告中显示。有关更多信息,请参见对已完成生成的质量进行评级和“生成摘要”报表。
更改报表中的生成数
根据报表包含的生成数和应用于报表的其他筛选器,“生成质量指示器”报表的显示会大不相同。 通过更改报表中显示的生成数,可使报表聚焦于特定生成范围。
设置报表中表示的生成数
在**“生成数”**中,输入要包括的数量。
在**“结束(日期)”**旁,单击日历图标,然后单击要含入报表中的生成的最后运行日期。
单击**“查看报表”**。
解释报表
您可以检查该报表,以便针对任何特定生成定义获取下列问题的答案:
软件质量如何?
团队是否测试了足够的代码?
测试是否通过?
根据代码和测试指标,团队是否有可能完成工作?
测试通过率如何?正在测试多少代码?
备注
彩色段和灰色段的比率可反映测试覆盖的代码部分,而彩色段内的比例仅可大概反映通过或未通过测试的代码部分。产生此歧义的原因在于:彩色段内的绿色部分其实表示已通过测试的数量。一处代码的一个错误可能导致许多测试失败,而一个错误也可能表示设计中的全局性错误(该错误会影响整个基本代码)。
正常的报表版本
正常的“生成质量指示器”报表会显示以下指示性特征:
大多数测试都通过(大面积绿色),很少有测试未通过(少量红色)。
红色所占百分比小于 20-30%。
下图所示的代码覆盖率和测试通过率较高并且随时间提高。 代码改动、活动 Bug、无结论的测试和未通过的测试都较少并且有减少趋势。
不正常的“生成质量指示器”报表版本
不正常的“生成质量指示器”报表版本将显示以下一个或多个指示性特征。 您可能需要根据以下指南调查原因。
代码覆盖率较低,代码改动较多。 下图显示代码覆盖率降低而代码改动增多。 此数据是一个明确的警告,表明正在签入的新代码没有相应的单元测试可以覆盖。
运行测试的比率较低。 下图显示运行测试的比率较低。 此数据可能表明团队未执行足够的测试。 测试进度的阻滞可能表明缺少资源,或测试人员可能在做其他事情,如在编写测试自动化功能而非测试当前功能。 无论是哪种情况,资源平衡都可能是合理的。
代码改动率较高,代码覆盖率较低。 代码改动率较高意味着会以更改所产生的副作用的方式引入 Bug。 在合理重构的项目中,您可看到代码改动不会造成代码覆盖率或测试通过率的变化。 否则,代码改动率较高可能意味着覆盖率降低并且需要重新编写测试。
下图所示的情况是代码改动率较高,测试的代码覆盖率较低,但测试通过率保持较高水平。 此数据表明当前运行的测试未涉及新代码。
测试未通过的比率较高。 下图显示当前运行的许多测试都有合理的代码覆盖率,但这些测试都未通过。 此数据可能表明开发行为不严谨;或者,在早期迭代中,表明测试对于此产品阶段而言过于严格。
应尽快处理未通过的测试。 如果修复代码不可行,则应暂时禁用未通过的测试,而且应对 Bug 进行记录。 虽然在项目早期不急于处理代码分析错误有时是可以接受的,但应避免让红色部分变得过大。
测试通过率较高,活动 Bug 比率较高。 下图显示测试通过率较高,但引入 Bug 比率仍较高。 出现此情况的原因可能有多种。 对于此产品阶段,测试可能不够严格。
在早期迭代中,简单的测试没有问题;但是,随着产品的逐渐成熟,测试应会运用更广泛的方案和集成。 测试可能已过时或测试了错误的功能。 可能有必要改变测试方法。
测试通过率在提高,但代码覆盖率未提高。 通常,运行的测试越多,测试覆盖的代码也应该越多。 然而,如果测试执行率和测试通过率在提高,而代码覆盖率没有相应提高,则表明增加的测试可能是多余的。
活动 Bug 计数增加,但测试失败率未提高。 如果活动 Bug 计数增加,而测试失败率未相应提高,则表明测试所检测的功能可能与 Bug 所报告的功能不同。
活动 Bug 计数减少,而测试通过率未提高。 如果活动 Bug 计数减少,而测试通过率未提高,则表明您可能面临重新激活率增加的风险。
大面积灰色。 灰色段表示在给定生成中未生成或测试的代码。 此数据仅显示在定期报表中,在定期报表期间内未发生一个或多个指定的生成。
筛选报表
您可通过以下方式筛选“生成质量指示器”报表:
通过指定生成数和报表结束日期更改时间间隔。
通过指定要包括在报表中的平台、配置和生成定义来筛选报表中表示的生成集。
备注
您可以将生成定义配置为不运行测试、运行某些测试或运行所有测试。根据生成定义的配置,报表会有很大不同。
通过指定要包括的产品区域筛选在报表中计入的 Bug。
下图显示了可用的筛选器:
按以下过程指定的顺序来应用筛选器。 某些筛选器的可用选项取决于之前设置的筛选器。
筛选报表中显示的生成
在**“生成数”**中,输入要包括的数量。
在**“结束日期”**旁,单击日历图标,然后单击要包括的生成的最后日期。
在**“平台”**列表中,选中要包括的每个平台对应的复选框。
在**“配置”**列表中,选中要包括的每个配置对应的复选框。
在**“生成定义”**列表中,选中要包括的每个生成定义对应的复选框。
单击**“查看报表”**。
筛选报表中显示的 Bug 计数
在**“区域”**列表中,选中要包括的每个测试结果的复选框。
此步骤将基于测试结果的层次结构来筛选报表。
单击**“查看报表”**。