Peter Marklund

Peter Marklund's Home

Tue May 01, 2007
Programming

Bug Tracking can be Bug Prevention

I've been deploying a couple of Rails applications for a client lately and things have been running surprisingly smoothly and there have hardly been any issues at all. In one of the more complex applications though a few bugs slipped through my testing net and were caught by the excellent Exception Notifier plugin by Jamis Buck. Now, the question is, how do we typically deal with bugs as programmers? If the bug is in production we rush to fix it, push the fix out, and hope not too many people noticed it, and then try to forget about the whole thing. What we should be doing though is ask ourselves why the bug occured in the first place, how we can categorize the bug, and what kind of process and/or tests can we put in place to prevent similar kind of bugs from happening in the future. Bug tracking is a gold mine for figuring out how we can raise the quality of our software and reduce the bug rate in the future. This may be common sense, but how many of us actually use this opportunity?

Comments

Senthil Nayagam said over 6 years ago:

My Team is building a Huge Application.

Exception Notifier plugin is a great plugin. as a Manager I ensure every crash is reported, analyzed and fixed.

I have few thousand mails which I have collected from exception notifier.
I have sorted the bugs by
controller
model
helper
views
gems
libraries
db (bad sql/connection/migration/
file(file not found/ file permissioning/file upload)
nil class
exception not properly handled
browser specific errors

each bug is potentially "how not to" program exercise :)

we also do logging within application to know response time by for different actions.

we have a bug/request tracking system where we have over 300 tickets handled in
last 3 months.

we have reduced the crashes and bugs by 95%(from Jan 2007)

with nearly 2000 commits in a year, we have learnt a lot about Rails and programming practices.

Senthil

--------------------------------------------------------------------------------