スキルアップNEW
「クラシフィケーションツリー技法」テスト技法解説

クラシフィケーションツリー技法とは?
「クラシフィケーションツリー技法」とは、入力パラメータや出力パラメータをクラシフィケーションツリー(分類木)と呼ばれる図で整理し、組み合わせのカバレッジ基準に基づいてテストケースを作成するテスト技法です。

<クラシフィケーションツリーの構成と組み合わせの表現方法>
- ルート:ツリーの最上位にある要素で、機能名やテスト名などを入力します。「ドメイン」と呼ばれることもあります。
例:割引サービスの設定、ログイン機能 - クラシフィケーション:ルートとクラスの間にある四角形で囲まれた要素で、テスト対象のパラメータ(因子)で、入力パラメータや出力パラメータに当たります。
例:曜日、年齢 - クラス:ツリーの最下位にある要素で、パラメータが取り得る値(水準)を指します。
例:「曜日」のクラシフィケーションの場合、月、火、水、…日 - クラスの組み合わせ:クラシフィケーションツリーの下に格子状の線を引き、黒丸を打つことでクラスの組み合わせを表現します。横線1本が1つの組み合わせを示します。
テスト設計全般はこちら
クラシフィケーションツリー技法のメリット
ソフトウェアの動作には入出力データや設定値などのさまざまなパラメータが多く関係しています。クラシフィケーションツリーを作成すると、それらのパラメータ同士の関係を視覚的に整理でき、組み合わせの有無を直感的に考えやすくなります。また、抜け漏れの確認もしやすくなります。さらに、洗い出したクラシフィケーションとクラスにペアワイズテストなどの組み合わせテスト技法を適用することで、一定の網羅性を確保しながら、テストケースの数を絞り込めます。
<クラシフィケーションツリー技法の利用シーン>
「クラシフィケーションツリー技法」は、テスト対象のクラシフィケーションとクラスを整理し、視覚的に表現できるため、複雑な組み合わせのテスト設計に役立ちます。多数のパラメータの組み合わせを考慮する必要がある場合に有効です。
クラシフィケーションツリー技法によるテストケースの作成手順
ここからは、以下の仕様を例に、GIHOZを用いて「クラシフィケーションツリー技法」によるテストケースの作成手順を説明します。
■例■レストランのランチセットの注文システム
あるレストランでは新たにハンバーグのランチセットを提供することになりました。
ハンバーグは、トッピングとソースを自由に選べ、セットではお米の種類や量、デザートを選択できます。
トッピングは、アボカド、チーズ、トッピングなしの3種類から選べます。ソースは、デミグラスソースと和風ソースの2種類です。
セットの内容として、お米の種類(白米、雑穀米)と量(大盛り、普通、少なめ)からいずれかを選び、デザートはアイス、ケーキ、プリンの3種類の中から選べます。
この仕様に基づき、選択内容に応じて正しく注文できるかを確認します。
「クラシフィケーションツリー技法」を適用する際、専用のツールを使わずにクラシフィケーションツリーを作成するのは手間がかかり、手動で組み合わせを作成するとミスが発生しやすくなります。GIHOZを使うとクラシフィケーションツリーの作図や組み合わせの作成が容易になり、テストケースもワンクリックで出力可能です。
以下に、GIHOZを活用したクラシフィケーションツリーの作成からテストケースの作成までの手順を三つのステップに分けて説明します。
ステップ1 クラシフィケーションツリーを作成する
仕様からクラシフィケーションとクラスを抽出し、クラシフィケーションツリーを作成します。
まず、ルートの項目名を決定します。今回はハンバーグのランチセットを正しく注文できるかどうかのテストなので「ハンバーグのランチセットの注文」とします。
次に、クラシフィケーションを追加します。仕様では「ハンバーグは、トッピングとソースを自由に選べ、セットではお米の種類や量、デザートを選択できます」と定められているため、「ハンバーグのランチセットの注文」の子階層に「ハンバーグ」と「セット」の二つのクラシフィケーションを追加します。「ハンバーグ」の子階層には、「トッピング」、「ソース」の二つのクラシフィケーションを、「セット」の子階層には、「お米」、「デザート」の二つのクラシフィケーションを追加します。さらに、お米の子階層に「種類」と「量」の二つのクラシフィケーションを追加します。
最後にクラスを追加します。例えば、トッピングは「アボカド」、「チーズ」、「なし」の3種類から選べるため、「トッピング」の子階層に「アボカド」、「チーズ」、「なし」の三つのクラスを追加します。同様に、他のクラシフィケーションにもクラスも追加すると図表2のようになります。

