SWE 437 Homework 4
Spring 2017
Practicing TDD

The goal of this exercise is to get you to practice the process of TDD: Test, Code, Refactor.

Towards this end, (re)build a small chunk of Java functionality with TDD. You can use code of your own, or you can pull down code from the textbook. Or you can use code from another source, as long as you document that source. You are not restricted to the API of the code you choose. In fact, it is highly likely that the API developed through TDD will be different (and better). I'm more interested in where the tests lead you than I am in the specific product.

The deliverable for this exercise is a story, with tests and snippets of code as illustrations. (Koskela Chapter 2 is a great model for this.) Each snippet of code should do only as much as is needed by the tests considered so far. Your story should start with a single "happy path" test case, and should take you through a sequence of further test cases.

Grading is all about following TDD and documenting the process. Write each test, build only the code that passes the test, and document the progress (eg with screen shots). Refactor as necessary, and document that. Compelling stories will receive full credit.

If you simply supply some code and a bunch of tests, your score will be a zero.

This assignment works far better as a collaborative exercise than as a solo exercise. That is, collaborative stories are more likely to be compelling. (See grading note above.)