**Boundary Value Analysis and Equivalence Partitioning explained with a simple example:**

Boundary Value Analysis and Equivalence Partitioning are both test case design strategies in Black-Box Testing.

This tutorial will explain all about Boundary Value Analysis and Equivalence Partitioning in detail along with simple examples for your easy understanding.

**Let’s start!!**

### Equivalence Partitioning

In this method, the input domain data is divided into different equivalence data classes. This method is typically used **to reduce the total number of test case**s to a finite set of testable test cases, still covering maximum requirements.

In short, it is the process of taking all possible test cases and placing them into classes. One test value is picked from each class while testing.

__ For example,__ if you are testing for an input box accepting numbers from 1 to 1000 then there is no use in writing thousands of test cases for all 1000 valid input numbers plus other test cases for invalid data.

Using the Equivalence Partitioning method above, test cases can be divided into three sets of input data called classes. Each test case is a representative of the respective class.

So in the above example, we can divide our test cases into three equivalence classes of some valid and invalid inputs.

**Test cases for input boxes accepting numbers between 1 and 1000 using Equivalence Partitioning:**

**#1)** One input data class with all valid inputs. Pick a single value from the range of 1 to 1000 as a valid test case. If you select other values between 1 and 1000, then the result is going to be the same. So one test case for valid input data should be sufficient.

**#2)** Input data class with all values below the lower limit. i.e., any value below 1, as an invalid input data test case.

**#3)** Input data with any value greater than 1000 to represent the third invalid input class.

So using Equivalence Partitioning, you have categorized all possible test cases into three classes. Test cases with other values from any class should give you the same result.

We have selected one representative from each input class to design our test cases. Test case values are selected in such a way that the largest number of attributes of equivalence class can be exercised.

Equivalence Partitioning uses the fewest test cases to cover the maximum requirements.

### Boundary Value Analysis

It’s widely recognized that the input values at the extreme ends of the input domain cause more errors in the system.

More application **errors occur at the boundaries** of the input domain. ‘Boundary Value Analysis’ Testing technique is used to identify errors at boundaries rather than finding those that exist in the center of the input domain.

Boundary Value Analysis is the next part of Equivalence Partitioning for designing test cases where test cases are selected at the edges of the equivalence classes.

**Test cases for input box accepting numbers between 1 and 1000 using Boundary value analysis:**

**#1)** Test cases with test data exactly as the input boundaries of input domain i.e. values 1 and 1000 in our case.

**#2)** Test data with values just below the extreme edges of input domains i.e. values 0 and 999.

**#3)** Test data with values just above the extreme edges of the input domain i.e. values 2 and 1001.

Boundary Value Analysis is often referred to as part of Stress and Negative Testing.

**Note:** There is no hard-and-fast rule to test only one value from each equivalence class you created for input domains. You can select multiple valid and invalid values from each equivalence class according to your needs and previous judgments.

__ For example,__ if you divide 1 to 1000 input values invalid data equivalence class, then you can select test case values like 1, 11, 100, 950, etc. Same case for other test cases having invalid data classes.

This should be a very basic and simple example to understand the Boundary Value Analysis and Equivalence Partitioning concept.

*Share your examples in the comments section below. *