Home / UI Guide / Parameters Tab
Parameters Tab¶
The Parameters tab is where you define what you are testing. Each parameter represents a variable in your system, and its values represent the options for that variable.
Parameter Grid¶
The main grid shows all parameters in your model:
| Column | Description |
|---|---|
| Name | The parameter name (must be unique) |
| Values | Summary of values in PICT notation |
| Sub-Model | Which sub-model this parameter belongs to (if any) |
Adding Parameters¶
Click Add Parameter to create a new row. Type a name and then define its values in the expanded value editor below.
Removing Parameters¶
Select a parameter and click Remove, or press Delete.
Value Editor¶
When you select a parameter, an expanded editor appears showing its values:
| Column | Description |
|---|---|
| Value Name | The value shown in results and used in constraints |
| Weight | Higher weight biases generation toward this value (default: 1) |
| Negative | Mark as a negative test value (prefixed with ~ in PICT) |
Weights¶
Weights tell the generator to prefer certain parameter values over others. Weights are positive integers, and when not explicitly specified, values have a default weight of 1.
ProTest's main objective is to cover all combinations of values in the smallest number of test cases. Only when value choices do not affect that coverage criterion will weights be used to determine the final result. This means weight values have no intuitive meaning — a weight of 10 does not mean that value will appear in the output ten times more often. It will merely be 10 times more likely to be chosen when the choice does not affect coverage.
In practice, weights are opportunistic hints rather than guarantees. They are useful for biasing toward common configurations (e.g., weighting "Windows" higher than "Linux") without compromising coverage.
For more details, see the Microsoft PICT documentation.
Negative Values¶
In addition to testing valid combinations (positive testing), it is often desirable to test using values outside the allowable range to make sure the program handles errors properly. Prefixing a value with ~ (tilde) marks it as invalid or out-of-allowable-range.
The problem with naive negative testing is input masking — when two invalid values appear in the same test case, one prevents the other from being exercised. For example, if a function validates two inputs sequentially and both are invalid, the first validation failure may prevent the second from ever being reached.
PICT solves this by guaranteeing that all possible combinations of any invalid value will be paired only with all valid values. This ensures each negative value is the only invalid input in its test case, so you can isolate exactly which invalid input triggers a failure.
For more details, see Concepts: Negative Testing and the Microsoft PICT documentation.
Example¶
For testing a web application:
| Parameter | Values |
|---|---|
| OS | Windows, Linux, macOS |
| Browser | Chrome, Firefox, Safari, Edge |
| RAM | 4GB, 8GB, 16GB |