Skip to content

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