こちら - WACATE (ソフトウェアテストワークショップ)

「テスト技法の抽象度」
氏名:
SNS:
所属:
分野:
近江 久美子
WACATE 実行委員会
エンプラ
JSTQB のシラバス(※1)「仕様ベース/ブラックボックスのテスト技法」には 5 つの技法が紹介されてい
ます。
同値分割法 境界値分析 デシジョンテーブルテスト 状態遷移テスト ユースケーステスト
いずれも「テスト技法」ですが、抽象度は異なっているように見えます。
これらの技法を使って分析やテスト条件を選ぶ軸を「対象」として考えてみると、
・同値分割法、境界値分析は、1 つ 1 つの入力や出力などが対象
・デシジョンテーブルテストは、入力や出力などの関係性が対象
・状態遷移テストは、状態遷移が対象
・ユースケーステストは、ユースケースが対象
と言えると思います。
対象の抽象度を元に2つのグループに分けることができそうだ、と考えました。
1 つ目のグループは比較的、具体的な技法です。ユースケーステストと状態遷移テストが該当します。
ユースケーステストの対象は、ユースケース、つまり要求やソフトウェアと外部との関係です。
状態遷移テストの対象である「状態遷移」は、ソフトウェアを構成する要素です。
ソフトウェアの要求やその利用方法もソフトウェアに属する一要素と考えれば、この 2 つのテストは共
通点があります。つまり、ソフトウェアが持つ要素のうち、どれをテストで扱うかを指定しています(な
お、ここで言う「要素」の粒度は様々です。細分化できる要素をまとめて扱う場合もありえます)
。
2 つ目のグループは、比較的抽象的な、デシジョンテーブルテスト、同値分割法、境界値分析です。
デシジョンテーブルテストで扱うのは、ソフトウェアが持つ要素同士の関係性です。
同値分割や境界値分析は、ソフトウェアが持つ要素1つ 1 つの分け方や狙い所の考え方を示します。
但し、どのような要素を扱うかは指定しません。例えば、入力された値、状態、利用方法、いずれにも適
用できるでしょう。
さて、このようにテスト技法の対象の抽象度を考えることは、何かの役に立つのでしょうか?
既にテスト技法を使いこなしている人がテスト設計をする分には、意識する必要はないかもしれません。
意識せずともうまくテスト設計できるならば、何の問題もありません。
しかし、技法を知らない人に説明したり、自分が知らない技法を学習したりするときには、きっと助けに
なるでしょう。また、これらの技法を適用したテスト設計を誰かにお願いするときの考慮点としても使え
そうです。抽象度の高い技法の場合、より具体的に認識合わせをする方がよいでしょう。
あとは勿論、単純に、テスト技法について考えるための一手段になります(要は、私にとっては面白いか
ら、です)
。
今回取り上げた 5 つ以外のテスト技法も含め、案外、スコープや関心事が異なる技法同士が、
「テスト技
法」として一括りにされている場合はあると思います。場合によっては、一括りで問題ありません。しか
し、それぞれの個性に踏み込んで分けて考えた方が理解しやすいこともあります。
抽象度は一例にすぎませんが、それぞれのテスト技法が持つ個性を多面的に理解できれば、一層テスト設
計に役立てることができるのではないでしょうか。
※1
http://jstqb.jp/dl/JSTQB-SyllabusFoundation_Version2011.J02.pdf