分類ツリー法はテスト設計の手法であり、[ 1 ]ソフトウェア開発 のさまざまな分野で使用されています。[ 2 ] これは 1993 年に Grimm と Grochtmann によって開発されました。 [ 3 ] 分類ツリー法における分類ツリーは、決定木と混同してはなりません。
分類木法は、主に次の2つのステップから構成されます。[ 4 ] [ 5 ]
テストに関連する側面を特定する手順は、通常、テスト対象システムの(機能)仕様(要件、ユースケースなど)に基づいて行われます。これらの側面は、テスト対象の入力データ空間と出力データ空間を構成します。
テスト設計の第2段階は、組み合わせテスト設計の原則に従います。[ 4 ]
この方法はペンと紙を使って適用することもできますが、一般的な方法は分類ツリー法を実装したソフトウェアツールである分類ツリーエディタを使用することです。 [ 6 ]
分類ツリー法(CTM)を適用するための前提条件は、テスト対象システムの選択(または定義)です。CTMはブラックボックステスト手法であり、あらゆる種類のテスト対象システムをサポートします。これには、ハードウェアシステム、統合ハードウェア・ソフトウェアシステム、組み込みソフトウェアを含む通常のソフトウェアシステム、ユーザーインターフェース、オペレーティングシステム、パーサー、その他(または前述のシステムのサブシステム)が含まれます(ただし、これらに限定されません)。
テスト対象システムが選択されたら、分類ツリー法の最初のステップは、テストに関連する側面を特定することです。[ 4 ] テスト対象システムは、入力パラメータと出力パラメータの両方を含む分類のセットで記述できます。(入力パラメータには、環境状態、前提条件、その他のあまり一般的ではないパラメータも含まれる場合があります)。[ 2 ]各分類は、パラメータの発生を記述する任意の数の互いに素なクラスを持つことができます。クラスの選択は、通常、抽象的なテストケースの場合は同値分割 の原則に従い、具体的なテストケースの場合は境界値分析に従います。[ 5 ] すべての分類が一緒に分類ツリーを形成します。意味論的な目的で、分類は構成にグループ化できます。
テストケースの最大数は、ツリー内のすべての分類のすべてのクラスの直積であり、現実的なテスト問題ではすぐに膨大な数になります。テストケースの最小数は、最も多くの包含クラスを持つ分類内のクラスの数です。
2 番目のステップでは、分類ツリーの各分類から正確に 1 つのクラスを選択することによってテスト ケースが構成されます。テスト ケースの選択は元々[ 3 ]テスト エンジニアが手動で行う作業でした。

データベースシステムの場合、テスト設計を実行する必要があります。分類ツリー法を適用すると、テストに関連する側面が特定され、ユーザー権限、操作、アクセス方法という分類が得られます。ユーザー権限については、一般ユーザーと管理者ユーザーの2 つのクラスが特定できます。操作は、追加、編集、削除の3 つです。アクセス方法についても、ネイティブツール、Web ブラウザー、API の3 つのクラスが特定されます。Webブラウザーのクラスは、テストの側面であるブランドによってさらに細分化され、 Internet Explorer、Mozilla Firefox、Apple Safari の3 つのクラスが含まれます。
これで分類ツリー法の最初のステップが完了しました。もちろん、接続のアクセス速度やデータベース内のレコード数など、他にもテスト項目として含めることができる要素はあります。ツリー構造による図解表現を用いることで、選択された要素とその対応する値を迅速に確認できます。
統計的には、テストケースは合計で30種類あります(2つの権限×3つの操作×5つのアクセス方法)。最小限の網羅率を確保するには、5つのテストケースで十分です。これは、アクセス方法が5種類あるためです(アクセス方法は、互いに排他的なクラスの数が最も多い分類です)。
第2段階では、3つのテストケースが手動で選択されました。
CTMは、 OstrandとBalcerによる カテゴリ分割法[ 7 ](CPM)に比べて、以下の利点をもたらしました[ 2 ] 。

