Importance of bug tracking
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 source code or its design, and a few are caused by compilers producing incorrect code. A program that contains a large number of bugs, and/or bugs that seriously interfere with its functionality, is said to be buggy. Reports detailing bugs in a program are commonly known as bug reports, fault reports, problem reports, trouble reports, change requests, and so forth.
Defect tracking is important in software engineering as complex software systems typically have tens or hundreds or thousands of defects: managing, evaluating and prioritizing these defects is a difficult task: defect tracking systems are computer database systems that store defects and help people to manage them.
The common types of computer bugs

The common types of software bugs include:
- Bugs due to conceptual error: E.g. syntactically incorrect program, wrong or inappropriate design or concept employed.
- Math bugs: E.g. Division by zero, arithmetic overflow or underflow, lack of arithmetic precision due to rounding etc.
- Logic bugs: E.g. infinite loops and infinite recursion.
- Syntax bugs.
- Resource bugs: e.g. Buffer overflow, access violations, usage of an uninitialized variable.
- Co-programming bugs: E.g. concurrency errors, deadlock, race condition.
- Team-working bugs: E.g. non-matching of documentation and product, out-of-date comments etc.
Prevention techniques
- Adopt proper programming style. Test driven development is most recommended to avoid any bugs. The better the test suit the better the software is.
- Use strong data typing and check on the integrity of the data using some validation functions.
- Take enough time to define the specification for the software.
- Design and review design prior to coding.
- Code review is an essential stage of software development. The cost of bug captured and fixed in this stage is much much less than catching it in production.
- Use continuous improvement methodologies for the software.
- Always prepare regression test suit for the software that you are developing.
- If the software is multi-threaded ensure that the deadlocks do not happen.
Wikipedia has anice comparison of various bug tracking softwares.
click here.