# Software Test Design Techniques

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. In short this method is typically used to reduce the total number of test cases to a finite set of testable test cases, still covering maximum requirements.

E.g.: If you are testing for an input box accepting numbers from 1 to 1000 then there is no use in writing thousand test cases for all 1000 valid input numbers plus other test cases for invalid data.

Using equivalence partitioning method above test cases can be divided into three sets of input data called as classes. Each test case is a representative of respective class.
So in above example we can divide our test cases into three equivalence classes of some valid and invalid inputs.

Test cases for input box accepting numbers between 1 and 1000 using Equivalence Partitioning:
1) One input data class with all valid inputs. Pick a single value from range 1 to 1000 as a valid test case. If you select other values between 1 and 1000 then result is going to be same. So one test case for valid input data should be sufficient.
2) Input data class with all values below lower limit. I.e. any value below 1, as a invalid input data test case.
3) Input data with any value greater than 1000 to represent 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.

Boundary-value Analysis: if there is a range kind of input the technique used by the test engineer to develop the test cases for that range is called as boundary value analysis.

If there is a requirement that the value ranges from 10-300
The tests will be
1. i/p :10= pass
2. i/p : 10-1 = Fail
3. i/p : value btn 11-299 , any one value - Pass
4. i/p : 300 = pass
5. i/p 300+1 = Fail

Negative Testing:
Characters take around 10… try to enter more than 10 characters…. System will not accept more than 10…try to enter special characters...

Error Guessing:
As the name suggests you can guess the scenario/procedure based on the experience.