Loading...

最終更新日時:2026.06.03 (公開日:2026.06.03)

システム開発の品質管理(QC)とは?QAとの違いや工程別プロセスを解説

システム開発の品質管理とは、要件定義からリリース後まで各工程で成果物の品質を検査・測定し、基準への適合を確認・改善する一連の活動です。単に「テストをする」という意味ではなく、品質を計画的に作り込み、データに基づいて評価・改善するサイクル全体を指します。

品質管理(QC)はプロセス全体で品質を保証するQAと補完関係にあり、どちらか一方だけでは高品質なシステムの実現は難しいものです。JUASの「企業IT動向調査2024」によると、システム開発のQCD遵守率はここ10年間で10ポイント以上低下しており、品質管理プロセスの見直しは現在の開発現場にとって避けられない課題となっています。

品質管理を計画から分析・改善まで自社だけで体系立てて回すには、相応の専門人材と工数が必要です。バルテス株式会社では、第三者の立場でテスト活動全体を統制する品質管理支援(QMO)を提供しています。品質計画の策定から品質分析・改善までを専門家が伴走する仕組みで、本記事で解説する工程横断の品質管理を実践するうえでの選択肢の一つとして、ぜひご検討ください。

システム開発における品質管理の定義と目的

品質管理(QC: Quality Control)とは、システム開発の各工程で成果物の品質を検査・測定し、あらかじめ定めた品質基準への適合を確認・改善する活動です。

テスト工程だけに限定されるものではなく、要件定義から設計・実装・テスト・リリース後の運用まで、すべての工程に品質管理の活動が存在します。

1-1 品質管理(QC)と品質保証(QA)の違い

QCとQAは混同されやすい概念ですが、役割が異なります。

QC(品質管理)は、成果物やプロセスが品質要求事項どおりに正しくできているかを、検査・測定・レビューによって確認する活動です。QA(品質保証)は、そのQCの確認結果を踏まえて「品質要求事項が満たされている」ことの確証を与える、すなわち品質を保証する活動です。

ISO 9000でも、QCは品質要求事項を満たすことに焦点を当てた活動、QAは品質要求事項が満たされることの確証を与える活動として区別されています。

両者の関係をまとめると以下のとおりです。

観点品質管理(QC)品質保証(QA)
役割正しくできているかを確認する品質が満たされていることを保証する
タイミング作った後(結果を見る)作る前~作った後(仕組みを見る)
アプローチ検査・測定・レビューで事実を確かめるプロセス、QCの確認結果に基づき確証(保証)を与える
主な活動テスト・レビュー・検査、プロセスの実施確認品質保証の基準・体制づくり、確認結果の評価、品質の保証
両者の関係QAの保証を支える確認を担うQCの確認結果を受けて品質を保証する

確認(QC)と保証(QA)を一連の流れとして機能させることで、初めてシステム品質を継続的に担保できる体制が整います。

1-2 品質管理を怠った場合のリスク

品質管理が不十分なプロジェクトで発生しやすいリスクは、主に3つの軸で整理できます。

  • 【後工程で不具合が発見される】後工程で不具合が発見されるほど修正コストは指数的に膨らみ、リリース後のバグ対応では開発予算を大幅に超過する事態に陥りかねません。
  • 【手戻りの発生】手戻り作業の発生は工程計画を狂わせます。特に上流工程の品質不足が下流工程で顕在化するケースでは、回収が困難な遅延につながります。
  • 【インシデントの発生】品質基準に脆弱性対策の観点が含まれていない場合、情報漏えいやサービス停止といった深刻なインシデントに発展します。リリース後に対応しようとすると、コスト面でも信頼面でも損失が大きくなります。

以上のようなリスクを防ぐためには、品質管理を工程横断で体系的に実施するプロセスの設計が欠かせません。社内のリソースだけでは難しい場合は、第三者の立場で品質統制を担う品質管理支援(QMO)のようなサービスを活用するのも有効な選択肢です。

開発工程ごとの品質管理プロセス

品質管理は特定の工程だけで完結するものではありません。

要件定義から設計・テスト・リリース後の運用まで、すべての工程に品質管理の活動が存在し、それぞれが連動することで全体の品質が維持されます。

まずは、工程ごとの品質管理方法を見ていきましょう。

  1. 上流工程(要件定義・設計)での品質の作り込み
  2. テスト工程での品質検証(単体・結合・総合テスト)
  3. リリース後の品質改善サイクル

