Open-Source Bug Tracking with Bugzilla

April 27th, 2004 by Juanita Lohmeyer in

Your rating: None Average: 3.8 (5 votes)

Bug Tracking Systems (BTS) have their origin in software development, but they can serve as important and useful tools in every team environment. For this reason the names Issue Tracker or Ticket System have become more appropriate.

BTS may function as a central point of communication for any team. They can increase the productivity and accountability of each employee dramatically by providing a documented work flow and allowing for positive feedback on good performance. They usually reduce downtime and production costs while increasing efficiency and, most importantly, customer satisfaction.

The open-source project Bugzilla, for example, provides an easy to use, easy to maintain and cost effective solution with a rich feature set that easily can compete with its proprietary counterparts. Bugzilla's Web interface allows cross-platform use while the XML and e-mail interfaces enable automatic error reporting. Not only can the automatic error reporting be included in the development of a new product, but it also can be integrated easily into an existing product.

This article provides an overview of how introducing Bugzilla can help your team work together and communicate more efficiently. Bugzilla uses the term bug, so I will stay with this notation throughout the article, but don't forget, it's not only about bugs, You can use Bugzilla for any task you need to track.

Teamwork

Bug trackers aid the whole product life-cycle. In the case of software development environments, this usually consists of software design, implementation and testing. From testing, the work flow takes it course either back to design or on to implementation for bug fixing. In the best of all worlds, at some point an error-free product leaves this cycle and gets shipped to a customer. In all other worlds, the customer is part of the development cycle and submits bugs.

Everyone in the team needs to effectively keep track of upcoming issues. Designers and developers need to be notified about new bugs and reminded of existing ones. Managers need a means to distribute upcoming bugs to the right developer and quickly acquire the status of the project. Integrators and testers need to know which issues already have been resolved and therefore require consideration in the next build and test cycle. Customers want to be able to rapidly report bugs and receive an update of their status, while help desk operators need to be able to respond quickly to such customer demands.

Most companies come to the point where they start to track those issues by way of e-mail or spreadsheet lists—some even use sticky notes. At some point, the number of issues outgrows these approaches and the number of forgotten or unresolved issues demands a better solution. Let's follow one of those teams on their path to introducing Bugzilla as its in-house BTS.

Preparations: Getting Organized

As with every software product, the introduction of a BTS in an existing work flow requires initial thought and planning. The goal is for all participants to accept and use the new system, meaning that its introduction should have only a positive impact on their daily work.

Figure 1. The Bugzilla title page: choose New in the footer to report a bug quickly.

Figure 2. Every bug belongs to a Product, which is subdivided into Components.

As with most BTS, bugs in Bugzilla concern a component, which belongs to a product. A bug also may have a version and a milestone attached. Before introducing the new system, thought must be put into how its structure fits in to your daily work flow. All possible upcoming issues in your work flow should have a set place, including problems with Bugzilla itself. It often makes sense to include even trivial organizational issues that can have a large impact on development. If having sufficient blank CDs in your office is critical, you may include a shortage as a bug in Bugzilla.

Products are the main category and usually represent actual shipping products or services. You also should have a number of special products that reflect your internal work groups, like System Administration or Office Supplies.

Components are sub-sections of a product. Among others, a software product may have GUI and Database components. Your special product, system administration, may have the components Intranet Web Site, Shared Drive and Printers, to mention a few. Each component has at least one designated user that receives the error reports. Naturally you want to ensure that the workload is distributed evenly.

Versions refer to the version of your product where the bug occurred, while milestones represent target times for a bug to be fixed by. This does not necessarily need to be a date; it can be something like “When boss returns from holiday”.

Keep It Simple

Simplicity is the key to an easy-to-use system. Bugzilla comes set up with extensive lists of operating systems, priorities a bug can have and states a bug can be in. It is important for an efficient work flow that you adapt these to your specific needs. This is true especially for priorities, which Bugzilla calls Severities. I know no environment that requires as many priority levels as come with Bugzilla originally. Usually no more than three severities are needed: high (or showstopper) for major bugs that cause production stops or block other people from completing their work, medium for most normal bugs and low for minor issues such as typos. Any more than these cause confusion.

Similar rules apply to the state that a bug can be in. The states should reflect your normal work flow, not the other way around. A standard set of states may include New, Accepted, In Progress/Open, Resolved, Not a Bug and Tested/Completed.

