基于构建和测试集成字段来创建查询

Azure DevOps Services |Azure DevOps Server |Azure DevOps Server 2022 |Azure DevOps Server 2020

使用支持生成和测试集成的工作项字段来提高可跟踪性、分析质量趋势并自动执行与测试相关的工作流。 典型方案包括:

  • 将缺陷与发现或解决它们的特定构建版本相关联。
  • 通过版本查询 bug,以识别趋势并优先修复。
  • 将测试用例标记为“手动”或“自动”并跟踪自动化元数据。
  • 定义测试用例和共享步骤的作和验证步骤,以便团队能够可靠地运行和验证测试。

本文介绍如何使用这些字段并提供示例查询和提示。

先决条件

Area 权限/角色 它允许的内容
项目级别 供稿人 创建和编辑查询。
项目级别 Readers 查看查询(无法创建或编辑)。
项目级别 项目管理员 完全控制项目设置,包括查询。
测试工件 管理测试计划 创建、编辑和删除测试计划。
测试工件 管理测试套件 创建、编辑和删除测试套件。
测试工件 编辑此节点中的工作项 添加或编辑特定于测试的工作项,例如测试用例和测试套件。

注释

  • 某些测试权限在测试计划或区域节点范围内;项目管理员可以分配这些权限。
  • 若要跨项目运行或自动执行查询,请确保具有所需的跨项目权限,或使用具有适当访问权限的服务帐户。

支持的运算符和宏

大多数生成和测试集成字段都使用 String、PlainText 或 HTML 数据类型。 为文本或富文本字段指定查询子句时,请使用以下运算符和宏。

数据类型

支持的运算符和宏


富文本(HTML)
多行文本 (纯文本)

Contains WordsDoes Not Contain WordsIs EmptyIs Not Empty

单行文本(字符串)

= , <> , > , < , >= , <= , =[Field], <>[Field], >[Field], <[Field], >=[Field], <=[Field]ContainsDoes Not ContainInNot InIn GroupNot In GroupWas Ever.
[Any] (与 工作项类型 配合有效);@Project (与 团队项目 配合有效)。 系统在适当时默认为当前项目。 有关跨项目的示例,请参阅 跨项目的查询

有用的筛选器

筛选出

包括这些查询子句

自动测试用例

Work Item Type = Test CaseAutomation Status = Automated

基于查询的测试套件

Work Item Type = Test SuiteTest Suite Type = Query Based

基于需求的测试套件

Work Item Type = Test SuiteTest Suite Type = Requirement Based

列出错误和用于测试这些错误的测试用例

创建新的查询,将查询类型设置为“工作项”和“直接链接”。 在高级别筛选 bug,并为测试用例添加关联的工作项过滤器。

显示 bug 及其关联测试用例的截图。

注释