2-1 上流工程(要件定義・設計)での品質の作り込み

設計段階における品質検証の主な手段となるのが「設計レビュー」と「インスペクション」です。

設計レビューでは、担当者以外のメンバーが設計書を読み込み、論理的な誤り・要件との乖離・実装上のリスクを指摘します。

インスペクションはより形式的な手法で、チェックリストと役割分担を定めた上でドキュメントを精査する方法です。いずれも「書いた本人が確認する」では見落とされやすい問題を、複数の目で検出できる点が利点です。

このように上流工程で品質を作り込む考え方を「シフトレフト」と呼びます。

テストや品質確認を開発の右側(後工程)から左側(前工程)に移動させることで、コストをかけずに品質を確保するアプローチです。シフトレフトを実践するには、要件定義や設計の段階から品質基準を明確に定め、レビューを形式的な通過儀礼ではなく品質活動として機能させる仕組みが必要です。

2-2 テスト工程での品質検証(単体・結合・総合テスト)

テスト工程の目的は、不具合を検出するだけではありません。テストで得られるデータは品質状態を定量的に把握するための情報源でもあり、テスト結果の分析が次の改善サイクルを動かします。

単体テスト

単体テストは、個々のモジュールや関数が仕様どおりに動作するかを確認します。実装担当者が自らテストコードを書くケースが多く、コードの論理的な誤りを最も早い段階で検出できます。

結合テスト

結合テストでは、複数のモジュールやシステムコンポーネントを組み合わせたときのインターフェース・データ連携の正確性を検証します。単体では問題がなくても、連携部分で予期しない動作が起きることがあるため、結合テストの比重は実務上かなり大きくなります。

総合テスト(システムテスト)

総合テスト(システムテスト)では、システム全体が要件定義の内容を満たしているかを、ユーザー視点に近い形で確認します。ここで初めて「システムとして動作するか」という問いに答えられる段階になるため、単体・結合テストで見えなかった問題が浮上することもあります。

テスト工程の品質を左右するもう一つの要因がテスト計画です。何をどこまでテストするか、どのタイミングでテストを終了するかを事前に明確にしておかないと、テストが形式的な消化作業になりかねません。

テスト計画にはテストの目的・対象範囲・終了基準(バグ密度の閾値・重大度別の未解決件数の上限等)を明記し、関係者間で合意しておくことが品質検証の実効性を高める前提となります。

2-3 リリース後の品質改善サイクル

品質管理はリリースで完結するものではありません。システムが実際のユーザーや業務データと接することで、テスト環境では再現できなかった問題が初めて顕在化することもあります。

モニタリングの中心的な指標としては、障害発生率と平均復旧時間(MTTR)があります。

障害発生率は単位期間あたりのシステム障害の件数で、システムの安定性を示します。MTTRは障害発生から復旧までにかかる平均時間であり、対応体制の成熟度を反映します。

これらを定期的に計測・記録することで、品質の劣化傾向を早期に検知できます。

また、リリース後に得られるユーザーフィードバックも重要な品質情報源となります。

問い合わせログ・操作エラーの発生パターン・満足度調査などを通じて、テスト工程では見えなかった使い勝手の問題や機能の過不足を把握します。収集した情報を優先度付けして改善計画に反映し、次のリリースサイクルに組み込む流れを定型化しておくと、フィードバックが確実に品質改善に結びつきます。

品質管理のデータが一プロジェクトで消費されて終わるのではなく、組織全体の資産として活きる状態を目指してください。

品質管理で成果を出す5つのポイント

工程ごとの品質活動を理解した上で、実務でそれが機能するかどうかを決めるのは運用の細部です。手順通りにプロセスを定義しても、現場で形骸化してしまえば品質は向上しません。

ここでは、品質管理で成果を出す5つのポイントを見ていきます。

  1. 品質基準・指標値の明確化
  2. 上流工程でのレビュー徹底
  3. 定量データに基づく品質分析
  4. 部署間・チーム間の連携ルール整備
  5. PDCAサイクルによる継続的改善

3-1 品質基準・指標値の明確化

品質管理の最初の一手は、測定でも改善でもなく、「何をもって品質を達成とみなすか」を数値で先に決めることです。目標値が曖昧なまま走り出したプロジェクトは、後から品質の良し悪しを判断できません。