These are all simple tasks, but thinking about them initially and communicating them with your teams in the early stages of rollout prevents confusion and guarantees a smooth introduction of the new tool.

The Fun Stuff: Installation

To install Bugzilla, get the latest version from bugzilla.org. Although version 2.16.3 is declared as the latest stable release, I have found no problems with the many 2.17.4 installations we have running. This newer release also has many interesting extra features. You also need Perl 5.6 or higher, a running MySQL Database, minimum version 3.23.41. With a little manual tweaking, databases such as Oracle and Postgres also work well. Finally, you need a running Web server—Apache, of course, is recommended.

The installation process is pretty straightforward. After installing a number of Perl libraries and setting up a database user dedicated to Bugzilla, the installation basically consists of copying the contents of the tarball to your Web space and running the checksetup.pl script located in the main Bugzilla directory. This magic script sets up the vitals, including the administrative user and access permissions. It also creates a file named localconfig. This file's contents are self-explanatory and include, for example, the database connection settings. Be sure to install the Perl packages that are declared optional and a package called dot (part of GraphViz). These extra packages allow for enhanced graph and reporting capabilities.

While you are at it, include the collectstats.pl script, which allows for the nifty bug history graphs in your crontab. After running checksetup.pl again, you are able to access a fully functional Bugzilla in your Web browser. In the footer of the start page you should find a link entitled Edit parameters. Run through the settings on this page and set them as appropriate.

The most important settings include:

  • maintainer: the e-mail address of the person responsible for maintaining this Bugzilla installation. The address need not be that of a valid Bugzilla account.

  • urlbase: defines the fully qualified domain name and Web server path to your Bugzilla installation.

  • whinedays: set to the number of days you want to allow a bug to remain in either the NEW or REOPENED state before notifying the responsible party that he or she has untouched new bugs. If you do not plan on using this feature, simply do not set up the whining cronjob described in the installation instructions above, or set this value to 0.

  • commenton*: each of these fields allow you to dictate which changes can pass without comment and which must be commented upon by the changer. Usually it makes sense to allow users to add themselves to the CC list, accept bugs and change the Status Whiteboard without adding comments about the reasons for the change, yet require that most other changes come with an explanation.

Adding Users, Products and Components

Users can create their own user accounts by clicking the New Account link at the bottom of each page, assuming they aren't logged in already. However, should you wish to create user accounts ahead of time, here is how you do it. After logging in, click the Users link at the footer of the query page and then click Add a new user. Fill out the form and click on Submit. Make sure to restrict your user's rights to reasonable access levels.

Figure 3. For instant access, new users can sign up easily and get their password by e-mail.

Figure 4. There should be clear guidelines in your teams as to how to report a bug properly. This includes giving as much information as possible to track down problems efficiently.

Figure 5. Each person involved with the issue automatically receives an e-mail notification on new bugs.

Figure 6. Processing of the issue is reflected by changes in its status in combination with meaningful comments.

In addition to adding users for each member of the team, you also may want to create an anonymous user. This can be useful for allowing external persons, such as customers using your Web site, to submit a bug without the added overhead of creating a new user account. Now is also a good time to set up your products and related components, as discussed earlier. Don't forget to insert meaningful descriptions and assign the right person to each component.

The last step is to set up the correct lists of used operating systems, bug states and priorities for the system. All of these settings can be altered and improved upon later without problems or downtime, but try to prepare as much as possible now to avoid confusion among the users and improve the smooth integration of Bugzilla in your work flow.

Pest Control: Dealing with Bugs

At this point Bugzilla is ready to go and ready to provide you with real help. Once the system is set up, dealing with issues is as easy and straightforward as filling out a form and clicking the submit button. Bugs are submitted and the system reports to the responsible people—reminders included in case it takes too long. The person responsible either accepts responsibility for the issue by changing its state or forwards it to someone else. Either way, at some point the issue is processed and hopefully resolved, which is reflected by various state changes.

Each state change results in a notification to each person dealing with the issue. A unique bug_id and a sophisticated query page allow everyone to stay up-to-date on bugs of interest. As can be expected, the query page allows for quick execution of standard queries, such as Show me all of my open bugs. This outstanding query page also facilitates extremely complex queries, something that cannot be said about all of Bugzilla's commercial counterparts. Only a few mouse-clicks are required for such queries as “Show me all bugs in our e-commerce Web site, in the shopping cart component, submitted by Alice between December 1 and December 24 with an attachment containing the phrase 'resolve after Christmas rush'”.

