chapter 3. Debugging and Testing