Effective bug tracking assures that bugs are logged, fixed, and verified by the appropriate personnel. Here's a beginner's guide to this process.
Congratulations! You've landed a job at a software or Web development company. You might have heard about a bug tracking system during your first few days at the office, but that has nothing to do with you, right? Well, think again.
Are you in customer support? If so, you will be responsible for logging customer problems as they are phoned, written, or emailed in.
As a developer, you'll be strictly adding new features or enhancing existing ones, right? Wrong—you'll also be responsible for fixing any known bugs.
If you are a technical writer, your job doesn't end with creating Help, Manual, or Web content. You'll also be fixing any documentation errors.
If you're a manager, you'll need a way of assessing the viability of the product. You'll also need to determine what work remains to be done and how soon a product can be posted or shipped.
And if you are a tester working in the SQA (Software Quality Assurance) department, your job will be to verify the integrity of the product, and log and manage the resolution of any problems that you or anyone else may find.
What Is a Bug Tracking System?
A bug tracking system is constructed as a database. The system may be based on an existing database such as Lotus Notes, or it may use a built-in proprietary database. The bug tracking system may be homegrown or it may be a commercial system. In any case, a bug is entered as a record into this database, where it can be assessed and tracked.
The user interface usually consists of navigable views and forms for editing existing bug reports or writing new ones. Each user is assigned a unique login ID and password. Whenever a user writes up a bug, adds comments, or changes a status field, a good tracking system will log the ID of the person, creating or amending the record. A great system will save such history as read-only data so a true history of a bug report can be maintained.
A good tracking system will give each member of the team easy access to bugs assigned to them. The design should make it easy for the team members to manage their specific bugs effectively with the data sorted in many different ways. A great system will give management a variety of views and reports reflecting the health of the product, so they can assess the product situation on a build-by-build basis.
Of course, some users of the system are given more rights than others. For example, most users aren't allowed to delete bugs. If a bug is a duplicate or entered in error, it is simply marked as such instead of being deleted.
One of the most important features of a bug tracking system is keyword searching. For example, let's say a user finds a crash bug while saving a file. The bug tracking system should enable the user to perform a keyword search on "crash and file." If a match isn't found, the bug can be entered. If existing bugs are found, the user should examine them to see if the report covers his circumstance.
The Bug Lifecycle
Let's examine a bug’s lifecycle:
- Someone finds a bug and enters it into the system
- The bug is assigned to a developer
- The developer looks at the bug
When a bug is entered, the author usually assigns it to a product category such as "user interface" or "calc engine."
Writing or entering a bug is also known as opening a bug. Some systems may default a bug to "New" and wait for someone