While malicious computer viruses and Trojan horses grab headlines, humble software bugs innocently wreak havoc on software users and cost the economy billions of dollars. Luckily, the science of bug tracking has kept pace with the times.
In this article, we’ll show you the need for bug tracking tools, what bug tracking software is, and take you step by step through the bug tracking process. We’ll conclude with a checklist of what to look for in a bug tracking tool. By the time you finish this article, you should have a good understanding of the process and know what to look for in a product.
To begin with, vendors are under pressure to get products to market quickly, and software bugs have become an accepted cost of doing business in the technology world. However, what’s less acknowledged is what a big financial drain bugs can be. A federal study, for example, estimated that software bugs cost the US economy nearly $60 billion annually with more than a third of the cost borne by developers and the remainder by end users and vendors1.
The study, commissioned in 2002 by the National Institute of Standards and Technology (NIST), also found that while not all the costs could be eliminated, a significant $22.2 billion could be removed by an improved testing structure that provides earlier and more effective identification and removal of software defects.
How do you provide a structure that allows you to do just that?
The good news is that there are systematic ways to eliminate software bugs—before a product is released. Over the last few years, bug tracking tools have emerged; they provide a rigor to the development process and that has resulted in less bug-ridden software.
Bug tracking done right is a process for insuring that bugs that are identified don’t get lost as a result of poor reporting and tracking.
Up until four years ago, many companies did not use any bug tracking software because most of the tools were very expensive and required installation of software and additional hardware like Web and database servers as well as ongoing continuous maintenance. A large company could easily spend $100,000 on bug tracking software. Instead, most companies jerry-rigged their own tracking products using an Excel spreadsheet or Word document or developers simply e-mailed one another about bugs.
The difficulty with these improvised methods is that bugs got lost. There was no closed loop process to insure that every bug identified got fixed. It was all too easy to e-mail someone about a bug and then quickly forget about it.
Enter Web-Based Bug Tracking
About four years ago, Web-based bug tracking products first appeared. Suddenly, what had once been prohibitively expensive was now within reach of most companies. A typical Web-based bug tracking product retails for under $50 a month and allows unlimited users. Web-based products are normally much less expensive than licensed software because they require no server or database, installation, or maintenance. In addition, many do not charge a per user fee.
An Effective Bug Tracking Process
Here is a step-by-step look at how bug tracking works. Figure 1 shows the close-looped nature of the process.
Figure 1: The bug tracking process
A testing team that bears responsibility for fixing software bugs is created. Internal releases are sent to the team by R&D, which runs tests on them to identify bugs. Bugs that are discovered are logged into a bug tracking tool. It’s very important that each bug be identified as a separate issue and be given a unique ID number. That way, each bug can be identified easily and assigned to a particular person to be fixed. New bugs are assigned with a ‘Open’ or ‘New’ status.
A product manager or team leader reviews the new bugs and assigns them to R&D members to fix. The manager also classifies each bug by its priority and severity, as shown in Table 1. Those with the highest priority and severity are fixed first, as shown in Table 2.
Table 1: Priority table
|1||Immediate||The bug should be resolved immediately.|
|2||High||This bug should be resolved as soon as possible in the normal course of development activity, before the software is released.|
|3||Medium||This bug should be repaired after serious bugs have been fixed.|
|4||Low||It can be resolved in a future major system revision, or not be resolved at all.|
Table 2: Severity Table
|1||Critical||The bug causes a failure of the complete software system, subsystem, or a program within the system.|
|2||High||The bug does not cause a failure, but causes the system to produce incorrect, incomplete, or inconsistent results, or impairs the system usability.|
|3||Medium||The bug does not cause a failure, does not impair usability, and does not interfere with the fluent work of the system and programs.|
|4||Low||The bug is an aesthetic, is an enhancement, or is a result of non-conformance to a standard.|
R&D, using the bug tracking system, creates a report of all open bugs assigned to them and fixes them according to the priority and severity set by the product manager. Once a bug is fixed, R&D changes its status in the bug tracking database to ‘Fixed’. It is very important that R&D not be given the option to close a bug. That eliminates the temptation to close a bug without fixing it.
R&D releases a new internal product version with the identified issues fixed and with new features.
The testing team, using the bug tracking tool, creates a report of all fixed bugs. It checks its report against the new release to be sure that all identified bugs have been fixed.
The testing team changes the status of all fixed bugs to ‘Closed’. Any bugs that haven’t been fixed are changed to ‘Open’. Return to Step One.
What Should You Look For in a Bug Tracking Tool?
Now that you know how bug tracking is done, what features should you look for in a bug tracking tool? We’ve assembled a quick check list of the most important features to have in any bug tracking tool.
- Unique ID. A mechanism to identify and track every bug by assigning a unique ID number to each bug.
- Full customization. The flexibility to customize a tool for your development environment and define parameters according to your business needs. For example, a customizable product would let you define a priority list the way you want; for example, by using numbers, words, or letters.
- File attachments. The ability to give a clear description of a reported problem to team members by attaching screen shots, text files, and so forth to each bug.
- History trail. A record of all changes made in an issue from the moment it is submitted through its life cycle.
- Automatic e-mail notification. Whenever an issue is assigned to a group member, it is useful to have your tool send an automatic e-mail notification informing the programmer of the assignment.
- Customizable reports. A report engine that lets you search your issue list for different words and phrases and create specific reports with only the issues and fields that interest you. For example, you might want to create a report on all issues that have been assigned to you.
- Web-based. Lets your team use the tool wherever they are based by enabling access to the tool and issue list from any location using only a browser. If money is no object, there are also many good licensed software products. However, theses products normally require licenses for each user, which can quickly elevate the cost if a company has many users.
- Access. Allows you to establish access permission rules for each group. For example, you don’t want R&D to be able to be able access the ‘Closed’ status and you don’t want customers to see bugs they have not reported.
Now, It’s Your Turn
In this article, we’ve shown you the need for bug-tracking software, what a bug tracking tool can do, and explained the process. You now know what to look for in a tool. Clearly, bug tracking tools help developers identify and keep track of bugs, but it is up to you, the developer, to resolve them. But, armed with a good tool, your software development process should be more exacting and your end product much more reliable.
About the Author
Yaron Sinai is founder and CEO of Elementool, www.elementool.com, a leading application service provider that offers bug tracking, customer support, and project management products. For more information, please see www.elementool.com.
1. Research Triangle Institute (RTI), The Economic Impacts of Inadequate Infrastructure for Software Testing—National Institute of Standards and Technology (NIST) Planning Report 02-3, (May 2002): Table 8-6, www.nist.gov/director/prog-ofc/report02-3.pdf.