What is Equivalence Partitioning?
Equivalence partitioning (EP) is a blackbox testing technique. This technique is very common and mostly used by all the testers informally. Equivalence partitions are also known as equivalence classes.
As the name suggests Equivalence partitioning is to divide or to partition a set of test conditions into sets or groups that can be considered same by the software system.
As you all know that exhaustive testing of the software is not feasible task for complex software’s so by using equivalence partitioning technique we need to test only one condition from each partition because it is assumed that all the conditions in one partition will be treated in the same way by the software. If one condition works fine then all the conditions within that partition will work the same way and tester does not need to test other conditions or in other way if one condition fails in that partition then all other conditions will fail in that partition.
Guidelines for Equivalence Partitioning :
- If the range condition is given as an input, then one valid and two invalid equivalence classes are defined.
- If a specific value is given as input, then one good and two weak equivalence classes are defined.
- If a set member is presented as an input, then one good and one weak equivalence class is defined.
If Boolean no. is provided as an input condition, then one good and one weak equivalence class is defined.
Step-by-Step Process of Equivalence Partitioning:
Identify the input field: Determine the input field to be tested, such as the username field in our example.Define equivalence classes: Categorize the possible input values into distinct equivalence classes. Each class represents a set of inputs with similar behavior or characteristics.Determine representative values: Select expected values from each equivalence class. These values should cover the boundary conditions and critical scenarios within each class.Create test cases: Generate cases covering each equivalence class. For example, one test case would include a valid username, another would have an invalid username and a third test case would cover an empty username.Execute the test cases: Run the test cases using the defined equivalence classes to validate the system’s behavior. Observe and record the results for each test case.By following this step-by-step process, testers can effectively apply Equivalence Partitioning to streamline test case design and achieve comprehensive test coverage while minimizing redundancy.Advantages of Equivalence Partitioning:
- Enhanced Test Coverage: Equivalence partitioning allows testers to cover a wide range of input values by selecting representative test cases from each equivalence class, ensuring comprehensive coverage while minimizing redundant testing.
- Efficiency in Test Case Design: By dividing input values into equivalence classes, test case design becomes more structured and systematic. It helps testers identify critical and boundary values for each class, enabling focused testing on potential areas of failure.
- Time and Effort Savings: Equivalence partitioning helps optimize testing efforts by reducing the number of test cases needed while maintaining sufficient coverage. This saves time and effort, making the testing process more efficient.
- Defect Detection: Equivalence partitioning increases the likelihood of detecting defects by targeting specific equivalence classes and their boundaries. Testers can identify potential issues or failures by testing representative values from each class.
Disadvantages of Equivalence Partitioning:
Limited to Input Values: Equivalence Partitioning primarily focuses on input values and their equivalence classes. It may not address other factors, such as system behavior or interaction between components, which can also contribute to defects.Complex Scenarios: Defining accurate and comprehensive equivalence classes can be challenging in complex scenarios with multiple inputs or dependencies. It requires careful analysis and consideration of various factors, potentially increasing the complexity of the testing process.Requirement for Domain Knowledge: Equivalence Partitioning relies on domain knowledge and understanding of the system under test. Testers need to clearly understand the input values and their classifications to identify and define equivalence classes accurately.Potential for Overlooking Defects: While Equivalence Partitioning improves test coverage, it does not guarantee the detection of all defects. There is a possibility of overlooking specific scenarios or edge cases that fall outside the defined equivalence classes.By understanding the advantages and disadvantages of Equivalence Partitioning, testers can make informed decisions about when and how to apply this technique in their testing approach effectively.
These conditions may not always be true however testers can use better partitions and also test some more conditions within those partitions to confirm that the selection of that partition is fine.
Lets take some examples:
A store in city offers different discounts depending on the purchases made by the individual. In order to test the software that calculates the discounts, we can identify the ranges of purchase values that earn the different discounts. For example, if a purchase is in the range of $1 up to $50 has no discounts, a purchase over $50 and up to $200 has a 5% discount, and purchases of $201 and up to $500 have a 10% discounts, and purchases of $501 and above have a 15% discounts.
Now we can identify 4 valid equivalence partitions and 1 invalid partition as shown below.
Invalid Partition | Valid Partition(No Discounts) | Valid Partition(5%) | Valid Partition(10%) | Valid Partition(15%) |
---|---|---|---|---|
$0.01 | $1-$50 | $51-$200 | $201-$500 | $501-Above |