In specific scenarios, system allows user to define what parameter values can never be tested together or in the other hand, scenarios where paramater values can only be tested together.
For that, user can apply contraints to support these cases.
Invalid constraints restrict parameter values that can never be tested together.
In this example, let's assume Internet Explorer (IE) is not supported on Apple computers so it would be impossible for a tester to execute a test case that instructed them to launch IE from a Mac running on its native operating system. Accordingly, we do not want any tests generated to include combinations such as “OS X” and “IE8” in the same test case.
On the Rules ->Constraints screen, you will need to click on two red X’s. Hover over the first Value of the Invalid Pair and click on the red X that appears
Find the second Value that can never appear together with the first one, hover over it, and click on the red X to create your “Invalid Pair”
As you enter your Constraints, you will see them listed to the left:
Problem solved!
After you enter these two Invalid Pairs, clicking on the “Scenarios” button will create a completely new set of test cases that excludes those two pairs of Values (and only those two pairs of Values). Each test with ‘OS X’ as the operating system will have a browser other than IE.
As you use the Invalid Pair feature and the related Bound Pair one, keep in mind these usage tips:
Do you need to add a lot of Invalid Constraints?
Watch out for “Not Applicable” Values.
Bound constraints restrict parameter values that can only be tested together.
Imagine that you have these parameters & values…
You will have the following issue when you click on the “Scenarios” button:
Even though the test calls for not adding the hotel, the data row proceeds to specify the preference and type of room, which is clearly incorrect.
To solve this problem, you first need to add “Not Applicable” as parameter values
This is because something will need to appear in test cases that include the value “Do Not Add a Hotel”.
We will want “Not Applicable” to appear for both “Hotel Chain Preference” and “Type of Room” in every scenario that includes the value “Do Not Add a Hotel”.
Side note: the exact syntax of the conditional value and its position in the list don't matter, it could have been "N/A" as the last value.
Next, you’ll want to make sure that “Do Not Add a Hotel” only gets paired with the “Not Applicable” Values. You have two options under the “Constraints” tab. One is quick, the other is slow. Let’s see the slow option, first:
Namely, it’s adding a lot of “Invalid Constraints” as described in the previous article in this section.
This is the quick option… Bound Constraints!
Most of the time when you have “Not Applicable” as an option, you will use “mutually bound constraints” as in this case. Here, we want “Do Not Add a Hotel” to be bound with Type of Room as “Not Applicable” AND we want to have Type of Room of “Not Applicable” to be bound with “Do Not Add a Hotel” so we mark this one as a Mutually Bound Constraint.
Problem solved!
So what really just happened there?
When you add a Bound Pair, DesignWise will constrain the first value chosen against all the other values in the parameter of the second value chosen. In the example above, creating a bound constraint of ‘Do Not Add Hotel’ and ‘Hotel Chain Preference’ = ‘Not Applicable’ means you are really invalidating these options:
And because we created a MUTUALLY BOUND constraint, we are also invalidating this combinations:
As you use the Bound Constraint feature, keep the following tips in mind: