Skip to content

Home / UI Guide / Toolbar and Sidebar

Toolbar and Sidebar

Toolbar

The toolbar provides quick access to common operations:

File Operations

Button Shortcut Description
New Ctrl+N Create a blank model
Open Ctrl+O Open a .cahtt or .pict model file
Save Ctrl+S Save the current model
Save As Ctrl+Shift+S Save with a new filename
Import PICT Ctrl+I Import a .pict format model
Export PICT Export the model in .pict format

Generation

Button Shortcut Description
Generate Ctrl+G or F5 Generate the covering array
Stop Escape Stop an in-progress optimization

Other

Button Description
Help Open ProTest help
Advanced Mode Toggle advanced tabs on/off (see below)

Advanced Mode

The Advanced Mode checkbox in the toolbar controls the visibility of three additional tabs:

Tab What It Shows
Verification Post-generation verification results — tuple coverage, constraint satisfaction, seed inclusion, and transitive constraint analysis
Trial Results Detailed breakdown of each parallel trial — seed, test case count, timing, and which trial won
Model Text Raw PICT model text with bidirectional sync to the visual editors

When Advanced Mode is unchecked (the default), these tabs are hidden to keep the interface simple. The five standard tabs (Parameters, Constraints, Seeds, Sub-Models, Results) are always visible.

Parameters List

Displays all parameters in your model with their value counts. Clicking a parameter navigates to it in the Parameters tab.

Generation Controls

Setting Description
Order Interaction strength (1-6). Default: 2 (pairwise)
Randomize Enable randomized generation for varied results
Seed Specific random seed for reproducible results (disabled when Randomize is off)
Case-sensitive Enable case-sensitive parameter and value matching

Algorithm

Select which generation engine to use:

Engine Description
PICT Microsoft's greedy pairwise testing algorithm. Fast and reliable.
SIPO Simulated annealing algorithm. Almost always produces fewer test cases than PICT — typically 10-30% fewer, though results vary by model. Recommended when minimizing test count matters.

When SIPO is selected, additional tuning parameters become available:

Setting Default Direction Description
Base 10,000 Higher = fewer test cases, longer runtime Number of optimization iterations per trial. Increasing the base gives SIPO more iterations to search for a smaller covering array, but each trial takes proportionally longer.
T-Init (Initial Temperature) 5.0 Higher = broader exploration Starting temperature for simulated annealing. A higher T-Init lets the algorithm accept worse solutions early on, helping it escape local minima and explore a wider range of possibilities. Too high wastes iterations on poor solutions.
T-Final (Final Temperature) 0.1 Lower = finer refinement Ending temperature. A lower T-Final makes the algorithm pickier in its final iterations, honing in on the best solution found. Too low and it may get stuck in a local minimum near the end.

Parallel Trials

Setting Default Direction Description
Trials 1,000 (SIPO) / 10,000 (PICT) More = fewer test cases, longer runtime Number of independent generation attempts run in parallel. Each trial uses a different random seed, and the smallest result is kept. More trials increase the chance of finding a smaller covering array, but total generation time increases.
Cores ~75% of available CPU cores More = faster generation Number of parallel threads used for generation. The default leaves headroom so your system stays responsive.

Validation Summary

Displays real-time validation status for your model. A green checkmark means the model is valid and ready to generate. Error and warning counts appear when issues are detected — errors block generation, warnings do not. Click individual messages to navigate directly to the source of the issue.

Validation runs automatically as you edit. Common issues flagged include:

  • Empty or duplicate parameter names
  • Duplicate values within a parameter
  • Constraint syntax errors or references to unknown parameters/values
  • Seeds referencing values that no longer exist
  • Sub-models with fewer than 2 parameters or order exceeding member count