【ひんしつげーと】
品質ゲート とは?
最終更新:
💡 品質の「関所」を通らないと次に進めない仕組み
品質ゲートとは、開発の途中やリリース前に設ける品質の判定ポイントのこと。決めた基準を満たすかを確認し、満たさなければ次の工程やマージに進めないようにして、問題の後工程への流出を減らす。SonarQubeでの自動判定の例も解説。
📌 このページのポイント
- 開発の段階の区切りやマージ・リリースの前に品質基準を設け、合格してから次に進むようにする
- テスト結果、新しいコードのカバレッジ、静的解析の指摘、レビュー完了などを判定基準にする
- CI/CDパイプラインで自動判定し、不合格ならパイプラインの失敗やマージ不可にする使い方が多い
- 基準は組織やプロジェクトが決めるもので、ウォーターフォールでもアジャイルでも使われる
品質ゲートって、テストに合格するってこと?
テストは要素の一つだけど、もっと広い考え方だよ。たとえば「新しいコードのカバレッジ80%以上」「重大なバグ0件」「セキュリティレビュー完了」のように、チームで決めた複数の基準をまとめた判定ポイントのことなんだ。
どの段階に置くの?
「設計完了時」「実装完了時」「テスト完了時」「リリース前」などに置くことが多いね。ウォーターフォールならフェーズの境界に、アジャイルならDone(完成)の条件やCI/CDパイプラインの中に組み込むよ。
CI/CDに組み込むってどういうこと?
基準が厳しすぎると開発が進まなくならない?
そのバランスが大事だね。既存のコード全体にいきなり厳しい基準を当てるより、新しく書いたコードから基準を当てていく方法もあるよ。品質ゲートの目的は「止める」ことじゃなく、「早く問題を見つけて手戻りを減らす」ことだからね。
もっと詳しく知りたい人へ
SonarQubeで品質ゲートが不合格になると、自動でマージが止まるの?
設定次第だよ。SonarQubeは解析結果が条件を満たすかを判定するけど、その結果でCIパイプラインを失敗させたり、プルリクエストのマージを止めたりするには、CIやリポジトリ側との連携設定が必要なんだ。標準の「Sonar way」は、新しいコードについて「新しい問題が0件」「新しいセキュリティホットスポットをすべて確認済み」「カバレッジ80%以上」「重複3%以下」を条件にしているよ。
まとめ:ざっくりこれだけ覚えればOK!
「品質ゲート」って出てきたら「品質基準を満たさないと次の工程に進めない関所」と思えればだいたいOK!
📖 おまけ:英語の意味
「Quality Gate」 = 品質ゲート
💬 gate(門)を通過するイメージで、一定の品質基準をクリアしないと先に進めないという意味だよ