ソフトウェア工学7 ブラックボックステスト1
前回
ブラックボックステスト
要求と仕様書のみを利用するテスト戦略。
単体テストから受け入れテストまですべてのレベルで適用可能で、大規模なソフトウェアに対応できるが、テスト対象のソフトウェア内部をどこまでテストできたかを知ることができないため、完全なテストは不可能という問題点がある。
主な流れは①-⑧のように勧める。
① 仕様書を分析する
②分析結果に基づき有効な入力値を選択する
③同様に無効な入力値を選択する
④それぞれの入力値に対して期待する出力は何かを決定する
⓹ 選択した入力値を使ったテストケースを作成する
⑥テストを実行する
⑦実際の出力と期待する出力とを比較する
⑧ソフトウェアが正しいかを判定する
ブラックボックステストにも種類があるので、そのうちのいくつかを紹介する。
同値クラステスト(同値分割法)
(equivalence class (partition) testing)
入力を「同値クラス」に分割し、同値クラスの入力を等価とみなす。同値クラスから1つを選んでテストする。例えば、
無効同値~0
有効同値1~999
無効同値1000~
があったとして、同値クラスに属する入力を組み合わせてテストケースを作成する。
無効同値クラスの組み合わせをすると膨大な数になるため、求められるディペンダビリティの程度によるが、テストケースを減らすガイドラインがある。
複数の入力に対し,無効同値の組み合わせのみでテスト完了とすべきではない。
例:(300,400),(-5,-200)
一般には一種類の無効値を組み合わせたテストを行う。
単体テスト,統合テスト,システムテスト,受入れテスト,いずれのレベルでも利用可能で、入力・出力の大半が少数の同値クラスに分類できる場合に有効。
入出力の同値クラスへの分類が仕様から行えることが前提になる。
境界値テスト(境界値分析)(boundary value testing)
同値クラスの発展版ともいえる。同値クラスの境界に注目(限界値テストともいう)
– 境界上の値
– 境界値のすぐ上
– 境界値のすぐ下
をテストケースとする。不等号の誤りが起きやすいので、「バグは境界に潜む」と言われる。
同値クラステストと同様の適用範囲と制約を持つ。単体テスト,統合テスト,システムテスト,受入れテスト,いずれのレベルでも利用可能で、入力・出力の大半が少数の同値クラスに分類できる場合に有効だが、同値テストよりもテストケースは2倍ほどのテストケースになる。