Activity: Model for Testing
(no submission)
Purpose:
Begin to understand the many facets of the testing process.
Instruction:
This exercise touches on many of the topics we will address this semester.
Don't be concerned if parts of this exercise seem "fuzzy" now;
by the end of the course, you will understand why
I put each of the questions into the exercise.
You may make a copy of a
worksheet
and complete this activity,
or write your answer on paper(s) or your computer.
Consider the following requirements:
If the moon is full and the sky is clear, release the monster.
If the sky is clear and the wind is calm, release the monster.
- How many different cases do you want to test?
Justify your answer.
Write out each test, including the expected result.
(There are many possible approaches. The important part is connecting
your choice of test cases to your justifications.)
- Formalize the input domain as simple as possible.
How can you develop tests from this model?
If the input domain model is more complex,
does this approach still work?
- Build a graph model that captures the logic of these requirements.
Create a minimal set of tests that "cover" the graph.
How many tests do you get, and how satisfying do you find these tests?
- Build a logic model that captures these requirements.
How many different test cases are possible, and what is the outcome in each case?
- Model what could go wrong from a programming perspective. There are multiple possible answers.
Is it possible to target test cases specifically at what could go wrong?