Test Design techniques:

Test Design techniques: The reason for testing software is basically to ensure the system is working as expected with as few problems as possible. There are numerous tests design techniques that can be used to achieve this and each of them have their own strengths and weakness. Testing cannot be exhaustive so it is important to understand these techniques so that the appropriate ones can be used at the right time to limit time wasting during testing. The Testing Techniques can be broadly categorised into two: Static Testing and Dynamic Testing. Examples of Static Testing Techniques are: Informal review Walkthroughs Technical Reviews Inspection Data Flow Control Flow Examples of Dynamic Testing Techniques are: Equivalence Partitioning Boundary Value Analysis Decision Tables Use Case testing State Transition Error Guessing Exploratory testing Statement Testing Condition Multiple condition Statement Decision In this blog we are going to Focus on the two most commonly used test design techniques in Functional testing. They are Equivalence Partitioning and Boundary Value Analysis. Equivalence Partitioning: This is a technique whereby test conditions are partitioned or grouped as the same or equivalence. Each partition can be tested with an input data and assume similar result will be achieved if any other input data from the same partition was used. In other words, if input data from a partition passes, all the other data from the same partition will pass if used. Similarly, if a data from a partition fails, all the other data from the same partition will fail. So, this technique is commonly used where there is range in the input field. A very simple example is a game that require players to enter any 2 positive numbers from 01 to 99 as input data. Breaking this down will mean we can have numbers between 1 and 99 to play the game. We can have 3 Partitions or Groups to cover this test. These will consist of a Valid partition of (1 -99) and 2 invalid partitions (say Partition 2 is: <1 and Partition 3 is: >99). Any number from 1 to 99 will satisfy Partition1 and any number less than 1 will satisfy Partition 2 while any number > 99 will satisfy Partition3. For this example, possible input data for Partition 2, Partition 1 and Partition 3 will be 10, -10 and 110 respectively. Boundary Value Analysis: Basically, Boundary value analysis provide coverage for conditional statements and prevents mistake that normally happens when wrong operators are used in the code. It is a very effective testing technique that can be used at all levels of testing. t is similar and linked to Equivalence partitioning but focuses on the boundaries only, so they normally go hand in hand with Equivalence partitioning. For the Example above, the lower boundary values will be -1, 1 and 2 . For the upper boundary we will have 98, 99 and 100 as the values to test (assuming no fractions are allowed). So we will expect -1 and 100 to fail.