boundary values software testing

Software Testing - Boundary Values Testing


WHAT IS BOUNDARY VALUE ANALYSIS IN SOFTWARE TESTING?

Concepts:   Boundary value analysis is a methodology for 
designing test cases that concentrates software testing effort on cases 
near the limits of valid ranges Boundary value analysis is a method
 which refines equivalence partitioning.  Boundary value analysis 
generates test cases that highlight errors better than equivalence
 partitioning. The trick is to concentrate software testing efforts at 
the extreme ends of the equivalence classes.  At those points 
when input values change from valid to invalid errors are most 
likely to occur.  As well, boundary value analysis broadens the 
portions of the business requirement document used to generate tests.
  Unlike equivalence partitioning, it takes into account the output
 specifications when deriving test cases.

HOW DO YOU PERFORM BOUNDARY VALUE ANALYSIS?

Once again, you'll need to perform two steps: 
1.	Identify the equivalence classes. 
2.	Design test cases. 
But the details vary. Let's examine each step. 

STEP 1:    IDENTIFY EQUIVALENCE CLASSES

Follow the same rules you used in equivalence partitioning.  However, 
consider the output specifications as well.  For example, if the output 
specifications for the inventory system stated 
that a  report on inventory should indicate a total quantity for all
products no  greater than 999,999, then you d add the following classes 
to the ones you  found previously:  
6.  The valid class   ( 0 < = total quantity on hand < = 999,999    )
7.  The invalid class   (total quantity on hand <0)
8.  The invalid class   (total quantity on hand> 999,999 )

STEP 2:    DESIGN TEST CASES  

In this step, you derive test cases from the equivalence classes.  The 
process is similar to that of equivalence partitioning but the rules for 
designing test cases differ.  With equivalence partitioning, you may select 
any test case within a range and any on either side of it  with boundary 
analysis, you focus your attention on cases close to the edges of the range.
The detailed rules for generating test cases follow:


RULES FOR TEST CASES
1. If the condition is a range of values, create valid test cases for each 
end of the range and invalid test cases just beyond each end of the
range.  For example, if a valid range of quantity on hand is  -9,999 
through 9,999, write test cases that include: 
1.	the valid test case  quantity on hand is  -9,999, 
2.	the valid test case  quantity on hand is 9,999, 
3.	the invalid test case  quantity on hand is -10,000  and 
4.	the invalid test case  quantity on hand is   10,000 

You may combine valid classes wherever possible, just as you did 
with equivalence partitioning, and, once again, you may not combine 
invalid classes.  Don�t forget to consider output conditions as well.  In 
our inventory example the output conditions generate the following test cases:

1.	the valid test case total quantity on hand is  0, 
2.	the valid test case total quantity on hand is 999,999 
3.	the invalid test case total quantity on hand is -1  and 
4.	the invalid test case total quantity on hand is  1,000,000



2.   A similar rule applies where the, condition states that the number of
values must lie within a certain range  select two valid test cases, one
for each boundary of the range, and two invalid test cases, one just
below and one just above the acceptable range .
3. Design tests that highlight the first and last records in an input or
output file. 
4.Look for any other extreme input or output conditions, and generate a
test for each of them.

SUMMARY
In this lesson, you learned 

how boundary value 
analysis refines these test cases and derives others by examining output 
specifications as well as inputs.  Using either of these techniques,
preferably, the second, wherever possible , you'll be able to test your,
system.  But what if the system is complex? In that case, there are bound 
to be many modules to test  How do you plan the order in which to test them? 
That is the subject of the next lesson. 

Definition of Boundary Value Analysis from our Software Testing Dictionary: Boundary Value Analysis (BVA). BVA is different from equivalence partitioning in that it focuses on "corner cases" or values that are usually out of range as defined by the specification. This means that if function expects all values in range of negative 100 to positive 1000, test inputs would include negative 101 and positive 1001. BVA attempts to derive the value often used as a technique for stress, load or volume testing. This type of validation is usually performed after positive functional validation has completed (successfully) using requirements specifications and user documentation
An experienced tester would consider write some Boundary Value test cases that cover the following scenarios:
Using Not a Number. ( NaN variables )
Using floating-point values (a number with a decimal point)
You can use tools like FsCheck to generate a random values for testing to populate Boundary Values of your system under test.

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 BOUNDARY VALUE ANALYSIS IN SOFTWARE TESTING.


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