ソフトウェア工学 ブラックボックステスト2
前回
ディシジョンテーブルテスト(decision table testing)
条件によって振る舞いが異なるシステムの振る舞いを確認する。その条件を書いたものがディシジョンテーブル。複雑なルールが少数存在する場合に有効な方法。
ディシジョンテーブル
– 条件の集合とビジネスルールの組み合わせ表
– システムの内部動作を表す
ディシジョンテーブルからテストケースの生成する。
テストケース
– 二値条件の場合,そのままテストケースに
– 多値条件の場合,境界値分析の考え方を統合
※ ルール数が多い場合には表・テストケースの作成が困難
※ ディシジョンテーブルが存在しない場合,テスト担当者が作成しなければならない
ペア構成テスト(pairwise testing)
入力変数と値の数の組み合わせが多い場合に有効に場合に有効なテスト。 テストケース数を大幅に削減可能。
– 例:Webサイトの互換性テスト
• クライアント(ブラウザ)とそのOS,プラグインの種類,サーバとそのOS,・・・の組み合わせが発生し、入力のサブセットを選択する必要がある。
– できるだけ故障が発見できるサブセットの選択する。
→「すべての『変数値のペア』」をテスト
ペア構成テストの例:Webサイトの互換性
さまざまなクライアント・サーバの組み合わせでWebページが正常に見えるかテストしたいという状況を考える。
■変数と取りうる値
– クライアント(IE, Firefox, Opera)
– クライアントOS(Windows, Mac, Linux)
– サーバ(apache, IIS)
– サーバOS(Windows, SunOS, Linux)
– すべての組み合わせ:3×3×2×3=54通り
直交表の利用(実験計画法: 医薬品の臨床試験)をして、テストケースを作成する。
– 直交表とは・・任意の2列にすべての組み合わせが出現する表
– 例:1,2,3のペア
→9行4列の直交表: L9(3^4) 変数のとる値がより小さい直交表を選び、余ったところには任意の値を入れる(Don’t care)
入力変数を識別するのに必要な最小の直交表に入力値を割り当てる
– これをテストケース(入力)とする
– 期待出力は別途必要
テストケース数は54から9に削減
※直交表の代わりに全ペアアルゴリズムを用いることもできる(参考: http://www.satisfice.com/tools.shtml)
※入力される値に依存関係がある場合には,さらにテストケース数を減らすことができる• テストケース数を大幅に削減可能
状態遷移テスト(state transition testing)
システムの状態遷移仕様に基づくテスト。 ステートチャート(状態遷移図)や 状態遷移表(状態とイベント,アクションの組み合わせ表)が記述できることが条件。
– テストケースのレベル
レベル1: すべての状態を少なくとも1回訪れる
レベル2: すべてのイベントが少なくとも1回起動される
レベル3:すべての遷移が少なくとも1回行われる
レベル4:すべてのパスが少なくとも1回実行される
– ループがあると、無限個のテストケースとなる
– 無効パスのテスト
• システムに求められるディペンダビリティに応じて
※システム外部からのイベントにシステムが応答する必要のない場合には適用できない
例:事務文書(伝票)の定型処理,など
ドメイン分析テスト(domain analysis testing)
複数の変数を同時にテストしたい(テストすべき)場合に有効。 同値クラス・境界値テストを多次元に拡張・一般化したもの。複数の変数を効率上の理由(テストを減らしたい),あるいは変数の相関関係を検証する目的f不等式で表せるような制約があるとき)変数間にで同時にテストする場合に有効。 変数値が数値をとる場合にもっとも有効
文字列やブール値などにも一般化可能。
変数がnある時、値はn次元空間を動くと考える。変数が動ける空間のことをドメインという。
– onポイント:境界上の値
– offポイント: 境界に隣接する値
– inポイント: 境界条件を満たすが境界上にはない値
– outポイント:いずれの境界条件も満たさない値
ポイントの分析
– 境界上のポイントがドメイン内(境界条件が、A ≦10など’閉じている’場合)
• onポイントは境界上でドメインに含まれる
• offポイントはドメイン境界の外側にある
– 境界上のポイントはドメイン外(境界条件が、A <10など’開いている’場合)
• onポイントは境界上でドメインに含まれない
• offポイントはドメイン境界の内側にある
ドメイン分析テストケースの作成
– それぞれの不等式条件に対し,onポイントとoffポイントを各1個ずつ
– それぞれの等式条件に対し,onポイントを1個,offポイントを2個ずつ(onポイントより少し大きい値,少し小さい値)
– 表を用いたテストケース作成の補助
ドメインテストマトリクス
ユースケーステスト(usecase testing)
主にシステムテスト,受け入れテストのレベルでのテストに向く。ユースケースは抽象度の高い記法であり,入力・出力の選び方が難しい(テストの有効性を左右す
る)可能性が高い。ユースケースであらわされる典型的で抽象度の高いトランザクションのみをテストする。 テストが網羅するのも代表例のみなので細部の条件などは網羅できない。
設計戦略としてユースケースの優先度付けをして行う。
– 頻繁に使われるユースケースのテストを行う
– 入力は同値クラス分析や境界値分析に基づいて選択
– 基本系列のテストケースを作成
- 繰り返し系列の場合,何度かループを通過
– 代替系列のテストケースを作成
- 境界値・無効値/offポイントなどを入力
– アンチシナリオのテストケースを作成(想定外のエラーが発生するなどのシナリオ)
安全性・セキュリティに関わるテストもここに含まれる。