📝
テスト・品質保証コード品質 2026年4月1日

品質保証(SQA)

📁 概念 👁 -- 閲覧

品質保証(SQA)

定義

ソフトウェア品質を体系的に監視・改善するための活動。テストが欠陥を「発見」するのに対し、QAは欠陥を「防ぐ」プロセスを構築することを目的とする。

なぜ重要か

品質はテストで追加できない。設計・実装プロセスに組み込むものである(Deming)。

テストフェーズで品質を担保しようとすると、修正コストが爆発する。要件・設計・実装の各フェーズで品質ゲートを設けることで、欠陥の発生自体を防ぐ。

品質の8側面(Garvin)

側面意味
パフォーマンス主要機能の動作特性
機能性仕様通りの機能の存在
信頼性障害なしに動作し続ける能力
適合性基準・標準への準拠
耐久性メンテナンスなしに機能し続ける時間
保守性欠陥を発見・修正する容易さ
審美性ユーザーインターフェースの質感
知覚品質ユーザーの主観的な品質感

SQAの主要活動

  • コードレビュー: Pull Requestベースで実装を検査。欠陥発見だけでなく知識共有の場として機能させる。
  • 静的解析: linter・型チェッカーで実行前に欠陥を発見する
  • 品質メトリクスの計測: 欠陥密度・テストカバレッジ・サイクロマティック複雑度(10以下推奨)

適用場面

  • チームの「良いコード」の定義を合意するとき
  • コードレビューの観点を標準化するとき
  • 本番障害のポストモーテムをプロセス改善につなげるとき

関連概念

出典

実践ソフトウェアエンジニアリング(Pressman)第16〜18章