スキルアップ
GIHOZの使い方:クラシフィケーションツリー法の使い方

※この記事はGIHOZ’s blogで既に公開済みの記事の内容を一部最新情報に更新したものです。
クラシフィケーションツリー法とは入力パラメータや出力パラメータをツリー形式で段階的に分類・整理し、組み合わせを定義する技法です。
クラシフィケーションツリー法を使うことで、入力パラメータや出力パラメータを直感的に整理でき、仕様が明確に整理されていなくてもツリー形式で抽象度に応じてパラメータを分類し構造化することができます。
構造化したパラメータにペアワイズテストなどの組み合わせテスト技法を適用することも可能です。GIHOZのクラシフィケーションツリー法には組み合わせを自動生成する機能があるので、スムーズにテストケースの作成が行えます。
この記事では、GIHOZのクラシフィケーションツリー法の使い方をご紹介します。なお、今回の記事で紹介しているテストケースは、こちらのリンクからご確認いただけます。
クラシフィケーションツリーの作り方
クラシフィケーションツリー法では以下の画像のように樹形図を作成し、樹形図で洗い出した項目を組み合わせてテストケースを作成します。

例えば、以下の仕様をGIHOZのクラシフィケーションツリー法を用いて整理していきましょう。この仕様は https://gihyo.jp/dev/serial/01/test_up/0005を引用しています。
健康ランドの精算システムにおける「割引サービス」に関する仕様
[既存の仕様]
●クーポン持参:10%OFF
●平日割引:30%OFF
●平日シニア割引(65歳以上):50%OFF
●2つ以上の割引サービスが重なった場合は,割引率が高い方が優先される
[新たに追加される仕様]
●土日祝ジュニア割引(15歳以下):20%OFF
既存の仕様との整合性も考慮しつつ、追加の仕様に関するテストをしたい
まずは仕様から読み取れるクラシフィケーション(分類)とクラス(分類に属する要素)を識別します。
- 「クーポン持参:10%OFF」という仕様から、「クーポンの有無」というクラシフィケーションがあり、そのクラスとして「あり」or「なし」がある。
- 「平日割引:30%OFF」、「土日祝ジュニア割引(15歳以下):20%OFF」という仕様から、「曜日」というクラシフィケーションがあり、そのクラスとして「平日」or「土日祝」がある。
- 「平日シニア割引(65歳以上):50%OFF」、「土日祝ジュニア割引(15歳以下):20%OFF」という仕様から、「年齢」というクラシフィケーションがあり、そのクラスには「15歳以下」 or 「65歳以上」or「それ以外(16歳~64歳)」がある。
仕様からこのようなクラシフィケーションとクラスに識別しました。これらをGIHOZのクラシフィケーションツリーで整理してみましょう。

まずはRootの項目名を設定しましょう。今回は割引サービスの設定についてのテストであるため「割引サービスの設定」と設定しました。
Rootの部分をダブルクリックすることで項目名の編集ができます。

続いて、クラシフィケーションとクラスの項目名も変更しましょう。以下のように、「クーポンの有無」と「曜日」をクラシフィケーションの項目名とし、「あり」or「なし」や「平日」or「土日祝」をクラスの項目名とします。

先ほど識別したクラシフィケーションのうち、「年齢」を入力する場所が足りないため、追加します。「割引サービスの設定」という項目の右下にある「…」からクラシフィケーションが追加できます。また、追加したクラシフィケーションの「…」を選択することでさらにクラシフィケーションを増やして階層構造にしたり、クラスを追加したりできます。

クラシフィケーションやクラスを削除したい場合には、削除したい項目を選択して「Delete」キーを押すか、削除したいクラシフィケーションやクラスの「…」から削除できます。
年齢は「15歳以下」「65歳以上」「それ以外(16歳~64歳)」の3パターンあるのでクラスを3つ追加して項目名を編集します。最終的には次のような形になります。

これでクラシフィケーションツリーを作成できました。このように整理することで、テストで考慮が必要な要素が網羅されていることが分かりやすくなりました。
クラシフィケーションツリーからテストケースを作る
次に、作成したクラシフィケーションツリーからテストケースを作成していきましょう。
GIHOZでは組み合わせを自動で作成することもできますが、まずは手動で組み合わせを編集する方法をご紹介します。

ツリーの下にあるテストカバレッジアイテムの横線と、クラスから伸びている縦線の交点部分をクリックすると、画像のように●を付けられます。この●は末端のクラシフィケーションに対するクラスの中から1つだけに付けられます。同じクラシフィケーション内の別のクラスとの交点部分をクリックすると●の位置が移動します。
次に、組み合わせを自動生成する方法をご紹介します。GIHOZでは「組み合わせを自動生成」ボタンを押すと「ワンワイズ」「ペアワイズ」「全組み合わせ」の3種類の網羅条件のいずれかが選択でき、組み合わせが自動生成されます。

網羅条件は組み合わせを網羅する度合いを表しています。
「ワンワイズ」は全てのクラスが最低1回登場するように、「ペアワイズ」は2つのクラシフィケーション間のクラスの組み合わせを全て網羅するように、「全組み合わせ」は全てのクラシフィケーション間のクラスの組み合わせを網羅するように、それぞれ組み合わせを自動で生成します。自動で生成できる組み合わせ数は128件上限です。

網羅条件を選択して確定することで、組み合わせが自動生成され、上の画像のようにテストカバレッジアイテムの●が自動で表示されます。
次に、「テストケース」を生成します。

手動または自動で組み合わせを生成したら「テストケースを生成」ボタンを押し、指定した組み合わせのテストケースを作成します。
期待結果は空欄になっていますので、任意で入力します。

これでクラシフィケーションツリー法を使ったテストケースの作成が完了しました。作成したテストケースはCSV形式でダウンロードや、Excel等にコピペしてご利用ください。
この記事ではクラシフィケーションツリー法の使い方について解説しました。
クラシフィケーションツリー法を活用すると、クラシフィケーションやクラスをツリー形式の図で直感的に整理できます。ツリー形式で整理することで、クラシフィケーションやクラスの抜け漏れに気付きやすくなるという利点もあります。
GIHOZでクラシフィケーションツリー法を利用すれば、手間のかかるクラスの組み合わせ作成を自動化し、スムーズにテストケースが作成できます。GIHOZのクラシフィケーションツリー法を使ってお試しください。
この記事で紹介したテストケースはこちらのリンクから確認できますので、ぜひご覧ください。
テスト技法ツールGIHOZ アカウント登録はこちら
テスト技法ツールGIHOZ|ソフトウェアテスト・第三者検証のベリサーブ(veriserve.co.jp)
この記事は面白かったですか?
今後の改善の参考にさせていただきます!