先看一下
您需要准备
- Azure DevOps Services:类似
dev.azure.com/yourcompany的地址。(不支持部署在您自己服务器上的 Azure DevOps Server。) - 一个有权创建工作项的账户,可在缺陷要发送到的项目中创建工作项。
- 您的 UAT Studio 工作区的管理员权限。
连接您的 Azure DevOps 项目
查找您的组织、项目和流程
在 Azure DevOps 中打开您的项目并查看地址栏:dev.azure.com/acme/Customer Portal。第一部分是组织(acme),第二部分是项目(Customer Portal),请严格按照显示内容填写,包括空格。
然后检查项目的流程:Project settings › Overview › Process。
| 流程 | 应使用的工作项类型 |
|---|---|
| Agile、Scrum 或 CMMI | Bug:包含 Repro Steps、Severity、Priority 和标签。 |
| Basic | Issue:Basic 流程没有 Bug 类型。工作项会包含标题和描述;Basic 没有严重程度和优先级字段。 |
创建个人访问令牌
- 在 Azure DevOps 中,点击右上角的 User settings 图标(您姓名缩写旁带齿轮的人形图标),然后选择 Personal access tokens。
- 点击 + New Token。
- Name:UAT Studio。Organization:您的组织。Expiration:选择 Custom defined,最长一年。
- Scopes:选择 Custom defined 并勾选 Work Items › Read & write。如果还要从 Test Plans 读取测试用例,请同时勾选 Test Management › Read。
- 点击 Create 并复制令牌。Azure DevOps 只显示一次:在第 4 步粘贴之前请保持窗口打开。
在 UAT Studio 中添加 Azure DevOps
登录 app.uat.studio,打开您的工作区并点击 Connections。在 Add a connection 下选择 Azure DevOps,然后点击 Add。

| 字段 | 填写内容 |
|---|---|
| Name | 按钮上显示的文字:Send to Azure DevOps。如果您连接多个项目,可以修改它。 |
| Organization | dev.azure.com/ 之后的部分,例如 acme。 |
| Project | 与 Azure DevOps 中完全一致的项目名称,例如 Customer Portal。 |
| Work item type | Bug,Basic 项目中则为 Issue(见第 1 步)。 |
| Area path | 可选:工作项的存放位置,例如 Customer Portal\UAT。留空则使用项目的默认区域。 |
点击 Save settings。

保存令牌
将第 2 步中的令牌粘贴到 Personal access token 字段,然后点击 Store token。此后该字段只显示最后 4 个字符。

测试连接
点击 Test connection。UAT Studio 会检查令牌、项目以及工作项类型是否存在。一切正常时,您会看到 Connected to project … in …; work items of type Bug can be created,最近一次测试旁显示 OK。如果该类型不存在,提示信息会列出项目中已有的类型。

将问题发送到 Azure DevOps
单个问题
打开问题。在 Ticket in the development team's system 下点击 Send to Azure DevOps。

工作项编号和链接显示在问题上,其历史记录会显示发送时间和发送人。已关联的问题不会被意外发送两次。

分诊会议后的所有问题
在 Issues › Triage 中为每个新问题做出决定。完成后,点击 Send 3 to Azure DevOps(数字以实际为准),即可一次创建所有工作项。
工作项包含的内容
- 标题:问题编号和标题,例如 ISS-012: Quote PDF shows the wrong VAT rate。
- Repro Steps 和 Description:测试人员填写的内容、包含失败步骤和预期结果的测试用例以及发现人,并附带指向 UAT Studio 的回链。
- Severity、Priority 以及标签
UAT和问题编号(Basic 项目中没有)。 - Attachments:问题的截图和文件,最多 10 个文件,每个不超过 10 MB。
合并重复项
当您合并两个都有工作项的问题时,重复的工作项会添加一条评论,加上指向另一工作项的 Duplicate Of 链接,并被关闭(Closed、Done 或 Resolved,视流程允许而定)。如果只有重复的问题有工作项,保留的问题会接管该工作项。
在 Azure DevOps 中完成修复后
当开发人员将工作项设为 Resolved、Done 或 Closed 时,UAT Studio 中的问题会变为 Ready for retest,测试人员会收到邮件。Active、Committed 或 Doing 会将问题设为 In progress。Azure DevOps 中的状态显示在链接旁。
失败的复测结果永远不会被撤销:如果测试人员在工作项仍为 Resolved 时重新打开问题,UAT Studio 会让它保持打开状态。已关闭的问题保持关闭。
自动同步,或立即同步
无需任何操作:每当管理员打开问题列表时,UAT Studio 都会查询状态;也可通过按钮 Update ticket status 查询。
立即同步:通过 service hook,让 Azure DevOps 在工作项变化时通知 UAT Studio。您需要是 Azure DevOps 中的项目管理员。
- 在 UAT Studio 的 Connections 中,找到 Azure DevOps 连接,点击 Create webhook address 并复制地址。该地址只显示一次。

- 在 Azure DevOps 中打开项目,前往 Project settings › Service hooks。点击 Create subscription。
- 向下滚动服务列表,选择 Web Hooks,然后点击 Next。

- Trigger on this type of event:Work item updated。在 Filters 下将 Field 设为 State,这样只发送状态变化。Area path 和 Work item type 可保持 [Any],也可限定为您的项目区域和类型。点击 Next。

- URL:粘贴第 1 步中的地址。其他字段(用户名、密码、标头)留空。点击 Test 进行检查,然后点击 Finish。

权限说明
出现问题时
| 您看到 | 处理方法 |
|---|---|
| 令牌未被接受,或无权访问此组织 | 请检查组织名称(dev.azure.com/ 之后的部分)、令牌是否为该组织创建,以及是否具有 Work Items (Read & write) 范围。或者创建新令牌后重新保存。 |
| 项目中没有工作项类型“Bug” | 该项目可能使用 Basic 流程:请在 Work item type 中填写 Issue。提示信息会列出现有的类型。 |
| 未找到(404) | 请检查项目名称:必须与地址栏中完全一致,包括空格。 |
| 之前可以用,现在不行了 | 令牌很可能已到期或被撤销。创建新令牌并保存即可;其余设置保持不变。 |
| 状态没有回传 | 以管理员身份打开问题列表,或点击 Update ticket status。如果使用 service hook:在 Azure DevOps 的 Project settings › Service hooks 中可以看到它是否运行以及返回了什么;在 UAT Studio 的 Connections 中可以看到最后一条消息的到达时间。 |
| 没有 Send to Azure DevOps 按钮 | 只有管理员能看到它,且仅当连接为 On 并已保存令牌时才显示。 |
| 您的套餐不包含连接功能 | Team、Business、Partner 和 Enterprise 套餐包含连接功能,Project 套餐可作为附加组件购买。您的管理员可以在 Plan & billing 中升级。 |
仍未解决?请将您看到的提示信息发送至 [email protected]。切勿将令牌本身发送给我们。
使用 Jira?请参阅 将 UAT Studio 连接到 Jira。所有指南:UAT Studio 帮助。
我们如何处理您的令牌
- 令牌通过加密连接,从您的浏览器发送到我们的服务器,仅此一次。
- 令牌加密存储(AES-256)。解密密钥与数据库分开保存,因此仅凭数据库副本毫无用处。
- 任何人都无法读取令牌:在应用中不能,通过支持团队也不能。
- UAT Studio 仅将令牌用于测试连接、创建您发送的工作项(及其文件)、读取这些工作项的状态,以及在合并后关闭重复项。它只需要 Work Items 范围。
- 删除连接或在 Azure DevOps 中撤销令牌,访问权限会立即终止。
