Open Testware Reviews
Mantis
Copyright
2004 by Tejas Software Consulting - All
rights reserved.
Contents
Overview
-- Observations -- Maturity
-- Project activity -- Platforms
-- Support
-- Documentation
-- Installation
-- Implementation
-- Performance
-- Similar tools
-- Limitations
Overview
Reviewer: Danny
R. Faught
Date reviewed:
2004-05-31
Version reviewed: 0.18.2
Maintainer: Kenzaburo Ito and a team of 10 other developers
URL: http://www.mantisbt.org/
Testingfaqs.org
category: Defect
Tracking Tools
License: GNU GPL v. 2
User
interface: web
Mantis is a web-based
bug tracking tool that can run on many different platforms. It's
written in PHP and uses the MySQL database. It was written by Kenzaburo
Ito
and was handed off to a team of volunteer developers around 2002.
Here's a screen shot:

Observations
Mantis includes a basic
set of bug tracking features for a software project. Its main appeal is
its simplicity.
Bug reporting is fairly
straightforward. A simple form comes up by default. The simple form
doesn't include the "Product Version" field, which is something that I
always like to see in a bug report. You can switch to the advanced
report, which adds fields for product version, operating system, plus
several others that I wouldn't typically use. You can add custom
fields, but the options for customizing built-in fields are limited.
Some
basic features, such as searching, aren't available for custom fields.
Browsing existing bugs
is not difficult. There are several filters at the top of the View Bugs
page that can help you focus on the bugs you want to look at. But more
sophisticated searching is not supported, like listing bugs opened or
closed within a certain date range. There is a CSV export feature that
could allow you to use another program to do more sophisticated
reporting, but it doesn't include enough of the fields to be very
useful. You might find
yourself directly querying the database to get decent reports (it's not
unusual to resort to this when using a commercial bug tracking tool,
too).
I had trouble getting
email notifications to work. There are several ways to customize email
delivery, including replacing PHP's standard mail function with
PHPMailer (which I didn't try). Questions about email notification
problems were fairly frequent on the mantisbt-help mailing list. In my
case, I was using a server that is not normally used to deliver email,
and that compounded the problem. Given enough time to properly
configure the server and Mantis's email options, it looks like the
email problems can be solved.
I noticed several nifty
features.
- The product version field has an enumeration that the
administrator sets up to limit the choices. Each value has a timestamp
that determines the order that they show up in the list, which is nice
if the version labels aren't in alphanumeric order.
- There is a profile feature for the platform, operating system,
etc. that can speed up bug reporting for the platforms that you usually
report against.
- You can set up multiple projects in the database, and users can
view bugs in all of their projects at once if they want to.
- Mantis
can use the JpGraph library to draw graphs if you install it. The
documentation is sketchy on what kinds of graphs are supported
- Mantis has been localized for several different languages.
Version 0.18.3 was
released during the course of my review. According to the release
notes, the changes focus on fixing security vulnerabilities and
improving the CSV export feature.
While Mantis didn't have all the features I'd want for a hard-core bug
tracking tool, I've had similar frustrations with some of the
commercial tools I've used. In fact, I don't think I've ever seen a bug
tracking tool that really made a good first impression. If your needs
are simple and you can tolerate some quirks, Mantis could be a good
choice. If you're
wanting to implement your own bug tracking system, you'd do well to
start with a code base like Mantis instead of starting from scratch.
Maturity
4 - Beta (on a scale of 1-5)
SourceForge says production quality, but the "0" release number and the
Mantis documentation indicate that it is still in the beta stage. I
give it a beta rating primarily because of difficulties in configuring
email notification, incomplete documentation, and robustness problems.
Project activity
5 - Very active (on a
scale of 1-5)
Five releases in the
past year, counting one beta release. Releases have been decelerating
over the
past few years, so an "Active" rating may not be too far away.
There is a good level of
community activity. Traffic on the
mantisbt-help user-level mailing list is fairly light but consistent.
Traffic on the mantisbt-dev mailing list for developers seems to be
bursty, with no messages some months and a peak of 240 messages in
February 2003.
Platforms
Mantis requires a web
server (Apache, IIS, and others will work), PHP 4.0.2+ and MySQL
3.23.2+.
Several different operating systems can run Mantis, including Windows,
MacOS, OS/2, Linux, Solaris, and BSD. Disk usage requirements are
fairly light if users don't upload large attachments. I did not find
any limitations on the client platforms that can be used to access the
web interface.
Support
A few people offer consulting
services for Mantis setup, customization, and maintenance.
There are five mailing
lists for Mantis - mantisbt-announce, mantisbt-cvs, mantisbt-dev,
mantisbt-help, mantisbt-lang. The mantisbt-help list is the place to
start.
Oddly enough, there are also five web forums for Mantis,
and several of them also have a good deal of activity, though not quite
as much as on the mailing lists. It seems strange to splinter the
discussions across two different types of discussion mechanisms.
SourceForge does not list the forums where it usually does, but you can
get to them through the Mantis home page. There is also an IRC channel
dedicated to Mantis. You can watch for news on the "Latest News"
section on the SourceForge
summary page, and also a somewhat different new listing on the
Mantis home page.
The change log for Mantis releases is available using the tool's web
interface if your account has administrator privileges (go to
Manage->Documentation->ChangeLog). This is a nice feature. The
README file and other text files from the installation package are also
available using this interface.
Like most SourceForge projects, version control
is handled via SourceForge's CVS server. Bugs are not tracked
using SourceForge's bug tracker, but instead with Mantis itself. It's a
good sign when a development team uses their own tool.
Documentation
The user documentation is maintained on manual.mantisbt.org and is not
available in the local installation. This means that the documentation
you're reading might not match the version of Mantis that you have
installed. Furthering the confusion is the note in the manual that says
the documentation is for version 0.18.0, which is older than the
version I had installed. I was told by one of the developers that the
documentation is intended to apply to all 0.18.x releases.
While a good deal of work has obviously gone into the documentation, it
still only gives sparse coverage of most of the features, and it's not
hard to find corners of the application that aren't documented at all.
One nice feature of the documentation is that users are allowed to post
comments (with a moderator's approval) on any page. It would be
interesting to see how many of these comments lead to improvements in
the core documentation.
On the local installation, administrators can upload additional
"Project Documentation" that will be visible to everyone who can access
the project.
The Google search feature on the documentation pages is broken. A
workaround is to go to Google yourself and add
"site:manual.mantisbt.org" to your search terms. (bug
3742)
Installation
Mantis installs from a
compressed tar file that's just over half a megabyte, expanding to
about 2.5 megabytes when installed. I later saw that Mantis is also
available as a Debian package using apt-get. Installing Mantis requires
some
administrator-level knowledge of the MySQL database, the PHP scripting
language, and your web server.
The documentation
doesn't offer any help in installing MySQL or creating the database for
Mantis, though I found these steps fairly simple when I installed the
Debian package for MySQL and found the appropriate documentation for
creating a database. I had no experience with MySQL or PHP before I
started. The most confusing part was setting up MySQL user
accounts, which I still don't quite understand. After this point, the
Mantis installation documentation was very helpful.
PHP was easy to install
on Linux along with the Apache web server. I did have to install an
extra extension so PHP could connect to the database (the php4-mysql
package).
I tried to install
Mantis on a Windows XP box that's also running Apache, accessing the
database on the Linux server. But installing PHP was more
difficult than it was on Linux, and I lost interest before I got it
working.
There's an "Upgrade your
installation" link on the administration page that updates the database
schema when you upgrade to a newer version of Mantis.
Implementation
Mantis is about 18,000
lines
of PHP code, according to SLOCCount. Some files are well-commented, but
other files are commented only sparsely. I did not see any test cases,
though there is a diagnostic page in the admin directory that provides
useful information and an email delivery test.
Performance
I tested Mantis on my old 450 MHz machine running Debian Linux 3.0 as
the server, with 384 MB
memory. I used a 1.4 GHz Windows XP
machine as the client, connecting over a 100 megabit network.
The Summary page was slow for me. It took 14 seconds for the Summary
page to load for a project with one bug. For a project with more than
16,000 bugs (which shared a database with the small project), it took
43 seconds to load the Summary page. It takes about 10 seconds to load
one of the "View Bugs" pages on that larger project. Using the
browser's Back button could similarly result in long delays, so I often
would view a bug in a new browser window in order to avoid waiting for
a large page to reload when I want to go back to it.
The bug database for Mantis itself was faster than this, which leads me
to believe that they have a faster machine and have probably tuned the
database and web server better than I have. Another factor is that
there are only about 2000 total bugs in their database.
I noticed very little disk access during my performance testing, so the
database is probably fitting within the buffer cache. Mantis seems to
be CPU bound on my antiquated system, with Apache (running the PHP
module) and MySQL taking turns hogging the CPU.
Performance can be slow if there are a lot of comments attached to the
bugs, according to bug
2921.
Similar
tools
The most popular free bug tracking software is Bugzilla. I chose to
review Mantis instead because two subscribers specifically requested
it. Mantis is generally considered to be a simpler tool to set up and
maintain than Bugzilla. The Mantis user interface is also less
cluttered than Bugzilla's, which has always struck me as ugly. You can
see Bugzilla in action at its original home, the Mozilla project. If Mantis
provides all the features you need, it might be worth choosing it in
favor of Bugzilla.
There are a few dozen other free bug tracking tools, and several ticket
tracking and project management tools that can be used for bug
tracking. Thirteen are mentioned in the Defect
tracking tools survey from last year.
Limitations
The bug database for Mantis shows 744 bugs open, 104 of which are
marked as resolved, plus 1263 closed bugs. So it appears that users of
a bug tracking tool are quick to volunteer to report bugs against the
tool itself. I reported 15 new bugs during the course of my review
(summarized below), and I also ran into several bugs that were already
filed in the database. These items are the most serious limitations and
clusters of problems that I encountered:
- Email notifications can be difficult to configure. This seems to
be a frequent source of problems for users.
- The CSV export and other reports do not include nearly enough
information for moderately sophisticated analysis.
- Mantis is not very robust, with many unhelpful error messages,
and sometimes it fails silently. The common paths through the code
worked fairly consistently, but if you push into the corner you may
encounter problems.
The bugs I reported are listed below, which may give you a sample of
the character of previously unexplored problems in the tool and
mantisbt.org:
3780
- Misspelling in doc/README - "administraton"
3781 -
Bad link to php.net on admin/check.php
3782
- Inconsistent documentation of register_globals
3783
- Labels overflow table boundary on View Bugs page
3784
- Mangled news display on stylesheet admin page
3785
- Typos on faq item 9.16
3786
- Deleting a category that is in use should issue a warning
3787
- Stale reference in doc/INSTALL
3793
- Enumeration values might be impossible to select
3794
- Fields can quietly take on unintended values after enumerations are
modified
3799
- Race condition in summary calculations causes inconsistent totals
3798
- Locked out of View Bugs page after large query
3899
- Bogus error when adding a documentation file without drive spec
3907
- Bad RSS link on http://bugs.mantisbt.org/
3908
- Summary page doesn't show total number of bugs