“Your test equipment is lying to you and it is your job to figure out how.”
– Charles Rush
What is a software test design technique? Why do we need to use a technique for testing?
Software test design technique is a method, which a quality assurance engineer can use to derive test cases, test scenarios according to the specification/structure of the application. However, why we need to use a technique for this. We can just simply go through the specification document or a structural document and derive the test cases. We know that as a fundamental software testing principle, “Exhaustive testing is impossible” and sometime we are waiting our time by attending to unnecessary test scenarios.
To overcome these conflicts we can use test design techniques so we can utilize the test execution time to maximum coverage.
As shown in the below diagram, we can divide testing in to two categories such as Static testing and Dynamic testing. In this blog I will do a discussion on “Equivalence Partitioning” technique which falls under black-box testing method.
Let’s discuss what is equivalence partitioning. Equivalence partitioning is testing various groups of inputs that we expect the application to handle the same way according to each group in a similar behavior. This method identifies equivalent classes / equivalent partitions and these are equivalent because the application should handle them in a same way. We can divide these equivalent partitions into two categories.
- Valid equivalent partitions – describes the valid scenarios which the application should handle
- Invalid equivalent partitions – describes the invalid scenarios which the application should handle or reject
Note: We can use multiple valid classes at a time. However, keep in mind that we cannot multiple invalid classes in one scenario because one invalid class value might mask the incorrect handling of the other invalid class.
How to derive equivalent classes;
Assume we have to validate an input field where it is accepting numbers, characters and application should reject special characters. Then,
Set – Keyboard input
Subset A – Numbers (Valid)
Subset B – Characters (Valid)
Subset C- Special Characters (Invalid)
This is the basic visualization of equivalence partitioning. But we need to remember that we can apply equivalence partitioning iteratively. In the above example, for the subset A it is accepting numbers. We can divide numbers class to sub partitions like integer values, decimal values, negative values etc. as shown below.
How to compose test cases;
Assume we have 2 sets as X and Y. X1 and X2 are the subsets of X and Y1, Y2 and Y3 are the subsets of Y. Assuming all these subsets are independent and valid we can compose test cases using both X and Y subsets and compose a new test case. This helps to reduce the number of test cases and covers the same scenarios using less amount of test cases.
I have only shared the fundamental of equivalence partitioning. Try google and seek more 😉
Let’s see again with another test design technique.!
Praveena Karunarathna is a Senior QA Engineer at Zone24x7. You can also follow her on LinkedIn.