要件管理

note
14.4では、要件はイシューの下に移動しました。

要件では、製品をチェックするための基準を設定できます。ユーザー、利害関係者、システム、ソフトウェアなど、インポートすることが重要だと思われるものを基準にすることができます。

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

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

note
要件とテスト ケースはワーク アイテムにマイグレーションされます。イシュー 323790では、要件をテスト ケースにリンクすることを提案しています。詳細については、製品ステージの方向性 - 計画を参照してください。

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

より詳細なウォークスルーはGitLab Requirements Traceability Walkthrough(Feb 2021) をご覧ください。

requirements list view

要件を作成

各プロジェクトには、ページ分割された要件のリストが表示されます。

前提条件

  • 少なくともレポーターロールを持っている必要があります。

要件を作成するには

  1. プロジェクトで、[計画] > [要件] を選択します。
  2. 新規要件 を選択します。
  3. 要件のタイトルと説明を入力し、要件の作成 を選択します。

requirement create view

新規作成された要件がリストの一番上に表示され、要件リストが作成日の降順で並べ替えられます。

要件の表示

要件を選択すると、一覧からその要件を表示できます。

requirement view

要件を表示中に編集するには、要件タイトルの横にある編集アイコン({鉛筆})を選択します。

要件の編集

GitLab 13.5 で導入された、要件を満足とマークする機能。

要件一覧ページから要件を編集することができます。

前提条件

  • 少なくともレポーターロールを持っている必要があります。

要件を編集するには

  1. 要件リストから、編集アイコン({pencil})を選択します。
  2. テキスト入力フィールドのタイトルと説明を更新します。チェックボックスSatisfied を使用して、編集フォームで要件を満たしているとマークすることもできます。
  3. 変更を保存を選択します。

要件のアーカイブ

開くタブで開いている要件をアーカイブできます。

前提条件

  • 少なくともレポーターロールを持っている必要があります。

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

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

要件を再度開く

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

前提条件

  • 少なくともレポーターロールを持っている必要があります。

archived requirements list

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

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

要件の検索

  • GitLab 13.1で導入されました。
  • GitLab 13.10 で導入されたステータスによる検索。

要件一覧ページでは、以下の条件で要件を検索することができます:

  • タイトル
  • 作成者ユーザー名
  • ステータス(満足、失敗、不明)

要件を検索するには

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

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

  • 作成日
  • 更新日

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

  • GitLab 13.1で導入されました。
  • GitLab 13.2 で導入された、個々の要件とそのステータスを指定する機能。

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

CI に手動ジョブを追加します。

手動ジョブがトリガーされたときに要件を Satisfied としてマークするように 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"}) があ る{"*":"passed"} か ど う か をチ ェ ッ ク{"*":"passed"} し 、 成功 し た場合は、 既存のすべてのオープン要件を 「満足」 と し てマ ー ク し ます。

個々の要件の指定

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

以下の要件がある場合

  • REQ-1 (IID1 を使用)
  • REQ-2 (IID2 を使用)
  • REQ-3 (IID3 を使用)

最初の要件は合格、2 番目の要件は不合格と指定できます。有効な値は 「合格」 と 「不合格」 です。要件 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/CD 変数をチェックするルールを追加します。

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

CSV ファイルからの要件のインポート

GitLab 13.7 で導入されました

少なくともレポーターロールを持っている必要があります。

titledescription を含むCSV ファイルをアップロードすることで、プロジェクトに要件をインポートできます。

インポート後、CSV ファイルをアップロードしたユーザーが、インポートされた要件の作成者として設定されます。

ファイルのインポート

ファイルをインポートする前に

  • いくつかの要件だけを含むテストファイルをインポートすることを検討してください。GitLab APIを使わずに大きなインポートを元に戻す方法はありません。
  • CSVファイルがファイルフォーマットの要件を満たしていることを確認してください。

要件をインポートするには

  1. プロジェクトで、[計画] > [要件] を選択します。
    • 要件のあるプロジェクトでは、右上隅でインポート アイコン({import})を選択します。
    • 要件のないプロジェクトの場合は、ページの中央でCSV インポートを選択します。
  2. ファイルを選択し、要件のインポートを選択します。

ファイルはバックグラウンドで処理され、インポート完了後に通知メールが送信されます。

インポートされるCSVファイル形式

CSV ファイルから要件をインポートする場合は、一定の書式にする必要があります:

  • ヘッダー行:ヘッダー行: CSV ファイルには、次のヘッダーを含める必要があります:title およびdescription 。ヘッダーは大文字と小文字を区別しません。
  • カラム: title およびdescription 以外のカラムのデータはインポートされません。
  • 区切り文字:列の区切り文字は、ヘッダー行から自動的に検出されます。使用可能な区切り文字は、カンマ (,)、セミコロン (;)、タブ (\t) です。行区切り文字はCRLF またはLFのいずれかです。
  • ダブルクォート文字:ダブルクォート(")文字はフィールドを引用符で囲むために使用され、フィールド内で列の区切り文字を使用できるようにします(以下のサンプルCSVデータの3行目を参照)"。引用符で囲んだフィールドに"二重引用符 (") を挿入するには、二重引用符を 2 文字続けて使用します ("")。
  • データ行:ヘッダー行の下に続く行は、同じ列の順序に従わなければなりません。タイトル・テキストは必須ですが、説明は任意であり、空白のままでもかまいません。

サンプルCSVデータ

title,description
My Requirement Title,My Requirement Description
Another Title,"A description, with a comma"
"One More Title","One More Description"

ファイルサイズ

制限はGitLabインスタンスのMax Attachment Sizeの設定値に依存します。

GitLab.comでは10MBに設定されています。

CSV ファイルへの要件のエクスポート

  • GitLab 13.8 で導入されました
  • GitLab 13.9で導入されたCSVカラムヘッダーを修正。
  • GitLab 13.9で導入されたエクスポートするフィールドを選択する機能。

GitLabの要件をCSVファイルにエクスポートし、デフォルトの通知メールに添付して送信できます。

要件をエクスポートすることで、他のツールにインポートしたり、顧客と共有したりすることができます。要件をエクスポートすることで、上位システムとのコラボレーションや、監査や規制遵守のタスクを支援することができます。

前提条件

  • 少なくともレポーターロールを持っている必要があります。

要件をエクスポートするには

  1. プロジェクトで、[計画] > [要件] を選択します。
  2. 右上隅で、CSV としてエクスポート({export})を選択します。

    確認モーダルが表示されます。

  3. 詳細エクスポートオプションで、エクスポートするフィールドを選択します。

    デフォルトではすべてのフィールドが選択されています。エクスポート対象からフィールドを除外するには、そのフィールドの横にあるチェックボックスをオフにします。

  4. エクスポート要件]を選択します。エクスポートされたCSVファイルは、ユーザーに関連付けられたEメールアドレスに送信されます。

エクスポートCSVファイル形式

エクスポートされたCSVファイルは、Microsoft Excel、OpenOffice Calc、Google Sheetsなどのスプレッドシートエディタでプレビューできます。

エクスポートされた CSV ファイルには、以下のヘッダが含まれます:

  • GitLab 13.8:

    • 要件ID
    • タイトル
    • 説明
    • Author Username
    • 最新のテストレポート状態
    • 最新テストレポート作成日時(UTC)
  • GitLab 13.9以降で:

    • 要件ID
    • タイトル
    • 説明
    • Author
    • Author Username
    • 作成日時(UTC)
    • State
    • 更新日時(UTC)