- Author: David Thielen
- Format: PDF
- Price: free
Most developers know that software is inherently buggy. And most developers also, hopefully, want to eliminate these bugs before shipping a product. This book is written for these people.
However, writing code with no major bugs (sorry, we haven’t yet reached the point of truly bug-free code yet), is a team effort. It takes the work of more than just the developers. It takes testers, managers, support personnel, and many more. And this book is aimed at these people too.
This book is designed to solve a problem – buggy code. Because it is aimed at the problem instead of a specific audience (ie, just developers or just testers), parts of this book may not be interesting to certain audiences. Chapters 3 – 10 are written mainly for developers. Chapters 11 & 12 are written mainly for testers.
Yet the book is written to be read straight through. If you want to develop minimally buggy code, then you have to understand all of the pieces that go into getting there. Developers need to understand the test process. Testers need to understand what the developers will be testing on their own. Most importantly, the managers and others responsible for insuring that the whole organization works need to understand the process. And as important, they need to insure that the process is actually being followed.
Finally, this book is written from the Windows/DOS/PC perspective. While most of the ideas discussed are generic to any computing platform, many of the implementations are specific to the PC. And some of the code is specific not only to the PC, but to specific compilers (stack checking has a tendency to be that way).
If you program on a platform other than the PC, in a language other than c, you will still find this book valuable but you will also find that it leaves a lot more work for you to incorporate the ideas here.
While this is an older book, written in the Win95 era, the first 2 chapters are still very relevant to the programmers of today.
Chapters include:
- Introduction
- What is a bug?
- General Principles
- Some Basic Tricks
- Assert the World
- Debug Printfs
- Watching the Stack
- Watching the Heap
- File I/O
- Special Tricks for c++
- Special Tricks for assembly language
- The Testing Process
- Shipping the Product
- Useful bug-discovery tools
- Debug Message Boxes
- Debug Second Monitor