In this chapter, we started with a customer test and wrote programmer tests to drive the implementation. This eliminated the need for checking with the customer to determine the correctness of the application. After the test passed, we were finished. The scope of the customer/programmer tests, as demonstrated in the chapter, is very different. The customer test verifies that the system works as the customer expects (this working system includes the database and the Web service infrastructure). On the other hand, the programmer tests try to isolate themselves as much as possible and focus on what the application does independently of the infrastructure.
In the next chapter, we finally solve a problem that has plagued us over the last two chapters. When we built the Data Access code in Chapter 5, there were few if any errors that could occur. However, we ran into a few more issues as we started updating the database. In the next chapter, we use transaction support from the database to ensure that each test runs in the same environment as the previous test.