最低限おさえたいのは、テスト密度(テストケース数/KSLOC)、バグ密度(不具合件数/KSLOC)、レビュー指摘率、テストカバレッジの4指標です。プロジェクト開始時にこれらの目標値を置き、関係者全員で同じ数字を共有します。

目標値は勘で決めず、IPAやJUASの公開ベンチマークを自社の過去実績と突き合わせて設定します。たとえばIPAのデータ集はバグ密度の平均を0.100件/KSLOCと示しています。JUASの「ソフトウェア・メトリクス調査2025」でも、品質目標を掲げたプロジェクトは換算欠陥率が低い(0.20対0.23)という結果が出ており、数値目標を置くこと自体に効果があります。

3-2 上流工程でのレビュー徹底

不具合は下流で見つかるほど修正コストが跳ね上がります。だからこそ、上流のレビューで欠陥を見つけ出しておくことが推奨されます。

問題は、レビューが「会議を開くこと自体が目的化」して形骸化しやすい点にあります。事前に誰もドキュメントを読まず、当日も指摘ゼロで承認するレビューは、要件の曖昧さや設計の矛盾をそのまま残してしまいます。

形骸化を防ぐ手は2つあります。1つは、手法を使い分けることです。観点を事前にリスト化するチェックリストレビュー、作成者が口頭で説明し論理の穴を探すウォークスルー、役割を固定して精査するインスペクションを、規模と重要度に応じて選びます。

もう1つは、指摘件数を記録し続けることです。指摘ゼロのレビューが続くなら、それは機能していないサインと見なせます。

3-3 定量データに基づく品質分析

定量データに基づいて判断することもポイントです。一方で「ただデータを取るだけ」で具体的な行動に繋がらないことが問題として顕在します。

数値を読んで判断を変える、この連携ができて初めて定量データが品質管理に貢献します。

IPAが公開するバグ密度データを活用する具体的な方法として、自社プロジェクトのバグ密度をIPAの平均値(0.100件/KSLOC)と比較し、乖離の大きい工程や機能領域を特定するアプローチがあります。

平均を大きく上回る領域は品質リスクが高く、集中的なレビューやテスト追加の対象になります。逆に著しく低い場合は、テストが不十分でバグを見落としている可能性も考慮すべきです。

3-4 部署間・チーム間の連携ルール整備

部署間・チーム間の連携ルールを整備することも重要です。

開発チームとQAチームの間では、バグレポートの書式・重要度の分類基準・修正確認のフロー・結果共有のタイミングを明文化します。発注者との間では、受け入れ基準と非機能要件(応答速度・同時接続数など)の合格ラインをプロジェクト開始時に文書化し、双方で合意しておきます。

3-5 PDCAサイクルによる継続的改善

最後に、品質管理を単一プロジェクト内のイベントとして完結させるのではなく、継続的なサイクルとして設計しましょう。

Plan(計画)段階では品質基準・指標値・レビュー計画・テスト計画を策定し、Do(実施)段階では計画に基づいてレビュー・テスト・計測を実行します。
Check(評価)段階では収集した指標データを分析し、計画値との乖離を評価します。Act(改善)段階では乖離の原因を特定し、プロセスや基準値の見直しにつなげていきます。

ウォーターフォールとアジャイルで異なる品質管理の進め方

品質管理の基本原則(不具合の早期検出と継続的な改善サイクル)は共通ですが、その実現方法は開発手法によって大きく異なります。

両者のアプローチを比較すると次のとおりです。

観点ウォーターフォールアジャイル
品質確認の単位工程単位(設計完了・コーディング完了等)イテレーション単位(スプリントごと)
主な品質活動工程ゲートレビュー・テスト段階的実施DoD・受け入れ基準・CI/CDによる自動テスト
ドキュメント各工程の成果物ドキュメントを整備・管理必要最小限。動くソフトウェアで品質を確認
品質の可視化タイミングテスト工程で集中的に計測毎スプリントの完了時に継続的に計測
変更への対応変更管理プロセスを経た計画的対応次のスプリントに取り込む形での柔軟な対応

4-1 ウォーターフォール開発の品質管理

