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
|
|
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
-
To
reduce
the
number
of test
cases to
necessary
minimum.
-
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:
-
If an input condition
specifies a range,
at the minimum one valid
and two invalid
equivalence classes can
be defined.
-
If an input condition
requires a specific
value, then one
valid and one invalid
equivalence class can be
defined.
-
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.
|