# Test design techniques — Boundary value analysis and Equivalence partitioning

The fastest way to test input fields are a test deign techniques — boundary value analysis and equivalence partitioning. Father we will explain how those techniques work and why we need to execute them.

### Equivalence partitioning

Equivalence partition — means that the inputs and outputs of the component under test can be partitioned into ordered sets with identifiable boundaries. The values in the same set will be treated in the same way, that’s why we need to check only one value to know the result of testing the whole equivalence class.

For example:

You have the input field when you enter the site. There you must type your age. SRS says that when the user is under 18 he isn’t allowed to enter the site and no other information. We can divide all inputs in to ordered sets (equivalence classes). They will be from 0 till 18 and from 19 till for example 120 years. We also can use a negative testing and use equivalence classes from — ∞ (infinity) to -1 and from 121 to + ∞ (infinity).

When we know all possible equivalence classes we need to check their boundaries, because a lot of bugs appear in this place and, as you know, the earlier bug was found the chipper it is for the company.

To know the result of testing in this equivalence classes we need to check such inputs: -2, 10, 45, 122. This type of testing is called equivalence partitioning.

### Boundary value analysis

Boundary value analysis — is made for testing the inputs and outputs behavior on the boundaries and outside of them in the equivalence classes.

For example:

We will take the example that was earlier with a site and an input field. To know the behavior of the program on the boundaries we need to check them out and the values outside them.

That is why we need to check such values for valid equivalence classes:

• -1, 0, 1
• 17, 18, 19
• 18, 19, 20
• 119, 120, 121

If our test show that the boundaries work correctly to requirements we can move farther with testing other functionality.