Anjali is a Test Engineer, currently working with HCL Technologies Gurgaon. She Joined HCL in Oct 07. She has more than two years of experience in Testing. Prior to HCL, She was working with Aircom International Gurgaon. She can be reached at a.kakkar08@gmail.com
Equivalence Partitioning

Before actually starting off the testing, it is good to have optimum test cases in place which not only cover all the desired features but also are sufficient to detect good quality bugs. There are many design techniques for writing test case. One of the most popular among them is Equivalence Partitioning. It is a Black-box (Specification Based) Test Case Design Technique with two primary goals

  1. To reduce the number of test cases to necessary minimum.
  2. To select the right test cases to cover all possible scenarios.  

Key Points :

1.       Although in rare cases equivalence partitioning is also applied to outputs, typically it is applied to the inputs of a component being tested.

2.       This method divides the input domain of a program into classes of data from which test cases can be derived.

3.       It is based on an evaluation of equivalence classes for an input condition. An equivalence class represents a set of valid or invalid states for input conditions. An input has certain ranges which are valid and other ranges which are invalid

4.       Supplemented by BVA( Boundary Value Analysis).Having determined the partitions of possible inputs the method of boundary value analysis has to be applied to select the most effective test cases out of these partitions

This may be best explained by the following example of a function which accept input parameter "month" of a date. The valid range for the month is 1 ( January ) to 12 ( December ). This valid range is called a partition. In this example there are two further partitions of invalid ranges. The first invalid partition would be <= 0 and the second invalid partition would be >= 13. You can also have invalid partition for non-digit input as well.

        .... -2 -1  0 1 .............. 12 13  14  15 ..... 
      --------------|-------------------|---------------------
 invalid partition 1     valid partition    invalid partition 2

 

Why Equivalence Partitioning

The testing theory related to equivalence partitioning says that only one test case of each partition is needed to evaluate the behavior of the program for the related partition. In other words it is sufficient to select one test case out of each partition to check the behavior of the program. To use more or even all test cases of a partition will not find new faults in the program. The values within one partition are considered to be "equivalent". Thus the number of test cases can be reduced considerably.

An additional effect by applying this technique is that you also find the so called "dirty" test cases. An inexperienced tester may be tempted to use input as 1 to 12 and forget to select some invalid partitions all together. This would lead to a huge number of unnecessary test cases on the one hand, and lack of test cases on the other hand.

Applicability in White Box

The tendency is to relate equivalence partitioning to the so called black box testing which is strictly checking a software component at its interface, without consideration of internal structures of the software. But having a closer look on the subject there are cases where it applies to the white box testing as well. Imagine an interface to a component which has a valid range between 1 and 12 like in the example above. However, internally the function may have a differentiation of values between 1 and 6 and the values between 7 and 12. Depending on the input value the software internally will run through different paths to perform slightly different actions. Regarding the input and output interfaces to the component this difference will not be noticed, however in your white-box testing you would like to make sure that both paths are examined. To achieve this it is necessary to introduce additional equivalence partitions which would not be needed for black-box testing. For this example this would be:

        .... -2 -1  0 1 ..... 6 7 ..... 12 13  14  15 ..... 
      --------------|---------|----------|----------------
 invalid partition 1      P1         P2     invalid partition 2
           TC1          TC2         TC3         TC4 
                      valid partitions
 

To check for the expected results you would need to evaluate some internal intermediate values rather than the output interface.

Types of Equivalence Classes

  • Continuous classes run from one point to another, with no clear separations of values. An example is a temperature range.
  • Discrete classes have clear separation of values. Discrete classes are sets, or enumerations.
  • Boolean classes are either true or false. Boolean classes only have two values, either true or false, on or off, yes or no. An example is whether a checkbox is checked or unchecked.

Thus, Equivalence classes may be defined according to the following guidelines:

  1. If an input condition specifies a range, at the minimum one valid and two invalid equivalence classes can be defined.
  2. If an input condition requires a specific value, then one valid and one invalid equivalence class can be defined.
  3. If an input condition specifies a member of a set, then one valid and one invalid equivalence class can be defined
If an input condition is Boolean, then one valid and one invalid equivalence class can be defined.
 
Recent Updates
Flash Objects and Selenium
Continuous Integration
Selenium Workshop
Delicious Testing
Pattern for automated testing of web applications
Exploratory Testing
 
Read More
Accessibility API Testing Article Backword BigBang Blackbox Blog Bottomup Boundary CaseStudies Certification DefectReport DistanceTest Equivalence FitNesse Geeks Graybox Guerrilla Testing Tips GUI HTA Humor Hybrid Internationalization Installation Integration Is it done? JUnit Measurement Mercury Quality Centre News One CPU better than two Patent PatternForAutomation Performace Checklist Rational Test Suite Regression Requirement Verification Research Rational Functional Tester Security Selenium Selenium Workshop SilkTest System Testing Templates TestComplete Tools Testing Types TG Tips For Automation Testing Tools In News Testing Terms In News Testometer Test Plan Top Down Integration Trait UAT UI Testing CheckList Unit Testing Usability VMWare Web Application Security Web Application Testing Checklist Whitebox Testing
Disclaimer  |  Privacy Policy  |  g e e k AT T e s t i n g G e e k DOT c o m
© Copyright 2008, www.TestingGeek.com