A decision table is basically an outstanding technique used in both testing and requirements management. It is a structured exercise. Hence, to prepare requirements when dealing with complex business rules. Also, used in model complicated logic.
Decision Table Testing
A decision table is a good way to deal with different combination inputs with their associated outputs and also called cause-effect table. Decision table testing is black box test design technique to determine the test scenarios for complex business logic.
We can apply Equivalence Partitioning and Boundary Value Analysis techniques to only specific conditions or inputs. Although, if we have dissimilar inputs that result in different actions being taken or secondly we have a business rule to test that there are different combination of inputs which result in different actions. We use decision table to test these kinds of rules or logic.
Importance of Decision Table Testing
Decision tables are very much helpful in test design technique. It helps testers to search the effects of combinations of different inputs and other software states that must correctly implement business rules. It also helps in better test coverage for complex business logic.
Also, provides a regular way of stating complex business rules, that is helpful for developers as well as for testers. Testing combinations can be a challenge, as the number of combinations can often be huge. It assists in development process with developer to do a better job. Testing with all combination might be unrealistic or unfeasible. We have to be happy with testing just a small subset of combinations but making the option of which combinations to test and which to leave out is also significant. If you do not have a efficient way of selecting combinations, an arbitrary subset will be used and this may well result in an ineffective test effort.
A decision table is basically a structured exercise to prepare requirements when dealing with complex business rules. Also, used in model complicated logic.
However, in a system where for each set of input values the system behavior is different, boundary value and equivalent partitioning technique are not effective in ensuring good test coverage.
Advantages of Decision Table Testing
- When the system behavior is different for different input and not same for a range of inputs, both equivalent partitioning, and boundary value analysis will not help. However, decision table can be used.
- The representation is simple so that it can be easily interpreted and is used for development and business as well.
- This table will help to make effective combinations and can ensure a better coverage for testing.
- This technique can ensure the coverage. Hence, in a case we are going for 100% coverage typically when the input combinations are low.
As for its DISADVANTAGE, it only has one. The main disadvantage is that when the number of input increases the table will become more complex.
Understanding Decision Tables
- Decision tables provide a systematic way of stating complex business rules. Which is useful for developers as well as for testers.
- Decision tables help testers explore the effects of combinations of different inputs. And other software states that must correctly implement business rules.
- It helps the developers to do a better job can also lead to better relationships with them. Testing combinations can be a challenge, as the number of combinations can often be huge. Testing all combinations may be impractical if not impossible.However, making the choice of which combinations to test and which to leave out is also important. If you do not have a systematic way of selecting combinations, an arbitrary subset will be used. And this may well result in an ineffective test effort.
How to Use Decision Tables
The first task is to identify a suitable function or subsystem which reacts according to a combination of inputs or events. The system should not contain too many inputs otherwise the number of combinations will become unmanageable.
It is better to deal with large numbers of conditions by dividing them into subsets. And dealing with the subsets one at a time. Once you have identified the aspects that need to be combined, then you put them into a table listing all the combinations of True and False for each of the aspects.
Decision Table is also known as Cause-Effect Table. This test technique is appropriate for functionalities which has logical relationships between inputs (if-else logic). In Decision table technique, we deal with combinations of inputs. To identify the test cases with decision table, we consider conditions and actions. We take conditions as inputs and actions as outputs.