ProTest¶
Combinatorial test case generation with covering arrays.
ProTest generates minimal test matrices that guarantee every t-way combination of parameter values appears in at least one test case — using far fewer cases than exhaustive testing. Research shows nearly all software failures are caused by interactions between 2-6 parameters.
What is ProTest?¶
ProTest is a combinatorial testing tool that helps you systematically test parameter combinations while minimizing test case count. Instead of testing every possible combination (which grows exponentially), ProTest uses covering array algorithms to find the smallest set of test cases that still covers all pairwise (or higher-order) interactions.
For example, if you have 5 parameters with 3 values each, exhaustive testing requires 243 test cases. ProTest can cover all pairwise interactions in as few as 15-20 test cases — a 90%+ reduction with mathematically guaranteed coverage.
When to Use ProTest¶
- Configuration testing — Test combinations of settings, feature flags, or environment variables
- Platform compatibility — Test across OS, browser, device, and version combinations
- Input validation — Systematically test parameter interactions in APIs or forms
- Hardware testing — Test combinations of firmware, drivers, and hardware configurations
- Any multi-parameter system — Where exhaustive testing is impractical but interaction coverage is critical
Key Features¶
- Two generation engines — PICT (Microsoft's pairwise engine) and SIPO (Simulated Annealing In-Parameter-Order) — SIPO matches or beats the best known results in 4 out of 6 standard pairwise.org benchmarks
- Benchmark-proven performance — SIPO produces up to 33% fewer test cases than PICT on standard benchmarks, and holds the new best known result for the 4^15 3^17 2^29 scenario
- Rich constraint language with IntelliSense — IF/THEN/ELSE, comparisons, wildcards, set membership — with autocomplete for parameter names and values as you type
- Transitive constraint analysis — ProTest detects hidden constraint interactions that create implied exclusions, showing you exactly which constraints chain together. No other covering array tool surfaces this information.
- Real-time validation — Catches constraint errors, unknown references, and model issues as you edit, before you generate
- Cumulative coverage tracking — The Results tab shows a Coverage % column that updates when you sort, so you can see how quickly coverage accumulates in any row order
- Sub-models — Group parameters for independent coverage at different interaction strengths
- Seeding — Force specific test cases into the result (complete or partial)
- Multiple interfaces — Full-featured WPF UI and command-line interface
- AI integration — Claude Code skill for automated test generation directly from your codebase
- File formats — Native
.cahtt(JSON) format with.pictimport/export
Learn More¶
- Getting Started — Installation and your first covering array
- UI Guide — Complete guide to the visual interface
- CLI Reference — Command-line usage and options
- Concepts — Covering arrays, constraints, engines, and more
- Tutorials — Step-by-step walkthroughs for real scenarios
- Supported Features — What ProTest supports and current limitations
- AI Integration — Use ProTest with Claude Code and other AI tools