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
There are many bug tracking systems, and many that are written in PHP. Here is a list of the ones I found:
- Mantis Bug Tracker
- Olate Arctic - commercial, Â£49.99 GBP as of 09/2006
- Anthill - no longer actively developed.
- Pesticide - not available yet
- Flyspray The Bug Killer
Non-php based bug trackers:
- Bugzilla - perl
- Request Tracker a.k.a. (also known as) "RT" - perl
- Roundup Issue Tracker - python
- WebCall - perl
- Frontdesk - perl
- Trac - python
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.
|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.
- 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.
Thanks to this great page of open source software packages:
http://www.dotproject.net/ - Project management software that integrates with Mantis.</p>