ウォーターフォール開発の品質管理は、V字モデルを基本フレームとして構成されます。V字モデルでは、左辺の開発工程(要件定義→基本設計→詳細設計→実装)と右辺のテスト工程(単体テスト→結合テスト→システムテスト→受け入れテスト)が対応しており、各開発工程の成果物がそれぞれ対応するテスト工程の検証根拠となります。

ウォーターフォールで特に機能するのが、工程ゲートレビューです。

例えば、設計完了レビューでは設計書の完成度・要件との整合性・実装可能性を評価し、基準を満たさない場合は工程を先に進めないという判断を行います。このゲートを形式的に通過させるのではなく、実質的な品質判断の場として機能させることが、ウォーターフォールの品質管理の核心です。

4-2 アジャイル開発の品質管理

アジャイル開発では、スプリント(イテレーション)ごとに品質を担保します。

中心となる仕組みは、チームが合意した「完成と見なす条件」であるDoD(Definition of Done)と、各ユーザーストーリーの受け入れ基準です。
これらをスプリント終了時に確認することで、各反復における品質を確保します。

技術的な仕組みとしては、CI/CDパイプラインを活用した自動テストが前提条件となります。コード取り込み時の自動ビルドとテスト実行により、不具合の早期検出と継続的な品質確認を可能にしますが、テストコードの保守や内容確認など、人による定期的なチェックも不可欠です。

スプリントの速度を損なわずに品質を維持するには、この自動化の仕組みが前提条件となります。そして、スプリントが終了したあとの全体を確認するテストも必要となります。製品としてできあがったあとの品質保証として、性能テストやセキュリティテストを行います。

システム開発の品質管理まとめ

システム開発の品質管理とは、要件定義からリリース後まで各工程で品質を計画・測定・改善し続ける活動です。QCとQAを組み合わせた体制を整え、上流工程でのレビューと下流工程でのテストを連動させることで、コスト増大や納期遅延といったリスクを事前に抑制できます。

本記事で見てきたとおり、品質管理は要件定義からリリース後まで工程横断で体系的に回す必要があり、それを主導できる専門人材の確保が成否を分けます。自社だけで体制を組むのが難しい場合、第三者の品質管理支援を取り入れることは有力な選択肢です。

バルテス株式会社の品質管理支援(QMO)は、品質計画・テスト計画の策定、独自フレームワーク「品質戦略マップ」とISO25010にもとづく品質の可視化、上流工程の仕様書インスペクションと品質レビューの標準化、品質分析にもとづく改善策の立案まで、テスト活動全体を第三者の立場で統制します。公開されている導入事例では、約1,000人月規模のプロジェクトでテスト工程の不具合を40%削減した実績も紹介されています。

工程横断の品質管理を本格的に整えたい場合は、まずは品質管理支援(QMO)の資料で支援内容をご確認いただくか、お問い合わせからご相談ください。システム開発の品質管理とは、要件定義からリリース後まで各工程で成果物の品質を検査・測定し、基準への適合を確認・改善する一連の活動です。単に「テストをする」という意味ではなく、品質を計画的に作り込み、データに基づいて評価・改善するサイクル全体を指します。

品質管理(QC)はプロセス全体で品質を保証するQAと補完関係にあり、どちらか一方だけでは高品質なシステムの実現は難しいものです。JUASの「企業IT動向調査2024」によると、システム開発のQCD遵守率はここ10年間で10ポイント以上低下しており、品質管理プロセスの見直しは現在の開発現場にとって避けられない課題となっています。

品質管理を計画から分析・改善まで自社だけで体系立てて回すには、相応の専門人材と工数が必要です。バルテス株式会社では、第三者の立場でテスト活動全体を統制する品質管理支援(QMO)を提供しています。品質計画の策定から品質分析・改善までを専門家が伴走する仕組みで、本記事で解説する工程横断の品質管理を実践するうえでの選択肢の一つとして、ぜひご検討ください。

この記事の監修者

小島 友美

小島 友美

バルテス株式会社 R&C部 副部長

入力/出力系システム、ファイル管理システムのシステムエンジニア、品質管理の専門職(ソフトウェア品質管理、ソフトウェア品質保証)、リーン・シックスシグマ講師を経て、現職。担当業務は、品質教育サービス「バルカレ」講師とコンテンツ制作を担当する。

CONTACT

お問い合わせ

バルテスでソフトウェアの品質向上と安全を手に入れよう