需求管理 旗舰版
根据需求,您可以设置标准来检查您的产品。它们可以基于用户、利益相关者、系统、软件或您认为重要的任何其他内容。
需求是极狐GitLab 中描述产品特定行为的产物。需求是长期存在的,除非手动清除,否则不会消失。
如果行业标准要求您的应用程序具有特定功能或行为,您可以创建需求来反映这一点。当不再需要某个功能时,您可以存档相关需求。
创建需求
每个项目中都有一个分页的需求列表,您可以在那里创建一个新的需求。
先决条件:
- 您必须至少具有报告者角色。
创建需求:
- 在项目中,进入 计划 > 需求。
- 选择 新建需求。
- 输入标题和描述,然后选择 新建需求。
您可以在列表顶部看到新创建的需求,需求列表按创建日期降序排序。
查看需求
您可以通过选择从列表中查看需求。
要在查看需求时对其进行编辑,请选择需求标题旁边的 编辑 图标 ({pencil})。
编辑需求
您可以从需求列表页面编辑需求。
先决条件:
- 您必须至少具有报告者角色,或是需求的作者或指派人。
要编辑需求:
- 从需求列表中,选择 编辑 图标 ({pencil})。
- 在文本输入框中更新标题和描述。您也可以在编辑表单中通过勾选满足来标记需求为已满足。
- 选择 保存更改。
存档需求
您可以在开放中标签中归档一个未解决的需求。
先决条件:
- 您必须至少具有报告者角色,或是需求的作者或指派人。
要归档需求,请选择 存档 ({archive})。
一旦需求被归档,它就不再出现在 开放中 选项卡中。
重新打开需求
您可以在已存档标签中查看存档需求的列表。
先决条件:
- 您必须至少具有报告者角色,或是需求的作者或指派人。
要重新打开存档的需求,请选择重新打开。
一旦重新打开需求,它就不再出现在 已存档 选项卡中。
搜索需求
您可以根据以下条件从需求列表页面搜索需求:
- 标题
- 作者的用户名
- 状态(满足、失败或丢失)
要搜索需求:
- 在项目中,转到 计划 > 需求 > 列表。
- 选择 搜索或过滤结果 字段。 出现一个下拉菜单。
- 从下拉列表中选择需求作者或状态或输入纯文本,按需求标题搜索。
- 按键盘上的 Enter 过滤列表。
您还可以按以下方式对要求列表进行排序:
- 创建日期
- 更新日期
允许在CI作业中满足需求
现在支持需求测试报告。 您可以向CI流水线添加作业,该作业在触发时将所有现有需求标记为"满足"(您可以在编辑表单中手动满足需求 编辑需求)。
添加手动作业到CI
要将您的CI配置为在触发手动作业时将需求标记为满足,请将以下代码添加到您的.gitlab-ci.yml文件中。
yaml1requirements_confirmation: 2 when: manual 3 allow_failure: false 4 script: 5 - mkdir tmp 6 - echo "{\"*\":\"passed\"}" > tmp/requirements.json 7 artifacts: 8 reports: 9 requirements: tmp/requirements.json
此定义向CI流水线添加了一个手动触发的(when: manual)作业。它是阻塞的(allow_failure: false),但是使用什么条件来触发CI作业取决于您。此外,您可以使用任何现有的CI作业将所有需求标记为满足,只要CI作业生成并上传了requirements.json产物。
当您手动触发此作业时,包含{"*":"passed"}的requirements.json文件将作为产物上传到服务器。在服务器端,检查需求报告中是否有“全部通过”记录({"*":"passed"}),如果成功,它将所有现有的开放需求标记为满足。
指定个别需求
可以指定个别需求及其状态。
如果存在以下要求:
- REQ-1(带有 IID 1)
- REQ-2(带有 IID 2)
- REQ-3(带有 IID 3)
可以指定第一个需求通过,第二个需求失败。 有效值为"passed"和"failed"。 通过省略需求IID(在本例中为 REQ-3 的 IID 3),不会记录到任何结果。
yaml1requirements_confirmation: 2 when: manual 3 allow_failure: false 4 script: 5 - mkdir tmp 6 - echo "{\"1\":\"passed\", \"2\":\"failed\"}" > tmp/requirements.json 7 artifacts: 8 reports: 9 requirements: tmp/requirements.json
有条件地将手动作业添加到CI
要将您的CI配置为仅在有一些开放需求时才包含手动作业,请添加一个规则来检查CI/CD变量 CI_HAS_OPEN_REQUIREMENTS。
yaml1requirements_confirmation: 2 rules: 3 - if: "$CI_HAS_OPEN_REQUIREMENTS" == "true" 4 when: manual 5 - when: never 6 allow_failure: false 7 script: 8 - mkdir tmp 9 - echo "{\"*\":\"passed\"}" > tmp/requirements.json 10 artifacts: 11 reports: 12 requirements: tmp/requirements.json
从CSV文件导入需求
您必须至少具有报告者角色。
您可以通过上传包含title和description列的CSV文件来将需求导入到项目中。
导入后,上传CSV文件的用户被设置为导入需求的作者。
导入文件
在导入文件之前:
- 考虑导入仅包含几个需求的测试文件。如果不使用 GitLab API,就无法撤消大型导入。
- 确保您的CSV文件符合文件格式要求。
导入需求:
- 在项目中,转到 计划 > 需求。
- 对于有需求的项目,在右上角选择垂直省略号({ellipsis_v}),然后选择导入需求({import})。
- 对于没有任何需求的项目,选择页面中间的 导入CSV。
- 选择文件并选择 导入需求。
该文件在后台处理,并在导入完成后向您发送通知电子邮件。
导入CSV文件格式
从CSV文件导入需求时,必须以某种方式对其进行格式化:
- 标题行: CSV 文件必须包含以下标题:title 和 description。标题不区分大小写。
- 列: 来自除 title 和 description 之外的列的数据不会被导入。
- 分隔符: 从标题行自动检测列分隔符。支持的分隔符有:逗号(,)、分号(;)和制表符(\t)。行分隔符可以是CRLF 或 LF。
- 双引号字符: 双引号 (") 字符用于引用字段,允许在字段中使用列分隔符(请参阅下面示例 CSV 数据中的第三行)。在引用字段中插入双引号 ("),连续使用两个双引号字符 ("")。
- **数据行:**在标题行下方,后续行必须遵循相同的列顺序。标题文本是必需的,而描述是可选的,可以留空。
示例CSV数据:
plaintexttitle,description My Requirement Title,My Requirement Description Another Title,"A description, with a comma" "One More Title","One More Description"
文件大小
该限制取决于实例的Max Attachment Size的配置值。
对于jihulab.com,它设置为 10 MB。
导出需求到CSV文件
您可以将需求导出到CSV文件作为附件发送到您的默认通知电子邮件。
通过导出需求,您和您的团队可以将它们导入另一个工具或与您的客户共享。导出需求可以帮助与更高级别的系统协作,以及审计和合规框架任务。
先决条件:
- 您必须至少具有报告者角色。
导出要求:
-
在项目中,转到 计划 > 需求。
-
在右上角,选择垂直省略号 ({ellipsis_v}),然后选择导出为Export as CSV ({export}). 出现确认窗口。
-
在 高级导出选项 下,选择要导出的字段。
默认情况下选择所有字段。要从导出中排除某个字段,请清除其旁边的复选框。
-
选择 导出需求。导出的 CSV 文件将发送到与您的用户关联的电子邮件地址。
导出的CSV文件格式
您可以在电子表格编辑器(例如 Microsoft Excel、OpenOffice Calc 或 Google 表格)中预览导出的 CSV 文件。
导出的CSV文件包含以下标题:
- 需求 ID
- 标题
- 描述
- 作者
- 作者用户名
- 创建于 (UTC)
- 状态
- 状态更新于 (UTC)