ステップ2 組み合わせを編集する
ステップ1で作成したクラシフィケーションツリーを基に組み合わせを作成します。
GIHOZでは、手動または自動で組み合わせを作成できます。
<組み合わせを手動で作成する場合>
クラシフィケーションツリーの下にある格子状の線の横線と各クラスから伸びている縦線の交点部分をクリックすることで、黒丸を付けることができ、組み合わせに含めるクラスを指定できます。例えば、トッピングにアボカドを指定したい場合、横線とアボカドから伸びている縦線の交点部分をクリックします。同様に、他のクラシフィケーションについてもクラスを指定します。

<組み合わせを自動で生成する場合>
ワンワイズ、ペアワイズ、全ての組み合わせの三つのカバレッジ基準のいずれかを選択し、自動で組み合わせを生成できます。
- ワンワイズ:全てのクラスが最低1回登場する組み合わせ
- ペアワイズ:二つのクラシフィケーション間のクラスの組み合わせを網羅
- 全組み合わせ:全てのクラシフィケーション間のクラスの組み合わせを網羅
今回の例でワンワイズの組み合わせを生成した場合、3件の組み合わせができます(図表4)。

ペアワイズでは11件(図表5)、全組み合わせでは108件(図表6)の組み合わせが生成されます。
このように組み合わせを生成する際は、さまざまなカバレッジ基準が考えられます。どのカバレッジ基準を適用するかは、プロジェクトごとにリスクなどを考慮して選択する必要があります。


ステップ3 テストケースを作成する
ステップ2で作成した組み合わせを基にテストケースを作成します。一つの組み合わせから1件のテストケースを作成する場合、ワンワイズでは3件、ペアワイズでは11件、全組み合わせでは108件のテストケースが作成できます。例えば、図表4の一つ目の組み合わせからテストケースを作成すると、「トッピングがチーズ、ソースが和風、お米の種類が雑穀米、量が少なめ、デザートがアイスの場合、注文ができることを確認する」といった内容のテストケースになります。
ワンワイズの組み合わせからテストケースを作成すると、下図(図表7)のようになります。

GIHOZを使うと、作成した組み合わせを基にテストケースをワンクリックで生成できます。
クラシフィケーションツリー技法の注意点
クラシフィケーションやクラスの数が増えると、クラシフィケーションツリーが大きくなり、編集やレビューがしにくくなります。そのため、単一の機能や処理ごとにクラシフィケーションツリーを別々のツリーに分けるなどの方法で、ツリーを適切に分割し、ツリーが大きく成り過ぎないように調整すると良いでしょう。
まとめ
本稿では、入力パラメータや出力パラメータをクラシフィケーションツリーと呼ばれる図で整理し、組み合わせのカバレッジ基準に基づいてテストケースを作成するテスト技法「クラシフィケーションツリー技法」を紹介しました。「クラシフィケーションツリー技法」は、テスト対象のクラシフィケーションとクラスを整理し、視覚的に表現できるため、複雑な組み合わせのテスト設計に役立ちます。このため、多数のパラメータの組み合わせを考慮する必要がある場合、特に有効です。GIHOZを使うと、クラシフィケーションツリーを簡単に作成でき、組み合わせやテストケースをワンクリックで生成できます。そのため、手軽に「クラシフィケーションツリー技法」を活用できます。また、GIHOZで組み合わせやテストケースを自動生成することで、漏れや誤りが発生することを防げます。「クラシフィケーションツリー技法」を適用する際には、テスト技法ツール「GIHOZ」をぜひご活用ください。
この記事は面白かったですか?
今後の改善の参考にさせていただきます!