Informally, testing driven development is the practice of writing test data and then incrementally developing the program until it passes (does the right thing) with all the test cases.