分類ツリー法は、当初は抽象的なテストケースの設計と仕様策定を目的としていました。組み込みシステム向けの分類ツリー法[ 8 ]では、テストの実装も実行できます。この方法には、いくつかの追加機能が統合されています。
制約をモデル化する一つの方法は、分類ツリー法の改良メカニズムを使用することです。ただし、この方法では、異なる分類のクラス間の制約をモデル化することはできません。LehmannとWegenerは、CTEの実装でブール式に基づく依存関係ルールを導入しました。 [ 9 ]さらに、組み合わせテスト設計(例えば、全ペアテスト)を使用したテストスイートの自動生成などの機能があります。
分類ツリー法の最近の改良点には、優先順位付けされたテストケース生成が含まれます。分類ツリーの要素に、発生頻度とエラー確率またはリスクの観点から重みを割り当てることができます。これらの重みは、テストケース生成時にテストケースの優先順位付けに使用されます。[ 10 ] [ 11 ]また、要素の重みを離散確率分布として解釈することにより、統計的テスト(摩耗および疲労 テストなど)も利用可能です。
分類の個々のクラス間に有効な遷移を追加することで、分類はステートマシンとして解釈でき、したがって分類ツリー全体をステートチャートとして解釈できます。これにより、テストステップでのクラス使用の許容順序が定義され、テストシーケンスを自動的に作成できます。[ 12 ]状態カバレッジ、遷移カバレッジ、状態ペアと遷移ペアのカバレッジなど、さまざまなカバレッジレベルが利用可能です。
分類ツリーのクラスを参照するブール依存ルールに加えて、数値制約では、分類を変数とする式を指定でき、テストケースで選択されたクラスに評価されます。[ 13 ]
分類ツリーエディタ(CTE)は、分類ツリー法を実装したテスト設計用ソフトウェアツールです。[ 14 ] [ 15 ] [ 16 ] [ 17 ]
時を経て、CTEツールは複数のバージョンが登場し、それぞれが(当時普及していた)複数のプログラミング言語で記述され、複数の企業によって開発された。
CTEのオリジナル版は、ベルリンのダイムラー・ベンツ産業研究所[ 6 ] [ 16 ]の 施設で開発されました。1993年に登場し、Pascalで書かれていました。Unixシステムでのみ利用可能でした。
1997年に大規模な再実装が行われ、CTE 2が誕生した。開発は再びダイムラー・ベンツ・インダストリアル・リサーチで行われた。C言語で記述され、Win32システムで利用可能だった。
CTE 2は1997年にRazorcatにライセンス供与され、 TESSYユニットテストツールの一部となっています。組み込みシステム用の分類ツリーエディタ[ 8 ] [ 15 ]もこのバージョンに基づいています。
Razorcatは2001年からCTEの開発を進めており、2003年にCTEのブランド名を登録した。
最新バージョンのCTE 3.2は、2016年にツールTESSY 4.0とともに公開されました。下記のバージョン一覧表を参照してください。
CTE 4は、 2018年にTESSY 4.1.7にEclipseプラグインとして実装されました。最新のCTE 4バージョンは、2021年にTESSY 4.3の一部として開発が続けられています。
2000年、レーマンとウェゲナーは、CTEの彼らのバージョンであるCTE XL(eXtended Logics)で依存関係ルールを導入しました。[ 9 ] [ 14 ] [ 17 ] [ 18 ]さらに、組み合わせテスト設計(例えば、全ペアテスト)を使用したテストスイート の自動生成などの機能があります。[ 19 ]
開発はダイムラークライスラー社が行いました。CTE XLはJavaで記述され、Win32システムに対応していました。CTE XLは無料でダウンロードできました。
2008年、Berner&Mattner社はCTE XLに関するすべての権利を取得し、CTE XL 1.9.4まで開発を継続した。
2010年からCTE XL ProfessionalはBerner&Mattnerによって開発されました。[ 10 ]完全な再実装が行われ、今回もJavaを使用しましたが、Eclipseベースでした。CTE XL Professionalはwin32およびwin64システムで利用可能でした。
新たな展開としては以下が挙げられる。
2014年、Berner&Mattnerは分類ツリーエディタをTESTONAというブランド名でリリースし始めた。
TESTONAの無料版は引き続き無料でダウンロードできますが、機能は制限されています。
{{cite book}}:|last=一般的な名前を持っています (ヘルプ){{cite book}}:|last=一般的な名前を持っています (ヘルプ){{cite book}}:|last=一般的な名前を持っています (ヘルプ)