WRブログ

3つのテスト設計技法

3つのテスト設計技法

みなさんは、テスト設計技法をご存知ですか?
テスト設計技法にはさまざまなものがあり、その分類もさまざまです。
ここでは、「仕様ベースのテスト設計技法」、「構造ベースのテスト設計技法」、「経験ベースのテスト設計技法」の3つに分けて解説します。
■テスト設計技法とは
テスト設計技法とは、欠陥の抜け漏れがないようにテスト対象を網羅する方法のことで、
テスト対象や、テストの目的などによってさまざまなものに分けられます。

代表的なものに、テスト対象の内部構造に着目するかしないかで分ける
「ホワイトボックステスト」と「ブラックボックステスト」があります。
このふたつの違いは、テスト設計での観点を、外から見える動作に着目するか、
内部の動作に着目するかで、前者がブラックボックステスト技法、後者がホワイトボックステスト技法になります。

ブラックボックステスト技法では、テスト対象の内部構造には触れず、
インプットしたデータに対し、仕様どおりのアウトプットを返すかのみを検証します。
そのため、仕様どおりであれば、実現方法にはこだわりません。
また、ブラックボックステスト技法の対象となるテストタイプは「機能テスト」と「非機能テスト」になります。
(ふたつのテストタイプについては『機能テストについて』、『非機能テストについて』をそれぞれご覧ください)。

一方、ホワイトボックステスト技法では、テスト対象の内部構造についても検証します。
そのため、テスト担当者はテスト対象の内部構造に詳しいか、
もしくはプログラミングなどの専門知識が必要になる場合があります。

しかし、このような分け方はひとつの例で、他にもコードベース・設計ベース・要件ベースなどで分ける場合もあります。
今回はJSTQBが定義する「経験ベース」「仕様ベース」「構造ベース」の3つの分類でみてみましょう。

image_01901

■仕様ベースのテスト設計技法
仕様ベースの設計技法は、テスト対象の仕様が明らかになっていることを前提にしてテスト設計する技法です。
前述したブラックボックステスト技法にあたります。インプットとなるドキュメントの種類はテスト対象によって異なります。
例えば、仕様書から文章を箇条書きで抜き出して表現することもあれば、UMLなどを用いて図で表現されることもあります。
これらをもとにリストやマトリクス表を作り、テストケースへと落とし込んでいきます。

■構造ベースのテスト設計技法
構造ベースのテスト設計技法は、テスト対象となるソフトウェアの内部構造を検証するためのテストを設計する技法です。
冒頭で解説したホワイトボックステスト技法にあたります。
テストケースの作成にはソフトウェアの内部構造を理解しなければならないため、
テスト対象の設計や実装に関する詳細な情報、もしくは内部構造に詳しい人間が必要になります。
内部構造に関する情報から、内部構造の検証に必要なデータの組み合わせや、パターンを割り出します。
これをテストケースへと落とし込んで、コードカバレッジとして網羅度を確保します。
■経験ベースのテスト設計技法
経験ベースのテスト設計技法とは、その名のとおりテスト担当者がもつスキルや経験と、
ユーザーの利用実態に関する情報などをもとにテストケースを作っていきます。
これまでにあがってきたインシデントや、類似した欠陥の情報なども役に立ちます。

上記ふたつの技法と違い、テスト担当者の能力に大きく依存するテスト設計技法ですが、
テスト担当者の能力が高ければ、おそらく最も効率的なテスト設計技法になります。
ですが、逆にテスト担当者の能力が低いと、モンキーテスト(やみくもにおこなうテストのこと)になりかねません。
このように、テスト熟練者によるテストを「探索的テスト」と呼びます。
■まとめ
●テスト設計技法とは、欠陥の抜け漏れがないようにテスト対象を網羅する方法
●「経験ベース」「仕様ベース」「構造ベース」の3つのテスト設計技法

ここまでで、欠陥の抜け漏れがないようにテスト対象を網羅する方法として、3つのテスト設計技法について解説してきました。
この他にもテスト設計技法やその分け方は多く存在しますので、目的や条件などによって使い分けてみるのもいいかもしれません。


【参考文献】:
『ソフトウェアテスト教科書 JSTQB Foundation 第3版』

【参考URL】:
https://appkitbox.com/knowledge/test/20130115-17,(参照 2016年7月30日)
http://itpro.nikkeibp.co.jp/article/lecture/20070209/261600/,(参照 2016年7月30日)
http://www.itmedia.co.jp/im/articles/0412/03/news093_2.html,(参照 2016年7月30日)