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)

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.