Tools & Practical Guidance
Several mature tools generate covering arrays from parameter models. Each uses a different algorithm and excels in different scenarios. This page compares the leading tools and provides practical guidance on seed reuse.
Tool Comparison
| Tool | Algorithm | Max Strength | Constraints | Open Source | Best For |
|---|---|---|---|---|---|
| ACTS | IPOG | Any t | Yes | Yes (NIST) | Industry standard, general use |
| PICT | Greedy | 2-6 | Yes | Yes (Microsoft) | CLI integration, CI/CD |
| CASA | SA + SAT | 2-6 | Yes | Yes | Constrained systems |
| Hexawise | Commercial | 2-6 | Yes | No | Enterprise, web-based |
| CAgen | Multiple | 2+ | Yes | Yes | Research, benchmarking |
ACTS: The Industry Standard
ACTS (Advanced Combinatorial Testing System) is developed by NIST and serves as the de facto standard for industrial CT [1].
Features:
- GUI and command-line interface
- Mixed-strength arrays (different t for different parameter groups)
- Constraint handling via boolean expressions
- Seeding support (reuse existing tests)
- Export to CSV, spreadsheet, or plain text
- Free download: acts.nist.gov
Input model format:
[System]
Name: FindDialog
[Parameter]
FindWhat (string): Empty, lowercase, MixedCase, UPPER, space, multi, special, long
MatchCase (boolean): Yes, No
Direction (enum): Up, Down
File (enum): None, Single, Multiple
[Constraint]
# No constraints for this example
Limitation: ACTS generates abstract test cases but cannot auto-generate executable test scripts [2]. Testers must manually map abstract values to concrete test data.
PICT: Microsoft’s Flexible Generator
PICT (Pairwise Independent Combinatorial Testing) emphasizes flexibility and CI/CD integration.
Features:
- Simple text-based input format (version-control friendly)
- Fast generation for pairwise
- Negative testing support (mark invalid values with
~) - Weighting to bias toward common configurations
- Open source: github.com/microsoft/pict
Input model format:
FindWhat: Empty, lowercase, MixedCase, UPPER, space, multi, special, long
MatchCase: Yes, No
Direction: Up, Down
File: None, Single, Multiple
IF [MatchCase] = "Yes" THEN [FindWhat] <> "Empty";
Trade-off: PICT generates slightly larger suites than ACTS for the same strength, but its text-based format and fast execution make it well-suited for automated pipelines.
CASA: When Constraints Dominate
CASA (Covering Arrays by Simulated Annealing) integrates a SAT solver for systems with complex constraints [3].
When to use CASA:
- Systems with many interdependent constraints
- When test suite size matters more than generation time
- Test execution takes >21 seconds per test (CASA’s generation cost is amortized)
Performance:
- 25% smaller suites than greedy approaches on constrained problems
- 90× faster than base SA through optimizations
- SAT solver (MiniSAT) handles constraint satisfaction during search
Trade-off: Generation is slower than ACTS/PICT, but smaller suites save execution time. The break-even point is approximately 21 seconds per test execution [3].
Tool Recommendations by Use Case
| Use Case | Recommended | Why |
|---|---|---|
| General industrial testing | ACTS | Best all-around: speed, size, constraints, seeds |
| CI/CD pipeline integration | PICT | Text input, CLI, fast generation |
| Heavily constrained systems | CASA | SAT solver handles complex constraint networks |
| Enterprise collaboration | Hexawise | Web-based, team features, reporting |
| Academic research | CAgen | Multiple algorithms, benchmarking support |
| Strength increase with seeds | ACTS | Smallest suites when reusing existing tests |
Seed Reuse Guidance
When you already have tests and need more coverage, should you reuse them as seeds? Bombarda and Gargantini [4] studied this systematically across 50 benchmark models.
Three Scenarios
| Scenario | Description | Use Seeds? | Best Tool |
|---|---|---|---|
| Strength increase (t=2→3) | Existing 2-way suite, need 3-way | Yes | ACTS |
| Test suite completion (>70%) | Partial suite needs filling | Maybe | PICT (at >70%) |
| Partial test cases | Incomplete test cases as seeds | No | — |
Key Findings
Strength increase: Seeds are clearly beneficial. ACTS produced the smallest 3-way suites when seeded with existing 2-way tests (mean 864 tests vs. PICT’s 935 and pMEDICI+’s 1,130) [4].
Test suite completion: Results are mixed. ACTS actually produced larger suites when given seeds for completion. PICT benefited from seeds only when the existing suite was >70% complete.
Partial test cases: Not recommended. The preprocessing overhead to handle incomplete test cases negated any benefits from reuse.
Generation Speed
| Tool | Mean Generation Time |
|---|---|
| ACTS | 2.3 seconds |
| pMEDICI+ | 14.3 seconds |
| PICT | 42.3 seconds |
ACTS is dramatically faster for seed-based generation [4].
Workflow Integration
1. Define Model in Text File
Keep the parameter model in version control alongside the code:
# model.txt — CT model for payment system
UserType: New, Existing, VIP
Amount: Small, Medium, Large, Zero
Currency: USD, EUR, GBP
PaymentMethod: Credit, Debit, Transfer, Cash
2. Generate in CI Pipeline
# Generate 2-way covering array
java -jar acts.jar model.txt -Ddoi=2 -o tests.csv
# Or with PICT
pict model.txt /o:2 > tests.csv
3. Map Abstract to Concrete
Use a mapping layer to convert abstract values to concrete test data:
| Abstract | Concrete |
|---|---|
| Amount=Small | 0.01 |
| Amount=Medium | 500.00 |
| Amount=Large | 999,999.99 |
| Amount=Zero | 0.00 |
4. Execute with Standard Framework
Feed the concrete test data into pytest, JUnit, or any test framework. Each row of the covering array becomes one test case.
Further Reading
- Algorithms — How each tool’s algorithm works
- Practice — End-to-end CT workflow
- Industrial Evidence — Tool performance in real projects
References
- Y. Lei, R. Kacker, D. R. Kuhn, V. Okun, and J. Lawrence, “IPOG: A General Strategy for T-Way Software Testing,” in IEEE International Conference and Workshops on Engineering of Computer-Based Systems (ECBS), 2007, pp. 549–556. doi: 10.1109/ECBS.2007.47.
- L. Hu, W. E. Wong, D. R. Kuhn, and R. Kacker, “How does combinatorial testing perform in the real world: an empirical study,” Empirical Software Engineering, 2020, doi: 10.1007/s10664-019-09799-2.
- B. J. Garvin, M. B. Cohen, and M. B. Dwyer, “Evaluating Improvements to a Meta-Heuristic Search for Constrained Interaction Testing,” Empirical Software Engineering, vol. 16, no. 1, pp. 61–102, 2011, doi: 10.1007/s10664-010-9152-1.
- A. Bombarda and A. Gargantini, “On the Completion of Partial Combinatorial Test Suites,” SN Computer Science, vol. 6, p. 383, 2025.
Disclaimer: AI is used for text summarization, polishing and explaining. Authors have verified all facts and claims. In case of an error, feel free to file an issue.