テスト技法を忘備録用にまとめる ~ブラックボックステスト~ その1


ブラックボックステストとは

  • 入力・出力にのみ着眼し、出力結果が仕様どおりの正しい値か確認する手法 (外部仕様のみのテスト)
  • つまり、プログラムの内部仕様に関しては考慮しない

主な技法

同値分割

同値分割とは

  • テスト結果をグループ分けし、それぞれの結果になるような代表値を選択しその値でテストを行う技法
  • このグループのことを同値クラスと呼ぶ
    • 有効同値クラス
    • 無効同値クラス

  • 誕生日を入力すると星座が表示されるプログラム
    • 3/21~4/20:おひつじ座
      → 3/21,3/22,...,4/19,4/20は同値
    • 4/21~5/20:おうし座
      → 4/21,4/22,...,5/19,4/20は同値


      → 4/1~3/31はすべて有効同値クラス
    • -1月,0月,13月...
    • -1日,0日,32日...
      → これらは無効同値クラス

以上のことを踏まえテストを行うケースを考えると

入力 出力 正常/エラー
4/1 おひつじ座 正常
5/1 おうし座 正常
6/1 ふたご座 正常
7/1 かに座 正常
8/1 しし座 正常
9/1 おとめ座 正常
10/1 てんびん座 正常
11/1 さそり座 正常
12/1 いて座 正常
1/1 やぎ座 正常
2/1 みずがめ座 正常
3/1 うお座 正常
100/1 - エラー
4/-10 - エラー

などが考えられる。

境界値分析

  • 同値分割で得た同値クラスの境界、及びその前後の値でテストを行う技法
    (同値クラスの境界は>と≧、>と<と言った条件式の書き間違いなどでバグが発生しやすい)

  • 誕生日を入力すると星座が表示されるプログラム
    • 3/21~4/20:おひつじ座
    • 4/21~5/20:おうし座
    • 5/21~6/21:ふたご座
      → 4/20及び4/21、5/20及び5/21が境界値

→この境界値を上記「同値分割」に記載したテストケースの入力値に当てはめるとより不具合が見つかる可能性があがる