要件管理

GitLab Ultimate12.10で導入されました

要件は、ユーザー、利害関係者、システム、ソフトウェアなど、インポートすることが重要なものであれば何でも設定できます。

要件はGitLabのアーティファクトであり、製品の具体的な動作を記述します。 要件は長期保存され、手動でクリアしない限り消えません。

業界標準がアプリケーションに特定の機能や動作を要求している場合は、これを反映する要件を作成できます。 機能が不要になった場合は、関連する要件をアーカイブできます。

概要については、GitLab 12.10 Introduces RequirementsManagementをご覧ください。

requirements list view

要件の作成

各プロジェ ク ト では、 要件のページ付 き リ ス ト を利用で き 、 こ こ で新 し い要件を作成で き ます。

要件を作成するには

  1. プロジェクト ページから Requirementsに移動します。
  2. 新規要件をクリックします。
  3. 説明的なタイトルを入力し、要件の作成をクリックします。

要件リストは作成日の降順でソートされるため、新しく作成された要件がリストの一番上に表示されます。

要件の編集

要件リスト ページから、(必要な権限を持っていれば)要件を編集できます。

要件を編集するには

  1. 要件リストから、編集({pencil})をクリックします。
  2. テキスト入力フィールドのタイトルを更新します。
  3. 変更を保存する]をクリックします。

アーカイブ

開いている要件は、[開く] タブでアーカイブできます(必要な権限がある場合)。

要件をアーカイブするには、アーカイブ({archive}) をクリックします。

要件がアーカイブされると、その要件は [開く]タブに表示されなくなります。

要件の再開

アーカイブされた要件の一覧は、アーカイブタブで表示できます。

archived requirements list

アーカイブされた要件を再開するには、再開をクリックします。

要件を再度開くと、その要件はアーカイブ済みタブには表示されなくなります。

要件の検索

GitLab Ultimate13.1で導入されました

要件リスト ページから、以下の条件に基づいて要件を検索できます:

  • 要件のタイトル
  • 作成者のユーザー名

要件を検索するには

  1. プロジェクトで、 Requirements > Listと進みます。
  2. 検索またはフィルタ結果フィールドをクリックします。 ドロップダウンメニューが表示されます。
  3. ドロップダウンから要件作成者を選択するか、テキストを入力して要件タイトルで検索します。
  4. キーボードのEnter を押して、リストをフィルタリングします。

要件リストを並べ替えることもできます:

  • 作成日
  • 最終更新日

CIジョブから要件を満たせるようにします。

GitLab は要件テストレポーターに対応しました。 CIパイプラインにジョブを追加して、そのジョブをトリガーすると、既存のすべての要件に Satisfied (満足) とマークすることができます。

手動ジョブをCIに追加

手動ジョブがトリガーされたときに要件を満足とマークするように CI を設定するには、.gitlab-ci.yml ファイルに以下のコードを追加します。

requirements_confirmation:
  when: manual
  allow_failure: false
  script:
    - mkdir tmp
    - echo "{\"*\":\"passed\"}" > tmp/requirements.json
  artifacts:
    reports:
      requirements: tmp/requirements.json

この定義では、手動トリガー(when: manual)ジョブをCIパイプラインに追加します。ブロック(allow_failure: false)ですが、CIジョブをトリガーする条件はあなた次第です。また、requirements.jsonアーティファクトがCIジョブによって生成されアップロードされる限り、すべての要件を満足とマークするために、既存のCIジョブを使用することができます。

手動で こ のジョブを実行す る と 、requirements.json ファイルがアーティ フ ァ ク ト と{"*":"passed"} し てサーバーにア ッ プ ロー ド さ れます。 サーバー側では、 要件レポー ト に 「すべて合格」 のレ コ ー ド ({"*":"passed"}) が{"*":"passed"} ないかチ ェ ッ ク し{"*":"passed"}、 成功 し た場合は、 既存の開いてい る すべての要件に 「満足」 のマ ー ク が付け ら れます。

個別要件の指定

個々の要件とそのステータスを指定することが可能です。

以下の条件がある場合:

  • REQ-1 (IID1)
  • REQ-2 (IID2)
  • REQ-3 (IID3)

有効な値は 「passed」 と 「failed」 です。 要件 IID ( こ の場合はREQ-3の IID3) を省略す る と 、 結果は記録 さ れません。

requirements_confirmation:
  when: manual
  allow_failure: false
  script:
    - mkdir tmp
    - echo "{\"1\":\"passed\", \"2\":\"failed\"}" > tmp/requirements.json
  artifacts:
    reports:
      requirements: tmp/requirements.json

手動ジョブを条件付きでCIに追加

未解決の要件がある場合にのみ手動ジョブを含めるようにCIを設定するには、CI_HAS_OPEN_REQUIREMENTS CI変数をチェックするルールを追加します。

requirements_confirmation:
  rules:
    - if: "$CI_HAS_OPEN_REQUIREMENTS" == "true"
      when: manual
    - when: never
  allow_failure: false
  script:
    - mkdir tmp
    - echo "{\"*\":\"passed\"}" > tmp/requirements.json
  artifacts:
    reports:
      requirements: tmp/requirements.json