Page History
...
In essence, Bound Constraints and Invalid Constraints perform similar tasks: they ensure that certain values only or never appear together - making all generated scenarios valid within the model scope. From a different point of view, Bound Constraints and Mutually Bound Constraints actually invalidate many values and Invalid Constraints bind many values, behind the scenes.
"Skip" constraints
"Skip" constraints are only available under the Advanced Mode which is enabled per request (toggle in the top left of the Constraints screen).
"Skip" constraints allow for certain parameters to be excluded from test cases when it is not appropriate for them to appear. It is a faster alternative to the "Not applicable" + Bound Pairs approach. However, as the feature is in the beta stage, please note that there are a couple open defects, specifically around the interaction of "Skip" constraints with the regular ones. So if you encounter any issues, feel free to reach out to Support or avoid skips for the time being.
How to Use Skip Constraints
For example, let’s use this plan below for a flight booking system:
In this plan, only customers who are in First Class get in-flight dining. Coach and Business class customers do not get in-flight dining. Therefore, test cases with Coach and Business class customers should have no value for “Food Choice”.
First, navigate to Rules→ Constraints. Next, click the toggle to change to Advanced Mode – that is the only way to implement "Skip" constraints:
Once in Advanced Mode, we use the following syntax for "Skip" constraints:
Parameter[Parameter Value] >> Parameter(s) to be skipped
So for our example, the syntax is this:
The ability to include multiple values in the same constraint is an aspect of the Advanced Mode that is not limited to "Skip" constraints.
Now, when we generate our test suite by navigating to Scenarios, any row that includes “Ticket Type” as “Coach” or "Business" will have no value for “Food Choice”:
You can also skip multiple parameters that are listed next to each other in the Parameters screen. For example, let’s say that Coach customers now get no food, drink, or checked bag. Thus, they should have blanks for each of those parameters. Since we have those 3 sequentially in the table of parameters (refer to the model screenshot at the start of this article), we can use the following syntax:
Parameter[Parameter Value] >> First Parameter to be skipped :: Last parameter to be skipped
The boundaries are inclusive, therefore, for our example, that looks like this:
Now, when we generate our test suite by navigating to Scenarios, any rows with “Coach” for “Ticket Type” have no value for “Food Choice”, “Drink Choice”, or “Checked Bag”:
The final component of "Skip" constraints is the ‘skip to end’ capability. In this case, we can tell DesignWise that for some parameters values, skip all parameters listed later (below) on the “Parameters” page.
So for our example, we could return to our Parameters page and reorder the elements so that “Food Choice”, “Drink Choice”, and “Checked Bag” are the last three parameters:
Then, we use the syntax below to skip to end:
Parameter[Parameter Value] >> First Parameter to be skipped::!!
For our example, that looks like this:
Lastly, you can do a quick review of available options & syntax by clicking the “Usage” button in top-right section of the Advanced Mode: