There are many test case design techniques. In this article, we will learn how to use Decision Table technique effectively to write test cases for an application with complex business logic.
Decision table testing is an easy and confident approach to identify test scenarios for complex business logic.
Here is an illustration with example:
We all know that business rules and validations take up major portion of the requirements given by the customers. While observing how these requirements are represented and communicated to the entire project team by Business Analyst’s or customers, we come to know that most of such business rules and logic are presented in a logical process flow diagram.
A logical process flow diagram for a complex requirement comprises of many branches, nodes and decision boxes. Hopefully we testers are expected to cover all those branches and touch every nook and corner of such a complex logical tree. I have also faced such complex business flows and tried many test case/test scenario preparation techniques for making the process easier.
Finally, I found decision table testing technique to be highly useful in this aspect. Here is how decision table technique can make the test scenario preparation for complex business logic easier.
E.g. writing test cases for a login screen using the Decision Table technique:
Let’s take an Decision Table example of below business requirement for a login screen.
Fig: 1.0 Sample business flow diagram
The first step we do is to name all the branches and leaves with numbers or alphabets as below.
1, 2, 3 are the leaves and a, b, c are the branches.
Then, we have to create a decision table as below: (Click to enlarge image)
Fig 1.1 Decision table for business flow fig 1.0
Points to remember:
- All the validations specified in the decision boxes should be made as columns in table.
- All the results (leaves) mentioned in flow diagram should be covered in the decision table.
- All combinations of inputs needed to obtain a certain result shall be mentioned in the combinations column and can be included while writing the test cases.
- After completing the decision table one has to just verify whether all the branches and leaves in the logical tree are covered.
Advantages of Using Decision Table Technique:
#1) Any complex business flow represented as a diagram can be easily covered in this technique.
#2) It provides quick confidence on the test cases. One need not have to review his own test cases multiple times to gain confidence.
#3) Easy to understand. Anyone can make test cases from this decision table template.
#4) Rework on the test cases and test scenario can be totally avoided as it gives complete coverage at the first shot.
#1) Certain test case preparation techniques like Boundary value analysis, equivalence partitioning cannot be directly accommodated in this template. But, one can note it down in the combinations column and use them while writing test cases.
Other Test Case Design Techniques:
1) Boundary value analysis: is software testing technique in which test cases are designed to include representatives of boundary values in and out of a given range.
2) Equivalence partitioning: also, called Equivalence Class Partitioning is a software testing technique that divides the given condition into partitions and one input data from each partition can be chosen for testing.
3) State transition testing: is a black box testing technique, which can be used to design test cases for a system that acquires finite number of states and can transit from one state to another upon specific events.
4) Error Guessing: is a technique where experience of a tester is used to find the errors or part of application with highest possibility of finding errors. This is skill-based technique without any rules.
5) Use case testing: In this technique, use cases/scenarios are used to write the test cases. Interaction of users and system is described in a use case.
Some more test design techniques:
6) Statement coverage
7) Condition Coverage
8) Exploratory testing
Why other test case design techniques for business logic cannot prove to be useful as Decision Tables?
1) Boundary value analysis and Equivalence class partitioning are meant for numeric ranges and length. Both of these techniques alone cannot ensure 100% test coverage for business rules.
2) Error guessing is more about experience. Though experience is required, it cannot prove to be everything.
3) With state transition testing technique, one can ensure that all parts of the logical tree are covered but it does not suggest document or artifact as decision table technique ensures coverage with a decision table (fig 1.1).
For writing test cases for business logic, it is advisable to follow below steps to prepare test cases so as to ensure maximum test coverage:
Step #1) Use decision table test case design technique to attain 100% logical coverage.
Step #2) Boundary value analysis and Equivalence partitioning for covering various ranges of inputs.
Step #3) Combinations and permutations for field level validations (though not all permutations are required).
Step #4) Error guessing (apart from the errors that can be identified from the above three steps) with experience as a final touch
With the right combination of all these techniques, I hope you will be able to discover almost all test scenarios for any application under test.
About the author: Hari Narayan is a software testing professional with more than 3 years of work experience on writing test scenarios for complex business logic. He is currently working with Plintron Global Technologies.
Let us know which test cases design technique you use most often on your project? And which is the best method according to your experience?