Figure 7. Simple queries, such as “all my open bugs”, are available by way of links in the footer.

Figure 8. Quickly locating a single bug using full-text search.

Figure 9. Complex queries for whole sets of bugs can be stored for future re-use.

It's a lot of fun working with a system like Bugzilla. To increase its use even further, it is necessary that each member of your team be conscious about the fact that a BTS reflects the state of health of your products. Sometimes when you are swamped it's tempting to close a minor bug by saying “works for me”. This always backfires at the least desirable moment, so it is important to create an environment where bugs are reported with a maximum set of information, allowing the developer to effectively pin it down. In the best of all worlds, this means a description on how to reproduce the bug. Every major state change also must be documented with a meaningful comment. “Fixed bug” is not a meaningful comment. A short description of what exactly caused the bug and how it was fixed (where appropriate) helps not only the integration team but also the team leads to find ways to prevent frequently appearing bugs. Make use of the fantastic Bugzilla features like inter-bug dependencies. These show that one bug can be fixed only if some other bug is fixed first, which allows for easy identification of bottlenecks. Remember, it's all about teamwork.

Project Management

An important function of a BTS is to reflect the current development state of a product as well as its changes over time. Not only does this give valuable information about your team's workload, but it also helps in identifying endangered milestones or deadlines. Information about the time it took to fix certain issues in the past offers valuable information on how much time you can expect similar projects to take in the future. Last but not least, a high number of upcoming issues in a certain area highlights areas of your work flow that could use some attention for the purpose of improvement.

Not only does Bugzilla supply you with a sophisticated query page, but both table-based (one, two and three dimensional) and graphical representations (line, bar and pie charts) of the current project state are available too. Reports can be generated in a extremely flexible way by assigning values to the diagram or table axes, (for example, product for the horizontal and State for the vertical axis) and setting filter options for the bugs, dictating which should be considered in the diagram. Reports can be exported to a text file, thus providing an interface to spreadsheet or word-processing programs.

The development of your product can be monitored by bug status or by resolution of bugs over time. The data for this type of diagram is accumulated automatically in the background while Bugzilla is running, so time-consuming queries are not required.

In addition to the built-in reporting tools, custom-made SQL queries on the Bugzilla database allow for easy access to the bug data in creating custom reporting. By way of such queries, third-party reporting software likewise can make use of the Bugzilla database.

Figure 10. In addition to textual reports, Bugzilla comes with advanced charting functionality.

As you can see, Bug Tracking Systems like Bugzilla can help to organize and structure your team's entire work flow. Their use definitely is not limited to software development environments. If you want to try Bugzilla, a demo installation can be accessed at landfill.bugzilla.org.

Juanita Lohmeyer and Maik Hassel usually are busy with their Vancouver-based company, Simply Efficient, testing software or providing various IT services for their customers. Thanks to the massive use of high quality open-source products, they have some free time left to breathe either thin air on top of mountains or compressed air under the ocean around Vancouver. They can be reached at info@simplyefficient.ca.

__________________________


Special Magazine Offer -- Free Gift with Subscription
Receive a free digital copy of Linux Journal's System Administration Special Edition as well as instant online access to current and past issues. CLICK HERE for offer

Linux Journal: delivering readers the advice and inspiration they need to get the most out of their Linux systems since 1994.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Anonymous's picture

Offline client for Bugzilla

On January 18th, 2006 Anonymous says:

Bugzilla now has a desktop client, Deskzilla, that is able to preload bugs and work offline with later synchronization. It's not developed by Mozilla and though it is a commercial software, it is available for open source projects for free. Screenshots, available on Deskzilla site, show a linux kernel bugs neatly laid out in categories. I wonder when they will have charts and reporting...

Anonymous's picture

Re: Open-Source Bug Tracking with Bugzilla

On May 6th, 2004 Anonymous says:

Bugzilla is pretty hard to config/custimize. We use TestTrack Pro by Seapine Software

Jason G.'s picture

Another simple option

On May 22nd, 2008 Jason G. (not verified) says:

