Skip to content

なぜテストが必要か?

なぜソフトウェア開発においてテストが不可欠なのか? その理由を「品質への貢献」と「バグ発生のメカニズム」から解説します。

テストは、費用対効果の高い方法で欠陥を検出・除去することで、ソフトウェアの品質を高めることに貢献します。 また、開発の初期段階(要件定義や設計)でテスト活動(レビューなど)を行うことで、欠陥の作り込みそのものを防ぐことも可能です。

現場では混同されがちですが、JSTQBでは以下のように定義されています。

  • 品質マネジメント (QM): 組織全体の品質に対する取り組み。QAとQCを含む上位概念。
  • 品質保証 (QA): 「プロセス」に焦点を当てる。適切なプロセスが守られているかを確認し、欠陥の予防を目指す。(例:プロセスの改善、再発防止策の策定)
  • 品質管理 (QC): 「プロダクト」に焦点を当てる。成果物の品質を確認し、欠陥を検出する。(例:テスト活動全般)

「テストは品質管理(QC)の一部」 ですが、QA(プロセス改善)のためのフィードバックを提供する重要な役割も担っています。

エラー・欠陥・故障・根本原因

Section titled “エラー・欠陥・故障・根本原因”

バグがなぜ発生し、ユーザーに影響を与えるのか。その因果関係を示す用語です。

  1. エラー (Error) / 誤り:
    • 人間の行為。開発者の勘違いや知識不足など。
    • 例: 仕様を読み間違える。
  2. 欠陥 (Defect) / バグ / フォールト:
    • エラーの結果として、コードやドキュメントに埋め込まれた不備。
    • 例: コード内の論理ミス。
  3. 故障 (Failure):
    • 欠陥のあるコードが実行された結果、システムが意図しない動作をすること。
    • 例: 画面がクラッシュする、計算結果が間違っている。

故障の最も大元の原因です。ここを突き止めて修正しなければ、似たような故障が再発します。

  • 例: 「開発者のトレーニング不足」や「時間の重圧」など。