Synopses & Reviews
Bug Patterns in Java presents a methodology for diagnosing and debugging computer programs. The act of debugging will be presented as an ideal application of the scientific method. Skill in this area is entirely independent of other programming skills such as designing for extensibility and reuse. Nevertheless, it is seldom taught explicitly. Eric Allen lays out a theory of debugging, and how it relates to the rest of the development cycle. In particular, he stresses the critical role of unit testing in effective debugging. At the same time, he argues that testing and debugging, while often conflated, are properly considered to be distinct tasks.Once laying this groundwork, he then discusses various "bug patterns" (recurring relationships between signaled errors and underlying bugs in a program) that occur frequently in computer programs. For each pattern, the book discusses how to identify them, how to treat them, and how to prevent them.
Includes electronic references (p. 203-208) and index.
Table of Contents
1. Agile Methods in a Chaotic Environment.- 2. Bugs, Specifications and Implementations.- 3. Debugging and the Development Process.- 4. Debugging and the Testing Process.- 5. The Scientific Method of Debugging.- 6. About the Bug Patterns.- 7. The Rogue Tile.- 8. Null Pointers Everywhere!- 9. The Dangling Composite.- 10. The Null Flag.- 11. The Double Descent.- 12. The Liar View.- 13. Saboteur Data.- 14. The Broken Dispatch.- 15. The Impostor Type.- 16. The Split Cleaner.- 17. The Fictitious Implementation.- 18. The Orphaned Thread.- 19. The Run-On Initialization.- 20. Platform-Dependent Patterns.- 21. A Diagnostic Checklist.- 22. Design Patterns for Debugging.- 23. References.- Appendixes.