プログラムテスト
プログラム中に潜む誤りをバグという。テストの目的はバグを発見し、取り除くこと。
一般的に、テストを進めていくにつれて、バグが取り除かれ、高品質のプログラムになっていく。
下図のような信頼度成長曲線(ゴンペルツ曲線)になる。
テスト工程
テストケースを使用して、実施する。テストケースとは、条件や期待される動きなどをまとめたもの。
ソフトウェアユニットテスト
プログラムを構成するモジュール単位に行うテストのこと。単体テストともいわれている。要求事項を満たしているかを確認する。
ホワイトボックステスト
モジュールの内部構造に着目して行うテスト。アルゴリズムの詳細仕様など、内部仕様からテストケースを設計する。
・命令網羅
・分岐網羅
・条件網羅
・複数条件網羅
が存在する。
ブラックボックステスト
モジュールの外部仕様に着目して行うテスト。設計者の意図した機能を実装しているかを確認するテストである。冗長なコードなどは検知しない。
・限界値分析
・同値分割
がある。
ソフトウェア統合テスト
ソフトウェアユニットテストが完了したモジュール同士を結合して行うテスト。結合テストとも言われている。モジュール間のインターフェースを確認する。
トップダウンテスト
上位モジュールから下位モジュールへと順次結合してインターフェースを確認するテスト。
下位モジュールが完成していない場合、仮のモジュールとなるスタブが必要。
ボトムアップテスト
下位モジュールから上位モジュールへと順次結合してインターフェースを確認するテスト。
上位モジュールが完成していない場合、仮のモジュールとなるドライバが必要。
システム統合テスト
システム設計で定義したテスト仕様に基づくテスト
ソフトウェア検証テスト
ソフトウェア要件定義で定義したテスト仕様に基づくテスト
システム検証テスト
システム要件定義で定義したテスト仕様に基づくテスト。システムテストともいわれている。
テスト手法
機能テスト
性能テスト
操作性テスト
例外処理テスト
負荷テスト
運用テスト・受入れテスト
システム本番移行直前に、最終利用者(業務担当者)が行うテスト。その後のシステムの納品を受諾するかどうかを検査する受入れテストを兼ねる場合もある
妥当性確認テストは、完成したシステムが当初の目的を果たすものになっているかどうか確認する。
ソフトウェア保守
稼働中のソフトウェアに対して、発見された障害を是正したり、新しい要件に対応するために機能を拡張したりすること。
リグレッションテスト(退行テスト)は修正や変更によって、影響を受けないはずの箇所に影響を及ぼしていないかどうかを確認するテスト。
ソフトウェアの品質特性
機能性
使用性
信頼性
効率性
保守性
移植性