Bug tracking system
Encyclopedia
A bug tracking system is a software application that is designed to help quality assurance
and programmers keep track of reported software bug
s in their work. It may be regarded as a type of issue tracking system
.
Many bug-tracking systems, such as those used by most open source
software projects, allow users to enter bug reports directly. Other systems are used only internally in a company or organization doing software development
. Typically bug tracking systems are integrated with other software project management applications.
Having a bug tracking system is extremely valuable in software development, and they are used extensively by companies developing software products. Consistent use of a bug or issue tracking system
is considered one of the "hallmarks of a good software team".
that records facts about known bugs. Facts may include the time a bug was reported, its severity, the erroneous program behavior, and details on how to reproduce the bug; as well as the identity of the person who reported it and any programmers who may be working on fixing it.
Typical bug tracking systems support the concept of the life cycle for a bug which is tracked through status assigned to the bug. A bug tracking system should allow administrators to configure permissions based on status, move the bug to another status, or delete the bug. The system should also allow administrators to configure the bug statuses and to what status a bug in a particular status can be moved. Some systems will e-mail interested parties, such as the submitter and assigned programmers, when new records are added or the status changes.
In a corporate environment, a bug-tracking system may be used to generate reports on the productivity of programmers at fixing bugs. However, this may sometimes yield inaccurate results because different bugs may have different levels of severity and complexity. The severity of a bug may not be directly related to the complexity of fixing the bug. There may be different opinions among the managers and architects.
A local bug tracker (LBT) is usually a computer program
used by a team of application support professionals (often a help desk
) to keep track of issues communicated to software developers. Using an LBT allows support professionals to track bugs in their "own language" and not the "language of the developers." In addition, an LBT allows a team of support professionals to track specific information about users who have called to complain — this information may not always be needed in the actual development queue. Thus, there are two tracking systems when an LBT is in place.
.
This approach allows including bug tracking and fixing in a general product development process, fixing bugs in several product versions, automatic generation of a product knowledge base
and release notes.
software. These distributed bug trackers allow bug reports to be conveniently read, added to the database or updated while a developer is offline. Distributed bug trackers include Fossil
.
Recently, commercial bug tracking systems have also begun to integrate with distributed version control. FogBugz
, for example, enables this functionality via the source-control tool, Kiln.
Although wiki
s and bug tracking systems are conventionally viewed as distinct types of software, ikiwiki
can also be used as a distributed bug tracker. It can manage documents and code as well, in an integrated distributed manner. However, its query functionality is not as advanced or as user-friendly as some other, non-distributed bug trackers such as Bugzilla
. Similar statements can be made about org-mode
, although it is not wiki software as such.
tools such as HP Quality Center
and Rational Software
come with their own bug tracking systems, other tools integrate with popular bug tracking systems.
Quality Assurance
Quality assurance, or QA for short, is the systematic monitoring and evaluation of the various aspects of a project, service or facility to maximize the probability that minimum standards of quality are being attained by the production process...
and programmers keep track of reported software bug
Software bug
A software bug is the common term used to describe an error, flaw, mistake, failure, or fault in a computer program or system that produces an incorrect or unexpected result, or causes it to behave in unintended ways. Most bugs arise from mistakes and errors made by people in either a program's...
s in their work. It may be regarded as a type of issue tracking system
Issue tracking system
An issue tracking system is a computer software package that manages and maintains lists of issues, as needed by an organization...
.
Many bug-tracking systems, such as those used by most open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...
software projects, allow users to enter bug reports directly. Other systems are used only internally in a company or organization doing software development
Software development
Software development is the development of a software product...
. Typically bug tracking systems are integrated with other software project management applications.
Having a bug tracking system is extremely valuable in software development, and they are used extensively by companies developing software products. Consistent use of a bug or issue tracking system
Issue tracking system
An issue tracking system is a computer software package that manages and maintains lists of issues, as needed by an organization...
is considered one of the "hallmarks of a good software team".
Components
A major component of a bug tracking system is a databaseDatabase
A database is an organized collection of data for one or more purposes, usually in digital form. The data are typically organized to model relevant aspects of reality , in a way that supports processes requiring this information...
that records facts about known bugs. Facts may include the time a bug was reported, its severity, the erroneous program behavior, and details on how to reproduce the bug; as well as the identity of the person who reported it and any programmers who may be working on fixing it.
Typical bug tracking systems support the concept of the life cycle for a bug which is tracked through status assigned to the bug. A bug tracking system should allow administrators to configure permissions based on status, move the bug to another status, or delete the bug. The system should also allow administrators to configure the bug statuses and to what status a bug in a particular status can be moved. Some systems will e-mail interested parties, such as the submitter and assigned programmers, when new records are added or the status changes.
Usage
The main benefit of a bug-tracking system is to provide a clear centralized overview of development requests (including both bugs and improvements, the boundary is often fuzzy), and their state. The prioritized list of pending items (often called backlog) provides valuable input when defining the product road map, or maybe just "the next release".In a corporate environment, a bug-tracking system may be used to generate reports on the productivity of programmers at fixing bugs. However, this may sometimes yield inaccurate results because different bugs may have different levels of severity and complexity. The severity of a bug may not be directly related to the complexity of fixing the bug. There may be different opinions among the managers and architects.
A local bug tracker (LBT) is usually a computer program
Computer program
A computer program is a sequence of instructions written to perform a specified task with a computer. A computer requires programs to function, typically executing the program's instructions in a central processor. The program has an executable form that the computer can use directly to execute...
used by a team of application support professionals (often a help desk
Help desk
A help desk is an information and assistance resource that troubleshoots problems with computers or similar products. Corporations often provide help desk support to their customers via a toll-free number, website and e-mail. There are also in-house help desks geared toward providing the same kind...
) to keep track of issues communicated to software developers. Using an LBT allows support professionals to track bugs in their "own language" and not the "language of the developers." In addition, an LBT allows a team of support professionals to track specific information about users who have called to complain — this information may not always be needed in the actual development queue. Thus, there are two tracking systems when an LBT is in place.
Bug tracking systems as a part of integrated project management systems
Bug and issue tracking systems are often implemented as a part of integrated project management systemsProject management software
Project management software is a term covering many types of software, including estimation and planning, scheduling, cost control and budget management, resource allocation, collaboration software, communication, quality management and documentation or administration systems, which are used to...
.
This approach allows including bug tracking and fixing in a general product development process, fixing bugs in several product versions, automatic generation of a product knowledge base
Knowledge base
A knowledge base is a special kind of database for knowledge management. A Knowledge Base provides a means for information to be collected, organised, shared, searched and utilised.-Types:...
and release notes.
Distributed bug tracking
Some bug trackers are designed to be used with distributed revision controlDistributed revision control
A distributed revision control system , distributed version control or decentralized version control keeps track of software revisions and allows many developers to work on a given project without necessarily being connected to a common network.-Distributed vs...
software. These distributed bug trackers allow bug reports to be conveniently read, added to the database or updated while a developer is offline. Distributed bug trackers include Fossil
Fossil (software)
Fossil is a distributed version control system, bug tracking system and wiki software server for use in software development created by D. Richard Hipp.- Features :...
.
Recently, commercial bug tracking systems have also begun to integrate with distributed version control. FogBugz
FogBugz
FogBugz is an integrated web-based project management system featuring bug/issue tracking, discussion forums, wikis, customer relationship management, and Evidence Based Scheduling developed by Fog Creek Software....
, for example, enables this functionality via the source-control tool, Kiln.
Although wiki
Wiki
A wiki is a website that allows the creation and editing of any number of interlinked web pages via a web browser using a simplified markup language or a WYSIWYG text editor. Wikis are typically powered by wiki software and are often used collaboratively by multiple users. Examples include...
s and bug tracking systems are conventionally viewed as distinct types of software, ikiwiki
Ikiwiki
ikiwiki is a free, open source wiki application, designed by Joey Hess. It is licensed under the terms of the GNU General Public License, version 2 or later...
can also be used as a distributed bug tracker. It can manage documents and code as well, in an integrated distributed manner. However, its query functionality is not as advanced or as user-friendly as some other, non-distributed bug trackers such as Bugzilla
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....
. Similar statements can be made about org-mode
Org-mode
Org-mode is an editing mode in the text editor Emacs which supports the editing of plain text hierarchical documents. It has specific support for a number of different use cases, such as writing to-do lists, project planning, and writing web pages...
, although it is not wiki software as such.
Bug tracking and test management
While traditional test managementTest management
Test management is the activity of managing some tests. A test management tool is software used to manage tests that have been previously specified. It is often associated with automation software...
tools such as HP Quality Center
HP Quality Center
HP Quality Center is a set of web-based test management software offerings from the HP Software Division of Hewlett-Packard, many of which were acquired from Mercury Interactive Corporation. HP Quality Center offers software quality assurance, including requirements management, test management...
and Rational Software
Rational Software
Rational Machines was founded by Paul Levy and Mike Devlin in 1981 to provide tools to expand the use of modern software engineering practices, particularly explicit modular architecture and iterative development...
come with their own bug tracking systems, other tools integrate with popular bug tracking systems.
See also
- Issue tracking systemIssue tracking systemAn issue tracking system is a computer software package that manages and maintains lists of issues, as needed by an organization...
- Comparison of issue tracking systemsComparison of issue tracking systemsThis article is a comparison of issue tracking systems which are notable, including bug tracking systems, help desk and service desk issue tracking systems, and asset management systems...
- Including bug tracking systems - Comparison of project management software - Including bug tracking systems