无法构造显示测试计划、测试套件和测试用例的分层视图的查询,因为这些项目不是由父子链接类型连接的。 若要查看该层次结构,请打开 “测试 > 计划 ”页(请参阅 “创建测试计划”。

生成和测试数据字段

下表描述了一个或多个与测试相关的工作项类型中显示的字段。 有关数据类型和字段属性的信息,请参阅 “工作项”字段和属性

若要自定义字段或选取列表,请参阅 “添加或修改字段”以支持查询、报表和工作流

字段名称

说明

工作项类型


自动化状态1

测试用例的状态。 值: 自动非自动计划。 若要运行自动测试,请参阅 从测试计划运行自动测试
引用名称=Microsoft.VSTS.TCM.AutomationStatus,数据类型=String

测试用例

2 中找到

发现缺陷的产品版本号(修订)。 引用名称=Microsoft.VSTS.Build.FoundIn,数据类型=字符串。

注释

使用“在版本中找到”链接类型将工作项链接到版本。 此链接类型适用于当前生成过程(Azure Pipelines 和经典生成定义):它不适用于旧版 XAML 生成。

漏洞

集成构建2

包含修补程序的产品内部版本号。 引用名称=Microsoft.VSTS.Build.IntegrationBuild,数据类型=字符串。

注释

使用 “集成生成 ”链接类型将工作项链接到生成。 此链接类型适用于当前生成过程(Azure Pipelines 和经典生成定义):它不适用于旧版 XAML 生成。

全部

問题

指示共享步骤是否与预期结果相关联。 允许的值: 。 引用名称=Microsoft.VSTS.Common.Issue,数据类型=字符串。

共享步骤

参数

包含运行手动测试时使用的参数。 引用名称=Microsoft.VSTS.TCM.Parameters,数据类型=HTML。

共享参数、共享步骤、测试用例

步骤

运行测试所需的操作和验证步骤。 引用名称=Microsoft.VSTS.TCM.Steps,数据类型=HTML。

共享步骤、测试用例

系统信息

与测试相关的系统和环境信息。 引用名称=Microsoft.VSTS.TCM.SystemInfo,数据类型=HTML。

bug、反馈响应

重现步骤(重现步骤)

重现意外行为所需的步骤。 捕获足够的信息供其他人重现和验证修补程序。 引用名称=Microsoft.VSTS.TCM.ReproSteps,数据类型=HTML。

漏洞

测试套件类型1

测试套件的类别。 允许的值: 基于查询基于要求静态。 有关详细信息,请参阅 创建测试计划。 引用名称=Microsoft.VSTS.TCM.TestSuiteType,数据类型=字符串。

测试套件

注释

  1. 不要自定义这些字段的选取列表 - 系统和集成需要列出的值。
  2. 通过将GLOBALLIST元素添加到FIELD定义中,您可以提供一个构建版本的下拉菜单。 请参阅 构建和全局列表自动填充

其他字段

以下字段不会显示在工作项表单上,但会用于跟踪测试用例或测试套件。 可以使用其中一些筛选器来筛选查询并创建报表。 (这些字段不会添加到数据仓库或编制索引。

字段名称

说明

工作项类型


自动测试存储

包含可自动化测试用例的测试的程序集。 引用名称=Microsoft.VSTS.TCM.AutomatedTestStorage,数据类型=字符串。

测试用例

自动测试类型

可自动化测试用例的测试的类型。 引用名称=Microsoft.VSTS.TCM.AutomatedTestType,数据类型=字符串。

测试用例

AutomatedTestId

自动测试的 ID。 引用名称=Microsoft.VSTS.TCM.AutomatedTestId,数据类型=字符串。

测试用例

AutomatedTestName

自动测试的名称。 引用名称=Microsoft.VSTS.TCM.AutomatedTestName,数据类型=字符串。

测试用例

本地数据源

测试使用的本地数据源。 引用名称=Microsoft.VSTS.TCM.LocalDataSource,数据类型=HTML。

测试用例

查询文本

用于捕捉为查询型套件类型定义的查询的字段。 引用名称=Microsoft.VSTS.TCM.QueryText,数据类型=PlainText。

测试套件

测试套件审核

跟踪在修改测试套件时的操作(例如,添加测试或更改配置)。 可通过“历史记录”选项卡或查询进行查看。 引用名称=Microsoft.VSTS.TCM.TestSuiteAudit,数据类型=PlainText。

测试套件

测试套件类型 ID 1

对应于测试套件类别的系统分配值: 1 (静态)、 2 (基于查询)、 3 (基于要求)。 引用名称=Microsoft.VSTS.TCM.TestSuiteTypeId,数据类型=Integer。

测试套件

注释

  1. 不要自定义这些字段的选取列表 - 系统和集成需要列出的值。

与 Team Foundation Build 和 Azure Pipelines 集成的字段

Team Foundation Build 是与旧版 Azure DevOps Server 一起使用的本地生成系统。 Azure Pipelines 在 Azure DevOps Services 中提供云托管的生成和管道功能。 两个系统在生成运行时以及在生成中解析工作项时,将生成元数据与工作项集成。

通常用于构建集成的两个字段是 所在集成构建。 在 WIT 定义中存在时,它们允许构建系统将工作项与相关的构建号相关联。

可以将这些字段添加到 WIT 定义:

<FIELD name="Found In" refname="Microsoft.VSTS.Build.FoundIn" type="String" reportable="dimension">
    <HELPTEXT>Product build number (revision) in which this item was found</HELPTEXT>
        <SUGGESTEDVALUES>
          <LISTITEM value="&lt;None&gt;" />
        </SUGGESTEDVALUES>
</FIELD>
<FIELD name="Integration Build" refname="Microsoft.VSTS.Build.IntegrationBuild" type="String" reportable="dimension">
    <HELPTEXT>Product build number this bug was fixed in</HELPTEXT>
        <SUGGESTEDVALUES>
          <LISTITEM value="&lt;None&gt;" />
        </SUGGESTEDVALUES>
</FIELD>

当 WIT 定义中存在 “发现位置” 字段时,兼容的构建过程可以在构建失败时创建工作项,并将 Found In 设置为内部版本号。 当 集成生成 存在时,兼容的生成过程可以更新通过具有相应内部版本号的生成解决的工作项。

生成和全局列表自动填充

首次使用 Team Foundation Build 或 Azure Pipelines 为项目排队生成时,系统会创建名为 Build - <ProjectName> 的全局列表。 每次构建都会为该版本添加一个 LISTITEM 条目。 全局列表使用项目的显示名称,并且可以在定义中的GLOBALLIST元素中FIELD引用,以提供构建的下拉列表。

<FIELD name="Found In" refname="Microsoft.VSTS.Build.FoundIn" type="String" reportable="dimension">
    <HELPTEXT>Product build number (revision) in which this item was found</HELPTEXT>
        <SUGGESTEDVALUES>
          <LISTITEM value="&lt;None&gt;" />
        </SUGGESTEDVALUES>
        <SUGGESTEDVALUES expanditems="true" filteritems="excludegroups">
          <GLOBALLIST name="Builds - TeamProjectName" />
        </SUGGESTEDVALUES>
</FIELD>

与测试计划集成的字段

测试计划在测试失败时可以创建 bug 或其他工作项。 以这种方式添加工作项时,测试系统将在系统信息字段捕获环境详细信息,并在重现步骤字段捕获重现步骤。

<FIELD name="System Info" refname="Microsoft.VSTS.TCM.SystemInfo" type="HTML" />
<FIELD name="Repro Steps" refname="Microsoft.VSTS.TCM.ReproSteps" type="HTML" />

与 Team Foundation 版本控制(TFVC)集成的字段

TFVC 支持在签入期间关联或解析工作项。 当您从签入窗口链接工作项且该操作受支持时,TFVC 会对工作项应用已配置的状态转换。

注释

当您使用 Checkin 操作时,请为预期的转换设置适当的 起始状态结束状态

有关详细信息,请参阅 基于状态、转换或原因自动执行域分配

局限性

按测试用例查询时的主要限制:

  • 分层视图:无法构造显示测试计划、测试套件和测试用例的分层视图的查询,因为这些项目不是由父子链接类型连接的。
  • 基于查询的测试套件:这类套件包含所有查询返回的测试用例;请确保查询精准,以避免无意中的包含。
  • 字段限制:某些详细的执行结果无法作为标准字段直接获取,可能需要进行自定义报告或使用 API。
  • 性能和速率限制:Azure DevOps 强制实施请求和资源限制;非优化查询或 API 调用过多可能会导致延迟或限制。
  • 测试用例链接:测试用例不会以支持复杂分层查询的方式自动链接到其他工作项。