In this article we are going to discuss about decision table.
Decision Table :
In simple word, Decision table is useful to reduce our test conditions (test cases) by elimination some test cases which has same result/output. Decision table is also called cause-effect table. We know about the techniques called boundary value analysis and equivalence class partitioning which helps us to derive the test data test. But some time it is not possible to derive the test conditions / test data from this techniques especially when it comes to the combinational testing, and complex business or working flow.
For the complex combination, Decision table is very useful, it’s not only derive the best possible test conditions but also help to reduce the test conditions. As we know, testing the application for each possible data, with each possible conditions is not possible. So we need to think practically and have to select the test cases which will help us to find maximum bugs. And also we need to select the best combination so that it will help to find all the major bugs. Means need not to select all possible combination but small effective combinations.
See the following example which help you to understand how Decision Table works. It will help you to use decision table for test designing :
Let take an example, we have to test a bus searching website, so it has following UI.
Here as we need to put from place and to place so system will find the buses to your location to the location where you want to go.
Here the condition is, GO button will only enable when we put both TO and FROM destination. If any of the text box is empty then Go button will not clickable. In such a situation boundary value analysis and equivalence class partitioning is difficult to use.
Let first find out how many possible combinations are there and how we can use decision table for this situation.
Condition One :
This is our first test condition, when we enter from place in from text box and we do not enter anything in TO textbox then the go button will not be clickable. This is our text condition one. And output should be GO button should be disabled.
Condition Two :
The second text condition is, when we do not enter anything In the FROM and TO text boxes then GO button should be disabled.
Condition Three :
So this is our third condition, where we only enter in the TO place text box, and keeping blank FROM text box. Then output will be, go button should be disabled.
Condition Four :
This is our fourth condition, here we will test the response of the system when we put both FROM and TO places this is a positive test case, and in this case go button should be clickable.
So these are the four conditions we are going to test on system, so how the decision table is helpful to reduce test condition? See the following image.
Here test condition / test combinations 1 to 3 all have same output and The Test Condition four has different output. So we will select only one combination from 1-3 because all has same output and we select fourth condition because it has different output. In this way decision table can help us to reduce combinational test conditions. For this particular condition decision table helped us to reduce test condition from 4 to 2 means 50% less test condition.