A bug tracking system is a software application that is designed to help quality assurance and programmers keep track of reported software bugs in their work.

Many bug-tracking systems, such as those used by most open source software projects, allow users to enter bug reports directly. Having a bug tracking system is extremely valuable in software development, and they are used extensively by companies developing software products.

A major component of a bug tracking system is a database 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.

In a corporate environment, a bug-tracking system may be used to generate reports on the productivity of programmers at fixing bugs. 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, architects and the developers about the relative ease of fixing bugs.

Local bug trackers are 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.