ソフトウェアテスト/ソフトウェアテストの概要
テストとは、「実際どうなっているか」と「本来どうあるべきか」を比較するプロセスのこと。
テストされるソフトウェアの品質を測定して改善するために行われる。
レベル | 内容 |
---|---|
レベル0 | テストとデバッグには何の差もない。デバッグ以外にはテストには特別な目的はない |
レベル1 | テストの目的は、ソフトウェアが動くことを示すことである。 ソフトウェアが正しいという前提があり、無意識のうちに不合格にならないテストケースを選択する可能性がある。 |
レベル2 | テストの目的は、ソフトウェアが動かないということを示すことである。 ソフトウェアが動かないという前提があり、欠陥を見つけ出す努力をする。 |
レベル3 | テストの目的は、何かを証明することではなく、プログラムが動かないことによって発生する 危険性をある許容範囲までに減らすことである。 正しく動作することを証明するのは不可能のため、欠陥といういう観点からソフトウェアの品質を理解する。 |
レベル4 | テストは行動ではない。大げさなテストをすることなく品質の高いソフトウェアを作るための精神的な規律である。 テストの容易なソフトウェアを開発することに重点が置かれる。 |
最小の時間と労力でほとんどのエラーを検出する可能性が最も高くなるように、テストケースを設計する。
きちんと設計されたテストケースは、入力、出力、実行の順番で構成される。
キーボードからの入力だけでなく、インターフェースシテムや外部機器からの受信データ、
ファイルやデータベースからのデータ読み出し、システムの状態や環境などからのデータも入力になる。
画面に表示されたデータだけでなく、インターフェースシテムや外部機器への送信データ、
ファイルやデータベースへの書き込み、システムの状態や環境への変更なども出力になる。
順番があるテストケースは、相互に影響し合う可能性がある。
良い点は、テストケースが一般に小さくて単純になること。
難点はもし1つのテストが失敗したら、後に続くテストが全部無効になるかもしれないこと。
順番がない(互いに独立な)テストケースは、完全に自己完結している。
テストは相互に依存関係を持っていないし、他のテストが成功裏に実行されることも事前条件にはしていない。
良い点は、どんな順番でもテストを実行できること。
難点は、テストケースが大きくて複雑になる傾向があり、その設計、作成、メンテナンスが難しくなること。
種別 | 内容 |
---|---|
ブラックボックステスト | 要件や仕様にもとづいてテストを実施する戦略。 |
ホワイトボックステスト | テスト対象ソフトウェアの内部パス、構造、実装にもとづいて、テストを実施する戦略。 |
グレーボックステスト | テスト対象ソフトウェアがどんなふうに実装されているかがわかる程度まで調べ、 ブラックボックステストのテストケースをより効果的に選択する。 |
レベル | 内容 |
---|---|
単体テスト | ソフトウェアの最も小さい部品をテストを実施する。 単体の定義は言語などによって異なり、関数、クラス、プログラム全体を指したりする。 |
結合テスト | 単体をサブシステム、最終的にはシステムとして結合してテストを実施する。 |
システムテスト | 最も高いレベルの結合時に起こる欠陥に終点を絞って実施する。 顧客に届けられる製品を作り上げているすべてのソフトウェアから構成され、 機能性、ユーザビリティ、セキュリティ、国際化、信頼性、可用性、大容量、 パフォーマンス、バックアップと復元、移植性、その他もろもろのテストを行う。 |
受け入れテスト | このテストが成功裏に完了したときには、顧客がソフトウェアを受け入れて、代金を支払う。 顧客は、受け入れテストで可能な限り徹底的なテスト(システムテストと同等レベル)を希望する。 |