Testing is a crucial part of the software creation process. It ensures that your code is working correctly and that all bugs are found before the software lands in the hands of consumers. But it can be difficult to explain these tests and their results to investors...
How do I Create an “Invalid Constraint” to Prevent Impossible-To-Test-For Values From Appearing Together?
Use the “Invalid Constraint” feature to prevent certain combinations of Values from appearing together in the same test case
In this example, Internet Explorer (IE) is not supported on Apple computers so it would be impossible for a tester to execute a test case that instructed her 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 “Constraints” screen, you will need to click on two red X’s. Hover over the first Value of the Invalid Constraint 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 Constraint”
Once you have entered your Invalid Constraints, you will see them listed to the left
After you enter these two Invalid Constraints, 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.
Do you need to add a lot of Invalid Constraints?
- Imagine you had an application that asked “Would you like to add a hotel to your travel reservation?” Any scenarios with “Do Not Add a Hotel” would require many, many different Invalid Constraints between things like “Do Not Add a Hotel” and “Hotel Chain Preference = X”. For situations like those, the Bound Constraint feature will help you accomplish your constraint handling much faster.
- If you have more than 10 or so Invalid Constraints (or Bound Constraints) in your model, you might find that it is faster to export it into Excel and document your paired values in Excel. If so, make sure to both (1) add multiple paired values in DesignWise before you export into Excel (so you can copy and paste the DesignWise formatting for Invalid Constraints and/or Bound Constraints), and (2) ensure that you use the exact spelling of Values (e.g., ‘cutting and pasting’ Values will usually be safer than typing)
Watch out for “Not Applicable” Values.
- Do you need to add some of them to your model? Do you need to invalidate the combination of “Not Applicable” with other specific Values?
- Especially watch out for situations where you have multiple related “Not Applicable” values in a model. Would it make sense to create a “Bound Constraint” between ‘Hotel Chain Preference = Not Applicable’ and ‘Type of Room’ = Not Applicable’?