ISTQB question clarification (determination of tests in the program)
Analyze the following highly simplified procedure:
Ask: "What type of ticket do you require, single or return?" IF the customer wants "return" Ask: "What rate, Standard or Cheap-day?" IF the customer replies "Cheap-day" Say: "That will be 11:20" ELSE Say: "That will be 19:50" ENDIF ELSE Say: "That will be 9:75" ENDIF
Now decide the minimum number of tests that are needed to ensure that all the questions have been asked, all combinations have occurred and all replies given.
The answer is 3. Please help with this: why the answer is 3? I do not know to justify.
The canonical answer would be 3:
- "That will be 11:20" will happen only when "return" and "cheap-day" happens.
- "That will be 19:50" will happen only when "return" and "cheap-day" does not happen.
- "That will be 9:75" will happen only when "return" does not happen.
However, depending on your context, you may find more situations through exploration:
- How long will the system wait for an answer?
- Will this be different on the first and second questions?
- Answer buffers may cause crashes
- What happens if the input or output devices break?
- What happens if the system is shutdown during processing or question answering?