This time, we will introduce a decision table that organizes complicated specifications and prevents the omission of conditions. When conducting tests, you need to know the exact specifications of your system. However, when the specifications become complicated, it is easy for the conditions to be overlooked. The decision table is what you want to use in such cases.
Overview of “decision table”
The decision table organizes how the software operates (outputs) under various conditions (inputs) in a tabular format, and is used to represent the functional specifications of the software.
Let’s look at an example.
Suppose the taxi surcharge specifications are defined as follows:
・ Regular charge from Monday to Friday, extra charge on weekends and public holidays
・ Normal charge from 7:00 to 21:59, additional charge at other times (midnight / early morning)
In this way, the decision table makes it clear whether the charge is a regular charge or an extra charge for each combination of the conditions of the day of the week and time.
In the decision table explained here, the value to be entered in the condition column was two values of Y / N, but even if a condition with an answer of three or more weights is adopted, the rules should be translated using the concept of a correspondence class. It is possible to make the decision table easier to see.
A test that utilizes this decision table is called a “decision table test”. The combination of conditions and actions identified in the decision table is easy to expand horizontally to test cases and is highly comprehensive, so the decision table test is an effective method when you want to check all patterns.
Procedure for creating a decision table
The decision table is generally created by following the steps below.
 Summarize conditions and actions
Enter the conditions that can occur in the system to be analyzed in the “condition description section” and the actions that can be taken in the “action specification section”.
 Enter the combination of conditions
consider all combinations of conditions, and if the conditions are met, enter “Y” (Yes) or T (True), and if not, enter “N” (No) or “F” (False) in the “Condition specification section”. To do. Also, write the rule name (a combination of conditions and the corresponding action is called a rule) in the top row of the table.
 Fill in the operation designation part
Enter what kind of action will occur in the “action specification section” according to the combination of conditions entered in  (“Y” if the action occurs, “-” if it does not occur).
If the decision table gets bigger
One of the purposes of the decision table is to “organize complex specifications in an easy-to-understand manner.”
If the size of the decision table becomes large, you can make it easier to see by devising the following.
1. Delete inconsistent conditions
If you create a decision table and a combination of logically inconsistent conditions occurs, you can reduce the number of items in the table by deleting the conditions.
For the sample, suppose a mobile operator offers a bargain for children and elders, and the discount is applied to users beneath the age of 15 or over the age of 60.
At this time, if a decision table is created with the conditions of “15 years old or younger” and “60 years old or older” and “discount rate applied” as an action, there may
be possibilities where both “15 years old or more youthful” and “60 years old or older” are Y. Since there is no such thing, this situation can be skipped.
2. Simplify the table
You can also simplify multiple rules together to make the decision table easier to see.
For example, suppose an amusement park has a rule that you must be in the third grade of elementary school or above and be at least 140 cm tall to ride a go-kart.
If you create a decision table with “go-kart ride” as an action on the condition that “elementary school third grade or above” and “height 140 cm or more”,
“elementary school third degree or above” is N, “height 140 cm or more” is Y, and “go-kart passage”. Is N, “3rd grade or above” is N, “height 140cm or more” is N, “go-kart ride” is N, “3rd stage or above” is N, “height 140cm or more” is “- “(Meaning Y / N),” Go-kart ride “can be integrated into one rule, N.
3. Split the table
Splitting the table is effective when there are conditions that are not relevant to other conditions (highly independent conditions). You can make the table easier to read by splitting it into two tables, one created by removing the highly independent conditions from the original table and the other created only by the highly independent conditions.
The decision table can be used for other purposes
[Usage 1] Analyze the cause of the found defect
If you perform a decision table test and find a defect, you can look for conditions in the decision table that are similar to the conditions under which the defect occurs and examine the differences to identify potential defects.
By organizing the relationship between conditions and actions in a table, it is easier to find out where the problem is in the system from the appearance of the defect result, and there is an advantage that the detection speed and certainty of the defect are improved. ..
[Usage 2] Find omissions/ambiguities in specifications
Checking that there are no errors or deficiencies in the development specifications without running the software is called static testing, and the decision table can be used in this static test.
In the work of identifying all combinations of conditions in the decision table and allocating the expected actions individually, the part “how to act under these conditions is not written in the specifications or is ambiguous” You can find out.
If there are any omissions or ambiguities in the specifications, it will directly lead to a defect. If such defects are found and dealt with before the test is carried out, such as in the specification definition and design stage, the number of bugs found in the test will be reduced as a result, and the test execution efficiency will be improved, the test time will be reduced, and the quality will be improved. It leads to stabilization.
This time, I introduced how to use the decision table. Decision tables help you organize complex conditions to prevent test omissions and identify the source of defects. How about using the decision table to improve the quality of the system and prevent delays in the test schedule?
If you ever want to know about similar things, check out the Facebook page Maga Techs