Boundary-value Analysis - Application

Application

The expected input and output values to the software component should be extracted from the component specification. The values are then grouped into sets with identifiable boundaries. Each set, or partition, contains values that are expected to be processed by the component in the same way. Partitioning of test data ranges is explained in the equivalence partitioning test case design technique. It is important to consider both valid and invalid partitions when designing test cases.

The demonstration can be done using a function written in c language

int safe_add( int a, int b ) { int c = a + b ; if ( a >= 0 && b >= 0 && c < 0 ) { fprintf ( stderr, "Overflow!\n"); } if ( a < 0 && b < 0 && c >= 0 ) { fprintf ( stderr, "Underflow!\n"); } return c; }

On the basis of the code, the input vectors of are partitioned. The blocks we need to cover are the overflow statement and the underflow statement and neither of these 2. That gives rise to 3 equivalent classes, from the code review itself.


we note that there is a fixed size of Integer (computer science) hence:- 
INT\_MIN \le x + y \le INT\_MAX

We note that the input parameter a and b both are integers, hence total order exists on them. When we compute the equalities:-

 x + y = INT\_MAX


INT\_MIN = x + y

we get back the values which are on the boundary, inclusive, that is these pairs of are valid combinations, and no underflow or overflow would happen for them.

On the other hand:-

 x + y = INT\_MAX + 1
gives pairs of which are invalid combinations, Overflow would occur for them. In the same way:-

 x + y = INT\_MIN - 1
gives pairs of which are invalid combinations, Underflow would occur for them.

Boundary values (drawn only for the overflow case) are being shown as the orange line in the right hand side figure.


For another example, if the input values were months of the year, expressed as integers, the input parameter 'month' might have the following partitions:

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

The boundary between two partitions is the place where the behavior of the application changes and is not a real number itself. The boundary value is the minimum (or maximum) value that is at the boundary. The number 0 is the maximum number in the first partition, the number 1 is the minimum value in the second partition, both are boundary values. Test cases should be created to generate inputs or outputs that will fall on and to either side of each boundary, which results in two cases per boundary. The test cases on each side of a boundary should be in the smallest increment possible for the component under test, for an integer this is 1, but if the input was a decimal with 2 places then it would be .01. In the example above there are boundary values at 0,1 and 12,13 and each should be tested.

Boundary value analysis does not require invalid partitions. Take an example where a heater is turned on if the temperature is 10 degrees or colder. There are two partitions (temperature<=10, temperature>10) and two boundary values to be tested (temperature=10, temperature=11).

Where a boundary value falls within the invalid partition the test case is designed to ensure the software component handles the value in a controlled manner. Boundary value analysis can be used throughout the testing cycle and is equally applicable at all testing phases.

Read more about this topic:  Boundary-value Analysis

Famous quotes containing the word application:

    My business is stanching blood and feeding fainting men; my post the open field between the bullet and the hospital. I sometimes discuss the application of a compress or a wisp of hay under a broken limb, but not the bearing and merits of a political movement. I make gruel—not speeches; I write letters home for wounded soldiers, not political addresses.
    Clara Barton (1821–1912)

    Courage is resistance to fear, mastery of fear—not absence of fear. Except a creature be part coward it is not a compliment to say it is brave; it is merely a loose application of the word. Consider the flea!—incomparably the bravest of all the creatures of God, if ignorance of fear were courage.
    Mark Twain [Samuel Langhorne Clemens] (1835–1910)

    The main object of a revolution is the liberation of man ... not the interpretation and application of some transcendental ideology.
    Jean Genet (1910–1986)