I am also on the i-want-something-easier wing. i stumbled upon BugWiki (www.bugwiki.com), and that turned out to be the right thing for me. No install, just a sign-up. Simple to learn, too.

Anonymous's picture

Someone posting fake bugwiki reviews?

On June 2nd, 2008 Anonymous (not verified) says:

Is it just me or is Jason G a BugWiki employee. I have been researching some bug tracking tools recently and everywhere I see, there are some recent comments about how good bugwiki is (twitter, some bug tracker comparisons etc). I look at bugwiki and it's no better than scribbling down stuff in a spreadsheet. I am not saying it's bad (everything has it's uses), but persistent comments stating how great bugwiki is, is pretty darn suspicious. Especially on a post that is a nearly a year old?

Anonymous's picture

Re: Open-Source Bug Tracking with Bugzilla

On April 28th, 2004 Anonymous says:

I looked at Bugzilla for my organization, however it didn't do enough in the way of time-tracking and groupware for it to be useful for a single company or a consultant. Instead, I created an enhanced version of Outreach Project Tool (orginally from an Austrian firm) that did everything I needed and more:

Check out the project page or the try the demo site.

Anonymous's picture

Re: Open-Source Bug Tracking with Bugzilla

On April 28th, 2004 Anonymous says:

OPT looks nice, though I hadn't stumbled on it ~6 months ago when doing my review. I looked at about 2 dozen; propriatory and OSS, commercial and not. That doesn't even count the ones I rejected without doing the full installation and analysis.

The last time I went through finding an acceptable issue/defect tracker, I had one person perk up; "Great! I already have one written in Access. I can make any changes you want." (There were a few of these already in use by 1 or 2 projects here and there also.)

Ack! No, I've done that too. Mine was even used to track about 800 test cases plus defects/enhancements for a ~30 million dollar project and I will *never* do that again. 'When all you have is a hammer...look around and find other tools!'

Even if you are clever, chances are someone else has a more appropriate tool that almost does the same thing. There's only so many things that you can do with this stuff before turning it into another category of app.

Anonymous's picture

Re: Open-Source Bug Tracking with Bugzilla

On April 27th, 2004 Anonymous says:

If you're not a huge fan of Bugzilla (I'm not too keen on the way it's been written), it's also worth considering RT from bestpractical.com.

Anonymous's picture

Re: Open-Source Bug Tracking with Bugzilla

On May 14th, 2004 Anonymous says:

One of the really bad things about RT is how

- You enter a Request in RT, people receive an email.
- If people want to add a comment to a Request, they respond to the original email. Usually they'll include the body of the original message in the email.
- If you go back to the RT web interface, you will now have the original Request, and the new response which includes the original message in the email.

Since many conversations will take place via email, and including the body of the previous messages in the email body is a standard practic, this leads to a very very messy and confusing list of bugs in RT.

It would be great if RT would strip the old messages from the emails.

Anonymous's picture

Re: Open-Source Bug Tracking with Bugzilla

On April 28th, 2004 Anonymous says:

I couldn't get it to be adopted...even found a company that would ship a custom system and support it. The reason it was rejected? Looks. "It has to be pretty; the executives need that otherwise it won't fly." I understand that if they are the ones deciding on what tool to choose...they only have so much time...yet....

Anonymous's picture

Re: Open-Source Bug Tracking with Bugzilla

On April 28th, 2004 Anonymous says:

I don't see why one would need support. I installed Bugzilla, Apache, and MySQL on a Windows NT box at work.

Once I did the initial manual patching to get Bugzilla to work on NT, I haven't touched it since. It has run about a year so far with no problems.
I also changed some of the text to say "My Company - Issue Tracking System" instead of Bugzilla and "zarro boogs" to "no bugs".

There was no official need identified at work, but eventually it became a standard part of our process.

Go work for a small company. They don't spend 4 months of meetings making decisions.

Anonymous's picture

Re: Open-Source Bug Tracking with Bugzilla

On April 28th, 2004 Anonymous says:

    I don't see why one would need support.

Here's the conversation (in a nut shell) that I went through over Mozilla;

  • Exec: We need something that's ready to go.
  • Me: But the customization is not too bad, and there are commercial companies that can do it.
  • Exec: We don't have the budget.
  • Me: The licence costs for the commercial releases we are looking at are $15,000; base. We can do the work for less and pocket the difference; Bugzilla doesn't cost a thing in licencing.
  • Exec: They don't need to be custimized, and they look good out of the box. Sorry, Bugzilla is not an option because of that.
  • Me: When the other products are rolled out to the whole company, it'll cost much much more.
  • Exec: That's fine; we only have a few people that have to use it, mostly mid-managers and above.

    While this is not entirely true (the commercial app did need customization and the information would be entered and searched mainly by non-managers or lower-level managers), I could not press the issue without causing friction so I dropped it. The executive made up his mind, and short of finding a 2 second patch that made Bugzilla match every function and the look of the commercial closed apps, I was not going to get any traction.

  • Anonymous's picture

    Re: Open-Source Bug Tracking with Bugzilla

    On April 28th, 2004 Anonymous says:

    You must work at my company ;)

    Anonymous's picture

    Re: Open-Source Bug Tracking with Bugzilla

    On April 28th, 2004 Anonymous says:

      You must work at my company ;)

    LOL!

    I've worked at many, and rarely can I get people to listen...or more importantly, act or let me do the right thing. The executive I'm (roughly) quoting is actually a real smart guy and does understand many issues. I'm still puzzled why he took the system that he knew already...except that he knew it already. Human psychology is interesting at times.

    Anonymous's picture

    Re: Open-Source Bug Tracking with Bugzilla

    On April 28th, 2004 Anonymous says:

    er...sorry. Bugzilla, not Mozilla. (Though come to think of it, the conversations can be similar.)

    Anonymous's picture

    Re: Open-Source Bug Tracking with Bugzilla

    On April 28th, 2004 Anonymous says:

    Silly really - I'm sure they'll find some pretty looking solution that doesnt work then!

    Anonymous's picture

    Re: Open-Source Bug Tracking with Bugzilla

    On April 28th, 2004 Anonymous says:

    Any comments on Scarab?

    To reply to your comments in the meantime: there are plenty of tools like Bugzilla. Not exactly, but similar enough that people won't care either way.

    The problem is that people are creatures of habit and like to pick sides early. Even though the budget might not allow for an expensive tool, people who want "a name brand" or "this software; I've used it, it works" will find some way to buy it.

    Case in point: ClearQuest. Horrid if not configured. OK if properly configured. At one company: the budget for the software (and the other Rational tools) soaked up any money for customization and maintenance. The result: Nobody wanted to use it, so they didn't, and people ended up rolling their own issue trackers or purchasing additional tools to fill specific needs. No _1_ tool is in consistant use, and they can't share data easily.

    Most of these tools can be modified heavily. The main concern is if the maintenance is acceptable and can the data be moved out of the system easily (no lockin).

    Bugzilla can output to other systems -- if you configure it to do so. Yet, it is better to have one tool and eliminate the duplication.

    Attempting to get people to use a Wiki also causes problems, mostly because it's a good tool that most aren't familar with.

    Post new comment

    Please note that comments may not appear immediately, so there is no need to repost your comment.
    The content of this field is kept private and will not be shown publicly.
    • Allowed HTML tags: <a> <em> <strong> <cite> <code> <pre> <ul> <ol> <li> <dl> <dt> <dd> <i> <b>
    • Lines and paragraphs break automatically.

    More information about formatting options

    Newsletter

    Each week Linux Journal editors will tell you what's hot in the world of Linux. You will receive late breaking news, technical tips and tricks, and links to in-depth stories featured on www.linuxjournal.com.
    Sign up for our Email Newsletter

    Tech Tip Videos

    From the Magazine

    July 2009, #183

    News Flash: Linux Kernel 3.0 to include an on-the-go Expresso machine interface! Ok, maybe not, but Linux is definitely going mobile, from phones to e-readers. Find out more inside about Android, the Kindle 2, the Western Digital MyBook II, The Bug, and Indamixx (a portable recording studio). And if you've gone mobile and you been wanting more Emacs in your life then check out Conkeror.


    To compliment the mobile we've got the stationary: parsing command line options with getopt, checking your Ruby code with metric_fu, and building a secure Squid proxy. How is this stationary you ask? What can we say? It's not. We just wanted to see if anybody actually read this part of the page :) .


    All this and more, and all you have to do is get your hot sweaty hands on the latest copy of Linux Journal.





    Read this issue