品質管理

品質管理(QA/QC) ひんしつかんり

品質管理QAQC品質保証テストプロジェクト管理
品質管理(QA/QC)について教えて

簡単に言うとこんな感じ!

「このシステムはちゃんと動くの?」を保証するための活動全般だよ。QC(品質管理)が「完成品の検査」なら、QA(品質保証)は「最初から欠陥が入り込まないプロセスを作る」こと。食品業界で言えば、QCは出荷前検査で、QAはHACCPで工程全体を管理する仕組みなんだ!


品質管理とは

品質管理(Quality Management) とは、プロジェクト成果物(システム・ドキュメント)が定められた品質基準を満たすことを確実にするための活動全般です。大きく QC(Quality Control、品質コントロール)QA(Quality Assurance、品質保証) に分けられます。

QC(品質コントロール) は「成果物の欠陥を検出・修正する」活動です。テスト・レビュー・検査などが該当し、「できたものが基準を満たすか」を確認します。一方 QA(品質保証) は「欠陥が入り込まないプロセスを整備・監査する」活動です。開発プロセスそのものが適切か、品質基準が明確かを管理します。

発注者側にとって重要なのは「品質基準を事前に定める」ことです。「バグがゼロ」は現実的ではありませんが、「致命的バグ0件・軽微バグは本番リリース後2週間以内に修正」などの基準を契約前に合意しておくことが大切です。また、ユーザー受入テスト(UAT) は発注者が品質を確認する最後の砦であり、時間と人員を確保して臨む必要があります。


QAとQCの違い

比較項目QA(品質保証)QC(品質コントロール)
目的品質問題の予防品質問題の検出・修正
アプローチプロセス重視成果物重視
タイミングプロジェクト全期間主に後半(テスト工程)
代表的活動プロセス監査・レビュー・標準化テスト・検査・デバッグ
コードレビュー手順の整備単体テスト・結合テスト実施

テストの種類と体系

テスト種別実施者目的
単体テスト(UT)開発者個々の部品(関数・モジュール)が仕様どおり動くか
結合テスト(IT)開発者/テスター複数の部品を組み合わせた際の動作確認
システムテスト(ST)テスターシステム全体が要件・仕様どおり動くか
パフォーマンステストテスター負荷・速度・安定性の確認
ユーザー受入テスト(UAT)発注者・ユーザー実際の業務シナリオで使えるか最終確認
回帰テスト(リグレッション)開発者/テスター修正後に既存機能が壊れていないか確認

歴史と背景

  • 1920年代: ウォルター・シューハートが統計的品質管理(SPC)を開発。製造業における品質管理の基礎に
  • 1950年代: W・エドワーズ・デミングが日本の製造業にTQC(全社的品質管理)を普及。「デミングサークル(PDCA)」が品質管理の基本サイクルに
  • 1960年代: NASAがゼロ欠陥(Zero Defects)プログラムを推進。ソフトウェア品質管理の起源に
  • 1979年: フィリップ・クロスビーが「品質は無料(Quality is Free)」を発行。欠陥を後で直すコストの大きさを提唱
  • 1987年: ISO 9000シリーズの初版が発行。品質管理の国際標準として普及
  • 1994年: Capers Jonesが「ソフトウェア品質」の定量的研究を発表。機能ポイント法と品質測定の結合
  • 2000年代: アジャイル開発・CI/CD(継続的インテグレーション/継続的デリバリー)により自動テストが品質管理の中心に
  • 現在: AIを活用したテスト自動化・バグ予測が急速に普及

ソフトウェア品質管理の全体像

品質管理の全体像(V字モデル) 要件定義 要求仕様の確定 基本設計 システム設計 詳細設計 モジュール設計 実装・コーディング 単体テスト(UT) 結合テスト 詳細設計との対応 システムテスト 基本設計との対応 受入テスト(UAT) 要件との対応確認 ← 発注者が実施 左辺:開発工程(上流→下流) 右辺:テスト工程(下流→上流) 破線:対応関係

品質指標の例

指標説明目標値例
バグ密度コード1KLOCあたりのバグ数0.5件/KLOC以下
テストカバレッジテストで実行されたコードの割合80%以上
バグ修正率発見バグのうち修正完了した割合リリース時100%(重大)
不具合流出率リリース後に発覚したバグの割合全バグの5%以下

関連する規格・RFC

規格・番号内容
ISO 9001:2015品質マネジメントシステムの国際規格
ISO/IEC 25010ソフトウェア製品品質モデル(機能性・信頼性・保守性など8特性)
PMBOK 第7版(PMI)品質・パフォーマンス領域として体系化
ISTQBソフトウェアテスト技術者資格の国際標準。テスト手法・プロセスを定義

関連用語