Equivalence Class Partitioning
• Learn what is meant by equivalence partitioning
• Design test cases using equivalence partitioning
```WHAT IS EQUIVALENCE PARTITIONING?
Concepts:   Equivalence partitioning is a method for deriving test cases.  In this
method, classes of input conditions  called equivalence classes  are
identified such that each member of the class causes the same kind of
processing and output to occur.
In this method, the tester identifies various equivalence classes for partitioning.  A class
is a set of input conditions that are is likely to be handled the same way
by the system.  If the system were to handle one case in the class
erroneously, it would handle all cases erroneously.

WHY LEARN EQUIVALENCE PARTITIONING?
Equivalence partitioning drastically cuts down the number of test cases
required to test a system reasonably.  It is an attempt to get a good
'hit rate', to find the most errors with the smallest number
of test cases.

DESIGNING TEST CASES USING EQUIVALENCE PARTITIONING
To use equivalence partitioning, you will need to perform two steps

Identify the equivalence classes
Design test cases

STEP 1: IDENTIFY EQUIVALENCE CLASSES

Take each input condition described in the specification and derive at  least
two equivalence classes for it.  One class represents the set of cases  which
satisfy the condition (the valid class)  and one represents cases  which
do not (the invalid class )
Following are some general guidelines for identifying equivalence classes:
a) If the requirements state that a numeric value is input to the system
and must be within a range of values, identify one valid class  inputs
which are within the valid range  and two invalid equivalence classes
inputs which are too low and inputs which are too high.  For example, if
an item in inventory can have a quantity of - 9999 to + 9999, identify
the following classes:

1. one valid class:   (QTY is greater than or equal to  -9999 and is less
than or equal to 9999).   This is written as (- 9999 < = QTY < = 9999)

2. the invalid class  (QTY is less than  -9999), also written as (QTY <  -9999)
3. the invalid class (QTY is greater than 9999) , also written as (QTY >9999)

b) If the requirements state that the number of items input by the system
at some point must lie within a certain range, specify one valid class
where the number of inputs is within the valid range, one invalid class
where there are too few inputs and one invalid class where there are,
too many inputs.

For example, specifications state that a maximum of  4 purchase orders
can be registered against anyone product.  The equivalence classes are :
the valid equivalence class: (number of purchase orders is greater than or
equal to 1  and less than or equal to  4 , also written as (1   < = no.
of purchase orders < =   4)
the invalid class  (no.  of purchase orders> 4)
the invalid class  (no.  of purchase orders <  1)
c) If the requirements state that a particular input item match one of a
set of values and each case will be dealt with the same way, identify a
valid class for values in the set and one invalid class representing
values outside of the set.  For example, if the requirements state that a
valid province code is ON, QU, and NB, then identify :
the valid class   code is one of  ON, QU, NB
the invalid class   code is not one of  ON, QU, NB
d)  If the requirements state that a particular input item match one of a
set of values and each case will be dealt with differently, identify a
valid equivalence class for each element and only one invalid class for
values outside the set.  For example, if a discount code must be input
as P for preferred customer, R for standard reduced rate, or N
for none, and if each case is treated differently, identify
the valid class   code = P
the valid class   code = R
the valid class   code = N
the invalid class   code is not one of  P, R, N
e)  If you think any elements of an equivalence class will be handled
differently than the others, divide the equivalence class to create an
equivalence class with only these elements and an equivalence class
with none of these elements.  For example, a bank account balance
may be from \$0  up to \$ 1,000,000, and balances \$ 1,000   or over are not
subject to service charges.  Identify :
the valid class:   (\$ 0 < = balance < \$ 1,000)     i.e.,  balance is
between 0  and \$ 1,000 -  not including \$ 1,000
the valid class:   (\$ 1, 000   < = balance < = \$ 1,000,000  i.e.,  balance
is between \$ 1,000    and \$1,000,000    inclusive
the invalid class:   (balance < \$  0)
the invalid class:   (balance> \$ 1,000,000)

A definition of Equivalence Partitioning from our software testing dictionary:
Equivalence Partitioning: An approach where classes of inputs are
categorized for product or function validation. This usually does not include
combinations of input, but rather a single state value based by class. For
example, with a given function there may be several classes of input that may be
used for positive testing. If function expects an integer and receives an
integer as input, this would be considered as positive test assertion. On the
other hand, if a character or any other input class other than integer is
provided, this would be considered a negative test assertion or condition.

```

```Equivalence partitioning definition from From Wikipedia, the free encyclopedia.

A technique in black box testing is equivalence partitioning. Equivalence
partitioning is designed to minimize the number of test cases by dividing
tests in such a way that the system is expected to act the same way for all
tests of each equivalence partition. Test inputs would be selected from each partition.

Equivalence partitions are designed so that every possible input belongs
to one and only one equivalence partition.
```
END Equivalence Class Partitioning

Software Testing Main Page
© January 2002 Alex Samurin http://www.geocities.com/xtremetesting/