What is a Bug Tracking System? (BTS)

A bug tracking system is a user interface for organizing, tracking, and updating software bugs. There is an overlap with another common type of software focused on trouble tickets for customer support, in fact some software can handle both. There is also another overlap with project management software.

Important factors for a bug tracking system

  • Ease of integration with email, project management applications, and source code versioning
  • Ease of use
  • Customization

There are many bug tracking systems, and many that are written in PHP. Here is a list of the ones I found:

Non-php based bug trackers:

The Demo The first thing I look for is a demo. It is by far the easiest way to get a feel for a piece of software. The attention to detail balanced with simplicity is telling of the developer's commitment to quality. Furthermore, if there is no demo available, it may be a sign that the software is not yet ready for distribution - a problem which plagues many open source projects.

Project Demo Available Notes
Flyspray Yes The demo is the actual bug tracker for the project. Impressive! Reminds me of when subversion started using itself for source versioning. However, you can't see the admin side of the application.
phpBugTracker Yes Running on Sourceforge it is slow.
Mantis Yes The Mantis demo was down, so I was unable to evaluate it.
Eventum No They have some good screenshots, though they seem more complex than I'd like.
Arctic Yes The demo is fully functional which is a must for a commercial piece of software. However the software seemed TOO simple for being commercial.

Database Model Another tell-tale sign for quality in open source projects is the data model. Is is simple, easy to understand? Does it conform to data modeling guidelines? Is it flexible?

  • Anthill: Comes with MySQL and PgSQL dumps. Has a highly abstract "config" table with different settings whose attribute is set by an id. I've considered doing so in the past, but avoided it because it was too abstract, and likely difficult for developers to work with. Has its own user and sessions tables. The bug tables are: bugs, bugdesc, products, versions, and components. There are other tables which I would consider configuration rather than data: severity_d, priority_d, status_d. These are presumably used to set various levels for use within the application.
  • Eventum:
  • Flyspray: First thing I noticed is that the table names are prepended with "flyspray_", which means the author likely intended the database to be integrated with other information - a good sign. Flyspray also has configuration options in the database: task type, resolution, categories. Has tables for projects and tasks which seem logical in design, and the same with users and groups.

Conclusion: I may do more evaluation, but thus far, Flyspray is the clear winner. It has simplicity, sophistication, and integration possibilities. While I'm also going to evaluate Trac, I'm going to go ahead and install Flyspray and evaluate that in a separate page.

Flyspray Documentation?


Thanks to this great page of open source software packages:

http://linas.org/linux/pm.html<p>Other resources:

http://dev.budts.be/item/68/catid/19

http://www.dotproject.net/ - Project management software that integrates with Mantis.</p>