Software Debugging for High-altitude Balloons
- 3. Maurice Wilkes (1950s)
As soon as we started programming,
we found to our surprise that it wasn't
as easy to get programs right as we
had thought. Debugging had to be
discovered. I can remember the
exact instant when I realized that a
large part of my life from then on
was going to be spent in finding
mistakes in my own programs.
- 4. Writing code is hard
But writing bugs is easy!
Everyone does it all the time without
even thinking about it.
Estimates in GOOD code there are 2
to 4 defects per 1,000 lines
You’re not that good
You will spend many hours debugging
- 5. Programmer
If a person who debugs code is a
debugger than a person who writes
the bugs must be a... bugger?
- 13. Isolate
Tighten the OODA loop
◦ The smallest
◦ Fastest
◦ Most easily repeated
And automate it
Then turn it into a test case
- 18. Excise
Fix the bug
Don’t introduce new bugs!
You can check this with the test case
that you made earlier
- 20. Look Around Debugging
Where there’s smoke...
... research shows that bugs tend to
cluster
When you fix a bug look for more in
the same spot.
- 21. 5 bugs in a single line
dir.permissions = 666; // Make the file writable
Bug 1: updates permissions without
asking
Bug 2: doesn’t make the file writable
Bug 3: creates security hole
Bug 4: used decimal not octal
Bug 5: comment is incorrect
- 22. Remember This One Thing!
The most effective debugging tools
are: your brain, a unit test, and the
print statement.