Managing Bugs Flashcards
What are 2 perspectives to consider when you find a bug? How are they related?
Developer: How should the program handle the errors?
Client: How should the bug be reported/ prioritized/ fixed
They are related as devs are interested in fixing the bug and the clients can enable that by reporting well
What should a program do when it detects an error?
Log, print, or report it
Fail gracefully, continuing if possible
What should error message contain?
what, why, where, and when it’s incorrect
A program error should report as much detail as possible without giving away _______ values
sensitive
What is the main reason to have good error messages?
Support bug reporting and management. This includes: Reproduction steps Finding an owner Combining dupe reports Identifying causes and effects Prioritization and creating a fix
Why is bad bug reporting and management worse than none?
It will create noise and waste developers time
How do we keep track of bugs and decide what to fix?
We use bug databases likes Bugzilla, Mantis, etc which allows centralized communication
Who is responsible for a bug?
Most knowledge about the module
Whose code exposed the bug (RIP)
Who worked with the code most recently
What are some ways to prioritize bugs?
Occurs frequently or many users see it
Have big risks
In the newest version
What should a bug report contain?
One line summary
What, when, and why it was unexpected
Steps to reproduce
Some other info like platform, version, possible dupes
What are some common problems in bug reports?
Incomplete info
Steps to reproduce not correct or too complicated
Expected behaviors not well defined
How can we minimize test cases? Like a very large file for example
Delta Debugging: Recursively subdivide and remove portions that do not exhibit buggy behavior