What Is the Classification Tree Method?
The Classification Tree Method (CTM) is a visual test design technique developed at the German software testing institute (DaimlerChrysler). It provides a structured way to decompose the input domain of a test object into a tree of classifications and classes, then generate test cases by selecting combinations from the tree.
Key Concepts
- Test object: The root node — the system, function, or feature being tested
- Classification: A test-relevant aspect or dimension (like a parameter category)
- Class: A specific value or partition within a classification
- Combination table: A matrix below the tree showing which classes combine into test cases
Classification Tree Structure
The tree decomposes “Online Payment” into three classifications (Payment Method, Amount, Currency), each with their own classes.
Building a Classification Tree: Step by Step
Step 1: Identify the test object and its test-relevant aspects.
Step 2: For each aspect, create a classification node.
Step 3: Under each classification, list the possible classes (values/partitions).
Step 4: Add refinements — classes can have sub-classifications if needed.
Step 5: Build the combination table to select test cases.
The Combination Table
Below the tree, create a table where:
- Columns = test cases
- Rows = classes (leaf nodes)
- Marks (X or dot) show which class is selected for each test case
| TC1 | TC2 | TC3 | TC4 | TC5 | |
|---|---|---|---|---|---|
| Credit Card | X | X | |||
| PayPal | X | X | |||
| Bank Transfer | X | ||||
| Small | X | X | |||
| Medium | X | X | |||
| Large | X | ||||
| USD | X | X | |||
| EUR | X | X | |||
| GBP | X |
Each test case picks exactly one class from each classification.
CTM vs. Equivalence Partitioning
CTM builds on EP but adds:
- Visual structure — the tree makes the decomposition clear
- Hierarchical refinement — classes can be further subdivided
- Explicit combination selection — the table shows exactly which combinations you’re testing
When to Use CTM
- Complex input domains with multiple related parameters
- When you need a visual overview of the test space
- When stakeholders need to review test coverage visually
- As a complement to pairwise testing for selecting meaningful combinations
Advanced Classification Trees
Hierarchical Refinement
Classes can have sub-classifications, creating deeper trees:
This creates a richer decomposition where Business users are further classified into SMB and Enterprise, and Social Login into Google and GitHub.
Combining CTM with Pairwise
For large trees, exhaustive combination of all classes produces too many test cases. Apply pairwise selection to the combination table:
- Build the classification tree
- List all leaf-node classes as parameters
- Feed into PICT or generate pairwise combinations manually
- Fill the combination table with pairwise-selected test cases
This gives you the visual benefits of CTM with the efficiency of pairwise testing.
Tool Support: Classification Tree Editor (CTE)
CTE XL is a dedicated tool for creating classification trees:
- Visual tree editor with drag-and-drop
- Automatic combination generation (exhaustive, pairwise, etc.)
- Export to test management tools
- Available as free academic version
Real-World Example: E-Commerce Search
Test Object: Product Search
Classifications:
├── Search Query
│ ├── Single word
│ ├── Multiple words
│ ├── With special characters
│ └── Empty
├── Filters
│ ├── No filters
│ ├── Category filter
│ ├── Price range filter
│ └── Multiple filters
├── Sort Order
│ ├── Relevance
│ ├── Price (low to high)
│ ├── Price (high to low)
│ └── Newest
└── Pagination
├── First page
├── Middle page
└── Last page
With 4 x 4 x 4 x 3 = 192 exhaustive combinations, pairwise on this tree produces approximately 16-20 test cases.
Exercise: Build a Classification Tree
Scenario: You’re testing a file export feature with these aspects:
- File format: PDF, CSV, Excel, JSON
- Data range: Last 7 days, Last 30 days, Custom range, All data
- Content: Summary only, Detailed, With charts
- Delivery: Download, Email, Cloud storage
Tasks:
- Draw the classification tree
- Create a combination table with at least 6 test cases
- Ensure every class appears in at least one test case (minimum coverage)
Hint
The largest classification has 4 classes, so you need at least 4 test cases for minimum coverage. To cover all classes across all classifications, you likely need 4-6 test cases. Try to cover interesting combinations like “JSON + With charts” (is that even valid?).
Solution
Classification tree:
File Export
├── Format: PDF, CSV, Excel, JSON
├── Range: 7 days, 30 days, Custom, All
├── Content: Summary, Detailed, With Charts
└── Delivery: Download, Email, Cloud
Combination table (6 test cases, all classes covered):
| TC1 | TC2 | TC3 | TC4 | TC5 | TC6 | |
|---|---|---|---|---|---|---|
| X | X | |||||
| CSV | X | |||||
| Excel | X | |||||
| JSON | X | X | ||||
| 7 days | X | X | ||||
| 30 days | X | |||||
| Custom | X | X | ||||
| All | X | |||||
| Summary | X | X | ||||
| Detailed | X | X | ||||
| With Charts | X | X | ||||
| Download | X | X | ||||
| X | X | |||||
| Cloud | X | X |
Note: JSON + With Charts (TC4 doesn’t have it, but consider: can JSON include charts? This is a good question for the spec!)
Every class appears in at least one test case. 6 tests instead of 4 x 4 x 3 x 3 = 144 exhaustive.
Pro Tips
- Start with the test object clearly defined. A vague root leads to a vague tree. “Login” is better than “User Management.”
- Keep classifications independent. If two classifications are highly dependent, consider merging them or adding constraints.
- Use CTM for communication. The visual tree is excellent for review meetings — stakeholders can quickly spot missing aspects.
- Refine iteratively. Start with a simple tree, then add sub-classifications as you learn more about the system.
- Mark invalid combinations. In the combination table, mark impossible combinations (like JSON + Charts) to prevent generating useless test cases.