Skip to content

Home / Concepts / Validation

Validation

ProTest validates your model in real time as you edit. The validation summary in the left sidebar shows a green checkmark when the model is valid, or error and warning counts when issues are detected.

How Validation Works

Validation runs automatically whenever you change any part of the model — parameters, values, constraints, seeds, or sub-models. You don't need to trigger it manually.

Status Indicators

Status Meaning
Valid (green checkmark) No errors or warnings. The model is ready to generate.
N warning(s) Warnings found but generation is still allowed. Review warnings to ensure they are intentional.
N error(s) (warning icon) Errors found. Generation is blocked until all errors are resolved.
N error(s), M warning(s) Both errors and warnings. Fix the errors first.

Errors vs Warnings

  • Errors block generation. They indicate problems that would cause the engine to fail or produce invalid results.
  • Warnings allow generation. They flag potential issues that might be intentional (e.g., a seed referencing a value you recently renamed).

Parameter Validation

Check Severity What It Means
No parameters defined Error You need at least one parameter to generate.
Empty parameter name Error A parameter has a blank name. Give it a name.
Duplicate parameter names Error Two parameters have the same name (case-insensitive by default). Rename one.
Parameter has no values Error A parameter exists but has no values defined. Add at least one value.
Empty value name Error A value within a parameter has a blank name. Give it a name.
Duplicate values in a parameter Warning The same value appears twice in one parameter. This is usually a typo.

Constraint Validation

ProTest checks your constraints for common errors without requiring you to generate first.

Quote and Reference Errors

Check Severity What It Means
Mismatched quotes Error A constraint line has an odd number of " characters. Check for missing or extra quotes.
Unknown parameter reference Error [SomeParam] doesn't match any defined parameter. Check spelling and case.
Invalid value in comparison Error "SomeValue" isn't a valid value for the referenced parameter. Check spelling.
Invalid value in IN set Error A value inside IN { "val1", "val2" } doesn't exist for that parameter.

Numeric vs String Value Errors

ProTest determines whether a parameter is numeric (all values parse as numbers) or string (anything else), and validates constraints accordingly.

Check Severity What It Means
Unquoted number on string parameter Error You wrote [OS] = 123 but OS is a string parameter. Use [OS] = "123".
Unquoted word as value Error You wrote [OS] = Windows without quotes. Use [OS] = "Windows".
Unquoted number not in numeric parameter Error You wrote [Count] = 99 but 99 isn't one of Count's values.
Quoted value on numeric parameter Warning You wrote [Count] = "5" but Count is numeric. Use [Count] = 5 instead. This still works but is not the intended syntax.

Examples

Numeric parameter (values: 4, 8, 16, 32):

# Correct — unquoted numbers for numeric parameter
IF [RAM] >= 8 THEN [Performance] = "High";

# Warning — quoted number on numeric parameter (works but not preferred)
IF [RAM] = "8" THEN [Performance] = "High";

String parameter (values: Windows, Linux, macOS):

# Correct — quoted strings for string parameter
IF [OS] = "Windows" THEN [Browser] <> "Safari";

# Error — unquoted string value
IF [OS] = Windows THEN [Browser] <> Safari;

Semicolons Are Optional

ProTest automatically adds missing semicolons when processing constraints. You can include them for readability, but forgetting one will not cause an error.

Seed Validation

Check Severity What It Means
Seed references unknown parameter Warning A seed row references a parameter that doesn't exist. This can happen if you renamed or removed a parameter after creating seeds.
Seed value invalid for parameter Warning A seed row has a value that isn't in the parameter's value list. This can happen if you renamed or removed a value.

Seed issues are warnings (not errors) because they don't prevent generation — the engine simply ignores invalid seed entries.

Sub-Model Validation

Check Severity What It Means
Empty sub-model name Error A sub-model has a blank name. Give it a name.
Duplicate sub-model names Error Two sub-models share the same name. Rename one.
Sub-model references unknown parameter Error A sub-model lists a member parameter that doesn't exist.
Sub-model has no member parameters Warning A sub-model exists but has no parameters assigned. Add at least two parameters.
Sub-model order exceeds member count Warning The interaction strength is higher than the number of parameters (e.g., order 3 with only 2 parameters). Lower the order or add more parameters.

Fixing Validation Issues

When you see errors or warnings in the validation summary:

  1. Click the message — ProTest navigates to the relevant tab and highlights the issue
  2. Read the message — It tells you exactly what's wrong and often suggests the fix
  3. Fix the issue — Validation re-runs automatically as you edit
  4. Check for green — Once all errors are resolved, the checkmark turns green and you can generate

Common Scenarios

"[Browser] is not a valid parameter" You likely have a typo in your constraint. Check the spelling against the Parameters tab. Remember that parameter names are case-insensitive by default.

"Windows is not a valid value for [OS]" Your constraint uses an unquoted string. Change [OS] = Windows to [OS] = "Windows".

"Seed value 'Chrome' is not a valid value for Browser" You probably renamed "Chrome" to something else in the Parameters tab. Update the seed to match.

"Sub-model order (3) exceeds member count (2)" You can't have 3-way coverage with only 2 parameters. Either add another parameter to the sub-model or lower the order.