Home / Supported Features
Supported Features
This page documents what ProTest supports and does not support relative to Microsoft PICT's feature set.
Parameter Features
| PICT Feature |
ProTest |
Notes |
| Named parameters |
Yes |
|
| Named values |
Yes |
|
Value weighting (N) |
Yes |
Biases generation when choice doesn't affect coverage (details) |
Negative values ~ |
Yes |
Full support with UI toggle (details) |
Value aliases \| |
No |
Not supported in the UI. ProTest's constraint IntelliSense eliminates the need for aliases by providing autocomplete for parameter names and values. Aliases in imported .pict files are preserved on round-trip but cannot be created or edited. |
Parameter reuse <Param> |
Partial |
Expanded on .pict import (values copied with weights and negatives preserved). Not available in the visual editor — use the Model Text tab for manual entry. |
Constraint Features
| PICT Feature |
ProTest |
Notes |
| IF / THEN / ELSE |
Yes |
Full conditional constraint support |
| Unconditional invariants |
Yes |
Constraints that always apply (details) |
=, <> (equality) |
Yes |
String and numeric comparison |
>, >=, <, <= (comparison) |
Yes |
String and numeric comparison |
LIKE (wildcard matching) |
Yes |
* = any chars, ? = one char |
IN (set membership) |
Yes |
IN { "val1", "val2" } and NOT IN |
AND, OR, NOT (logical) |
Yes |
With correct operator precedence |
| Parenthesized expressions |
Yes |
(condition1 OR condition2) AND condition3 |
| Parameter-to-parameter comparison |
Yes |
[Param1] = [Param2] with all operators |
ISNEGATIVE() / ISPOSITIVE() |
No |
Parsed on import but not evaluated. These functions test whether a value is negative — ProTest imports them without error but the constraint checker does not enforce them. |
Comments (#) |
Yes |
Supported in constraints and model text |
Model Features
| PICT Feature |
ProTest |
Notes |
| Global interaction order (1-6) |
Yes |
Set in sidebar or CLI --strength |
Sub-models { } @ N |
Yes |
Full support with UI editor (details) |
| Complete seeds |
Yes |
All parameter values specified |
| Partial seeds |
Yes |
Some values left as (any) |
Randomization (/r) |
Yes |
With optional deterministic seed |
Case-sensitive matching (/c) |
Yes |
Toggle in sidebar or CLI --case-sensitive |
Per-parameter order (Param @ N) |
No |
Stripped on import with a warning. Use sub-models instead, which provide the same capability with a clearer UI. |
Result parameters ($Param) |
No |
The $ prefix for computed/output parameters is stripped on import. ProTest treats all parameters uniformly. |
| Empty string values |
No |
Empty values (space between commas) are not supported. Use a named placeholder value instead (e.g., "None" or "Empty"). |
Generation Features
| Feature |
ProTest |
Notes |
| PICT engine |
Yes |
Microsoft's pairwise testing engine. Generally better for t=3+ (details). |
| SIPO engine |
Yes |
Simulated annealing. Generally better for pairwise (t=2) (details). |
| Parallel trials |
Yes |
Multiple seeds, best result kept |
| NCK post-optimization |
Yes |
UI only. Rarely effective at t=2 (details). |
| Time-limited generation |
Yes |
CLI only (--max-time) |
Output statistics (/s) |
No |
PICT's /s flag for model statistics is not exposed. ProTest computes its own statistics in the Results tab. |
Verification Features
| Feature |
ProTest |
Notes |
| Tuple coverage verification |
Yes |
Confirms all t-way tuples are covered |
| Constraint satisfaction check |
Yes |
Confirms no row violates constraints |
| Seed inclusion check |
Yes |
Confirms all seeds appear in results |
| Sub-model coverage check |
Yes |
Confirms sub-model orders are met |
| Transitive constraint analysis |
Yes |
ProTest-exclusive. Detects implied exclusions from constraint interactions (details). |
| Feature |
ProTest |
Notes |
.cahtt (native JSON) |
Yes |
Full model + settings + results (details) |
.pict import |
Yes |
Converts to .cahtt with warnings for unsupported features |
.pict export |
Yes |
Model text only — see what you lose |
| CSV output |
Yes |
Comma-separated values |
| Markdown output |
Yes |
Table format for documentation |
Custom separators (/d:, /a:) |
No |
Value separator (comma) and alias separator (pipe) are hardcoded. |
Features ProTest Adds Beyond PICT
ProTest is not just a PICT wrapper — it adds significant capabilities:
| Feature |
Description |
| SIPO engine |
Alternative generation algorithm, often produces fewer test cases at pairwise strength |
| NCK post-optimization |
Removes redundant test cases while maintaining coverage |
| Transitive constraint analysis |
Detects and explains implied exclusions from constraint interactions |
| Coverage % column |
Cumulative tuple coverage per row, recalculates on sort |
| Constraint IntelliSense |
Autocomplete for parameter names and values in the constraint editor |
| Visual UI |
Full-featured WPF application with 6-tab interface |
| Verification framework |
Coverage, constraint, seed, and sub-model verification |
Native .cahtt format |
Stores everything in a single JSON file including results and settings |