本主题说明如何将测试/代码与开发工件相关联。
说明
您可以将您的测试/代码与开发工件(例如任务、功能请求或需求)相关联,以帮助您跟踪被测应用程序的质量。通过向测试代码添加类似 Javadoc 的标记并指定开发工件 ID 来建立关联。C/C++test 包含多个默认标签,但您可以创建自定义标签以满足您的需求。
@req 和 @test 是 C/C++test 中的特殊标记,它们支持从测试到应用程序生命周期或需求管理系统 (ALM/RMS) 中的工件的可追溯性。还需要 Parasoft DTP 和 DTP 的可追溯性包扩展。 有关在 Parasoft 中利用可追溯性的详细信息,请参阅 使用需求视图 相关章节。
本章介绍了如何应用关联标签的基本过程。
关于默认标签
默认支持以下标签:
- @PR
- @FR
- @TASK
- @REQ - 可用于需求可追溯性工作流程
- @TEST- 可用于需求可追溯性工作流程
有关创建自定义标签的详细信息 Using Custom Defect/Issue Tracking Tags ,请参阅。
在代码中创建关联
您可以通过在代码中添加标记后跟工件 ID 作为注释来将测试/代码与开发工件相关联。
- 不要在注释行中包含其他代码。
- 在一行中仅使用一种标记类型。
- 使用逗号或空格字符来分隔多个工件 ID。
示例:
//@REQ 987 333 //@TASK 543, 123
/** * @req 2453, 198 * @task 2342 156 444 */
当您为测试用例创建关联时,请确保在测试用例创建者 CPPTEST_TEST_CASE_BEGIN 和 CPPTEST_TEST_CASE_END 之间添加注释。
示例:
/* CPPTEST_TEST_CASE_BEGIN test_foo */ // @FR 903, 555 // @TASK 781 void TestSuite::test_foo() { //test case body } /* CPPTEST_TEST_CASE_END test_foo */
在检入期间创建关联
在将文件检入源代码控制系统时,您可以将测试/代码与开发工件相关联。在提交注释中包含标记和工件 ID 以将文件与工件关联,例如:
git commit -m "@pr ABC-123"
使用测试名称创建关联
作为使用标签的替代方法,您可以通过将工件 ID 作为后缀添加到以下格式的测试用例名称来将测试用例与开发工件相关联:
<test case name>_<tag><ID>
在以下示例中,已解决测试用例验证错误 3636 :
test_case1_PR3636
请使用自定义缺陷/问题跟踪标签
您可以自定义您的团队用于将测试用例与来自您的 ALM、缺陷或需求跟踪系统(例如,codeBeamer、Jira、VersionOne 等)的工作项相关联的标签。这使您可以配置标签以匹配您的组织用于指代缺陷的语言。例如,某些组织使用术语"PR"来指代缺陷。其他人则使用“缺陷”,因此推荐使用自定义 @defect 标签而不是默认的 @pr 标签。
指定自定义标签:
- 选择 Parasoft>首选项。
- 选择 Parasoft> 问题跟踪标签。
- 使用可用控件在 用户问题跟踪标签表格中添加、修改或删除标签。
- 标签后面是一个或多个值,这些值必须由单个字符串或由分隔符分隔的多个字符串表示。
- 分隔符标记值可以是逗号分隔的字符串列表和空格分隔的字符串列表的任何排列。
链接到报告中的相关工件
如果您希望 C/C++test 报告链接到相关工件,您需要指定 URL 模板来解释如何设置这些工件的链接的格式。执行以下操作:
- 选择 Parasoft>首选项。
- 选择 Parasoft> 问题跟踪标签。
- 在面板的顶部表格中,指定如何格式化每种工件类型的链接。示例:
- 将 @pr 映射到 http://bugzilla.company.com/show_bug.cgi?id=${id} 意味着 PR1024 的 URL 是 http://bugzilla.company.com/show_bug.cgi?id=1024
- 将 @task 映射到 http://host.company.com:8080/grs/jsf/planning/task/edit_task.jsf?entityId=${id} 意味着任务 1215 的 URL 是 http://host.company.com:8080/grs/jsf/planning/task/edit_task.jsf?entityId=1215
示例
示例1
此示例假设您的团队正在使用自定义问题跟踪标签 @bugzilla 和 @defect。
/** * @pr 2453, 462345 * @bugzilla 2342 * @defect 87766 */ void testFoo1() {}
以下 PR 属性将发送到 Parasoft DTP:
2453
462345
2342
87766
示例 2
/** * @pr 2453, 462345 2342 * 8766 996686776 - these IDs are ignored, because they are not preceded by a tag on the same line * @pr 87766 */
以下 PR 属性将发送到 Parasoft DTP:
2453
462345
2342
87766
示例 3
此示例假设您的团队正在使用自定义问题跟踪标签 @bugzilla 和 @defect。
/* CPPTEST_TEST_CASE_BEGIN test_foo */ // @pr 123, 456 // @bugzilla 789 // @defect 1357 // @req 7799 void TestSuite::test_foo() { //test case body } /* CPPTEST_TEST_CASE_END test_foo */
以下 PR 属性将发送到 Parasoft DTP:
123
456
789
1357
7799