dtgwt
Simple Decision Table to "Given" , "When" and "Then"
How to use
- Step 1. Download sample_dt.xlsx
- Step 2. Modify as you like
- Step 3. Go to Table to Markdown
- Step 4. Copy Step 2 to "Paste Table Here!" (Please don't forget about FIRST LINE)
- Step 5. Click "Convert M↓"
- Step 6. Click "Copy"
- Step 8. Go to Dtgwt page
- Step 9. Copy Step 6 to the "textarea"
- Step 10. Click "Scenario output"
- Step 11. Copy "Output Scenarios" as you like
Background
Example App
Now, suppose you have a simple app with one form and two buttons.
- The number "0" is entered as the initial value.
- When the "+" button is clicked, the number is incremented.
- When the "-" button is clicked, the number is decremented.
- The minimum value of the number is "0".
- The maximum value of the number is 255.
- If a non-numeric character is entered, the message "Invalit value" will be displayed.
Decision table
You have written the following decision table (or something like it) to test this app.
Condition | |||||||||||
Initial input is "0" | Y | Y | Y | Y | |||||||
Initial input is "1" | Y | Y | |||||||||
Initial input is "254" | Y | Y | |||||||||
Initial input is "255" | Y | Y | |||||||||
Action | |||||||||||
Click "+" | Y | Y | Y | Y | |||||||
Click "-" | Y | Y | Y | Y | |||||||
Modify Initial input to "AB" | Y | ||||||||||
Modify Initial input to "1%" | Y | ||||||||||
Result | |||||||||||
Input | 1 | 0 | 2 | 1 | 255 | 253 | 255 | 254 | 0 | 0 | |
Error Message | N/A | N/A | N/A | N/A | N/A | N/A | N/A | N/A | Invalid Input | Invalid Input |
Problem happened
However, your test management tool only accept to import scenario-based format as shown below. you needs to be converted to the following format
Scenario No | Test conditions | Step description | Step expected result |
---|---|---|---|
1 | Given Initial input is "0" | When Click "+" | Then Input:1 and Error Message:N/A |
2 | Given Initial input is "0" | When Click "-" | Then Input:0 and Error Message:N/A |
3 | Given Initial input is "1" | When Click "+" | Then Input:2 and Error Message:N/A |
4 | Given Initial input is "1" | When Click "-" | Then Input:1 and Error Message:N/A |
5 | Given Initial input is "254" | When Click "+" | Then Input:255 and Error Message:N/A |
6 | Given Initial input is "254" | When Click "-" | Then Input:253 and Error Message:N/A |
7 | Given Initial input is "255" | When Click "+" | Then Input:255 and Error Message:N/A |
8 | Given Initial input is "255" | When Click "-" | Then Input:254 and Error Message:N/A |
9 | Given Initial input is "0" | When Modify Initial input to "AB" | Then Input:0 and Error Message:Invalid Input |
10 | Given Initial input is "0" | When Modify Initial input to "1%" | Then Input:0 and Error Message:Invalid Input |
The only way to do this is to create a new tab in the xlsx containing the decision table and convert it one by one by your hands.
It should make you annoying right?
Solution
I have created a simple web application to solve the above problem.
The input is also in markdown, which is really not very user-friendly (lol).
I'll make a tool that converts xlsx to markdown to solve this problem later on.
(Solved 2022 Feb 13th have a look here)
You can find the source code here The demo application is here
I made this in about two hours in mess. If you notice anything, please give me your pull request for anytime.
{% include form.html %}