SWE 437 In Class Exercise #2
Thinking about requirements as test cases.

Instructions: Work with your neighbors in groups. Discuss each question in your group for several minutes. We'll stop for class discussion between each question. Note: There's a lot going on in this example. Let's see how much we can find.

Consider two versions of the same example requirement (source).

Charge numbers should be validated on-line against the master corporate charge number list, 
if possible.
The system shall validate the charge number entered against 
the on-line master corporate charge number list. 
If the charge number is not found on the list, an error message 
shall be displayed and the order shall not be accepted.
To be agile, we need to turn this into some number of test cases.

  1. Which requirement is "better", and why? Given the "worse" requirement, how can test cases help you arrive at the "better" requirement?

  2. Define appropriate objects, methods, and arguments to express this requirement.

  3. Arrange these into one or more test cases, using the AAA model (Arrange, Act, Assert). Are there any significant differences between the requirement and the test cases?

  4. Come up with a plausible change to this requirement. What happens to the test case(s)?