This is a book on software quality that targets programmers, not quality assurance professionals. Why did I write it? Simply put, the state of software quality today is, well,
pretty awful. Your average software project has far too many bugs—and far too
many developers willing to accept that as normal. After three-and-a-half decades of developing software and managing teams, I've grown weary of projects where everyone works really hard but no one is satisfied with the results. It doesn't have to be that way: programmers can and should take ownership of the quality process instead of merely reacting to it. My book is about programmers becoming part of the solution instead of part of the problem.

Part I is about taking ownership of
the quality process. As a developer, you are the key ingredient in
software quality. While others on your team can influence quality, what you do
matters most since you actually produce the software.

Chapter 1: Your Role in Software Quality

Chapter 2: Building in Quality

Part II is about testing your own work, and
testing it well. Failure by developers to sufficiently test their own work is
the reason projects have high bug counts: the software entering formal test is
frequently incomplete and unfinished.

Chapter 3: Testing Your Own Work

Chapter 4: Functional Testing

Chapter 5: Hostile Testing

Chapter 6: Automated Testing

Chapter 7: Analyzing and Debugging

Part III is about learning from your bugs. Those
who fail to learn from their bugs are doomed to repeat them. Only by making
changes can you escape from a chronic bug problem.