Saturday, December 18, 2010

Bugzilla

Bugzilla is a Web-based general-purpose bugtracker and testing tool originally developed and used by the Mozilla project, and licensed under the Mozilla Public License. Released as open source software by Netscape Communications in 1998, it has been adopted by a variety of organizations for use as a bug tracking system and occasionally as project management software. It is used for both free and open source software and proprietary projects and products.


History

Bugzilla was originally written by Terry Weissman in 1998 for the nascent Mozilla.org project, as an open source application to replace the in-house system then in use at Netscape Communications for tracking defects in the Netscape Communicator suite. Originally written in Tcl, Terry decided to port Bugzilla to Perl before its release as part of Netscape's early open source code drops, with the hopes that more people would be able to contribute to it as Perl seemed to be a more popular language at the time.[1]

Bugzilla 2.0 was the result of that port to Perl, and the first version released to the public via anonymous CVS. In April 2000, Weissman handed off control of the Bugzilla project to Tara Hernandez. Under Tara's leadership, some of the regular contributors were coerced into taking more responsibility, and Bugzilla development became more community-driven. In July 2001, facing distraction from her other responsibilities in Netscape, Tara handed off control to Dave Miller, who was still in charge as of 2007.[2]

Bugzilla 3.0 was released on May 10, 2007 and brought refreshed UI, XML-RPC interface, custom fields and resolutions, mod_perl support, shared saved searches, improved UTF-8 support and others.

Timeline

Requirements

Bugzilla's system requirements include:

  • A compatible database management system
  • A suitable release of Perl 5
  • An assortment of Perl modules
  • A compatible web server
  • A suitable mail transfer agent, or any SMTP server

Currently supported database systems are MySQL, PostgreSQL, and Oracle. Bugzilla is usually installed on Linux and runs using the Apache HTTP Server, but Microsoft Internet Information Services or any web server that supports CGI can be used. Bugzilla's installation process is command line driven and runs through a series of stages where system requirements and software capabilities are checked.

Design

The lifecycle of a Bugzilla bug

While the potential exists in the code to turn Bugzilla into a technical support ticket system, task management tool, or project management tool, Bugzilla's developers have chosen to focus on the task of designing a system to track software defects. Mandated design requirements include:[3]

  • The ability to run on freely available, open source tools. While Bugzilla development includes work to support commercial databases, tools, and operating systems, this is not intended to come at the expense of open source ones.
  • The maintenance of speed and efficiency at all costs. One of Bugzilla's major attractions to developers is its lightweight implementation and speed, so calls into the database are minimized whenever possible, data fetching is kept as light as possible, and generation of heavy HTML is avoided.
  • Tickets. For instance, Mozilla.org and the MediaWiki project use it to track feature requests as well. Bugs can be submitted by anybody, and will be assigned to a particular developer. Various status updates for each bug are allowed, together with user notes and bug examples. In practice, most Bugzilla projects allowing the public to file bugs — such as the Bugzilla bug database for Bugzilla itself — assign all bugs to a gatekeeper, whose job it is to assign responsibility and priority level.

Zarro Boogs

By design, Bugzilla is programmed to return the string "zarro boogs found" instead of "0 bugs found" when a search for bugs returns no results.[4] "Zarro Boogs" is a facetious meta-statement about the nature of software debugging. Bug tracking systems like Bugzilla readily describe how many known bugs are outstanding. The response "zarro boogs",[5] is intended as a buggy statement itself (a misspelling of "zero bugs"), implying that even when no bugs have been identified, software is still likely to contain bugs that haven't yet been identified.[4]


No comments:

Post a Comment