【ひんしつげーと】

品質ゲート とは?

最終更新:
💡 品質の「関所」を通らないと次に進めない仕組み

品質ゲートとは、開発の途中やリリース前に設ける品質の判定ポイントのこと。決めた基準を満たすかを確認し、満たさなければ次の工程やマージに進めないようにして、問題の後工程への流出を減らす。SonarQubeでの自動判定の例も解説。

📌 このページのポイント
品質ゲート ― 次の工程に進む関所 設計 品質 ゲート 1 実装 品質 ゲート 2 テスト 品質 ゲート 3 R リリース 品質ゲートの判定基準(例) コードカバレッジ 80%以上 重大バグ 0件 セキュリティレビュー完了 静的解析の警告 0件 基準を満たさないと次の工程に進めない
品質ゲートのイメージ
ひよこ ひよこ
品質ゲートって、テストに合格するってこと?
ペンギン先生 ペンギン先生
テストは要素の一つだけど、もっと広い考え方だよ。たとえば「新しいコードのカバレッジ80%以上」「重大なバグ0件」「セキュリティレビュー完了」のように、チームで決めた複数の基準をまとめた判定ポイントのことなんだ。
ひよこ ひよこ
どの段階に置くの?
ペンギン先生 ペンギン先生
「設計完了時」「実装完了時」「テスト完了時」「リリース前」などに置くことが多いね。ウォーターフォールならフェーズの境界に、アジャイルならDone(完成)の条件やCI/CDパイプラインの中に組み込むよ。
ひよこ ひよこ
CI/CDに組み込むってどういうこと?
ペンギン先生 ペンギン先生
たとえばSonarQubeのような静的解析ツールをパイプラインで動かして、品質ゲートが不合格ならパイプラインを失敗させたり、プルリクエストをマージできないようにしたりするんだ。機械で判定できる基準は自動化できるけど、設計の良し悪しのように人が見るべき点はレビューで補うよ。
ひよこ ひよこ
基準が厳しすぎると開発が進まなくならない?
ペンギン先生 ペンギン先生
そのバランスが大事だね。既存のコード全体にいきなり厳しい基準を当てるより、新しく書いたコードから基準を当てていく方法もあるよ。品質ゲートの目的は「止める」ことじゃなく、「早く問題を見つけて手戻りを減らす」ことだからね。
もっと詳しく知りたい人へ

SonarQubeで品質ゲートが不合格になると、自動でマージが止まるの?

設定次第だよ。SonarQubeは解析結果が条件を満たすかを判定するけど、その結果でCIパイプラインを失敗させたり、プルリクエストのマージを止めたりするには、CIやリポジトリ側との連携設定が必要なんだ。標準の「Sonar way」は、新しいコードについて「新しい問題が0件」「新しいセキュリティホットスポットをすべて確認済み」「カバレッジ80%以上」「重複3%以下」を条件にしているよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「品質ゲート」って出てきたら「品質基準を満たさないと次の工程に進めない関所」と思えればだいたいOK!
📖 おまけ:英語の意味
「Quality Gate」 = 品質ゲート
💬 gate(門)を通過するイメージで、一定の品質基準をクリアしないと先に進めないという意味だよ

参考資料

← 用語集にもどる