バグ管理システム「Mantis」
Mantisは、さまざまな機能を過不足なく盛り込んだ、小規模プロジェクトで重宝するバグ管理システムだ。ごく普通のコンピュータ・ユーザでも利用可能なバグ管理ソフトを探している開発者には最適と言える。すっきりとしたインタフェースと多彩な機能を利用して、簡単かつスピーディなバグ管理が可能だ。
MantisはPHPで開発され、68の言語にローカライズされている。バックエンドのデータベースには、MySQL、PostgreSQL、Microsoft SQL Serverを利用可能だ。開発者やユーザーからのバグ報告は、Webインタフェース、WAP対応のモバイル機器(サードパーティ製プラグインの購入が必要)、カスタムHTMLフォームから行える。HTMLフォームなら、任意のWebページに独自のバグ報告フォームを設置できる。バグが報告されたときには、開発者や一般ユーザーに対し、メールやRSSフィード、さらにはTwitterを利用して通知を送信できる。MantisはPHP SOAPライブラリも実装しており、Eclipseなどのプログラムや、JavaおよびMono/.NETなどのプラットフォームとの連携が可能だ。多少の作業を加えれば、ソース管理ソフトウェアやwikiとも連携できるので、ユーザーや開発者がソースファイルを調べたり、現在のバグや今後のリリースについて議論したりできる。
Mantis 1.1.2は、BugzillaやTracなどの著名なバグ管理システムと同様の機能を期待どおりに完備しており、しかも無駄がない。バグの表示ページには簡易画面と詳細な画面があり、複数のプロジェクトやサブプロジェクトにも対応している。バグの種類(ユーザーインタフェースのバグ、サウンド関連のバグなど)も登録でき、Mantisではこれを「カテゴリ」と呼ぶ。各ユーザーにロールや権限を割り当てたり、バグの解決状態に応じて変更履歴とロードマップを表示したりといった機能もある。ユーザーは、自らに関係するバグのみについて、確認や整理を行うことも可能だ。たとえば、管理者から匿名の報告者までのいずれのユーザーであるかに応じて、特定のバグの表示/非表示を変えることができる。
Mantisのインストールは簡単で、Bugzillaとは大違いだ。まず、Mantisのダウンロードファイルを展開し、サーバにアップロードする。次に、アップロード先のフォルダのURLをブラウザで開くと、Webインストーラが立ち上がる。この中で、データベース情報の入力や、管理者アカウントの作成を行う。その後、セキュリティ対策のために、画面の指示に従って、Mantisのプロジェクトフォルダ内のadminフォルダを削除すればよい。
Mantisでは、バグ管理の基本操作もしやすい。操作パネルが整然と配置されており、バグ情報の登録を簡単に行える。管理者は、バグの解決状態を変更したり、ユーザーにバグを割り当てたり、ソフトウェアプロジェクトの設定を変えたりといった作業を難なく進められる。ユーザーは、面倒な手順を踏まなくてもバグ報告が可能だ。
だが、高度な機能を使うとなると、操作は必ずしも単純明快とは限らない。たとえばデフォルトでは、それぞれのバグのプロパティ(影響が及ぶソフトウェアバージョンなど)を変更履歴やロードマップに表示するには、手作業での設定が必要になる。これを変更するには、[プロジェクトの管理]画面の管理パネルで、プロジェクトに対してソフトウェアバージョンを作成する(残念ながらこれを自動で行うことはできない)。そのうえで、バグを選択してから[更新]リンクをクリックし、[詳細]をクリックする。これでようやく、既存のバグが変更履歴とロードマップに自動で表示される。
Mantisには、Bugzillaより優れた機能もある。たとえば、Bugzillaの場合、プラグインを使わないと変更履歴が生成されない。また、Mantisには、ステータスに応じてバグを色分け表示する機能がある(デフォルトでは、解決済みは緑色、新規は赤色、割り当て済みは青色)。このおかげで、バグリストをざっと眺めただけでも、ステータスを簡単に見分けられる。Tracは濃淡の違いでバグ表示を見やすくしている(Bugzillaは空白しかない)が、解決状態に応じて自動でバグをはっきり色分けしてくれるのは、3つのうちでMantisだけだ。あまり目を凝らさなくても、全体にさっと目を通すことができる。
Mantisで特筆に値するのが検索機能のインタフェースだ。BugzillaやTracよりもすっきりと洗練されている印象を受けた。重要度、優先度、バージョン、解決状況、報告者、製品ビルド、オペレーティングシステム、プロジェクト、日付など、さまざまな条件に基づいて直感的な操作でバグを検索できる。複数の条件を組み合わせた検索も可能だ。
MantisがTracより1歩進んでいるのが、日付や担当者、チケットがアクティブかどうかに応じてバグを確認するときだ。目的の列をクリックすることで、リストを並べ替えることができる。ただ、このインタフェースで1つ残念なのが、バージョン順でバグを並べ替えることができない点だ。詳細検索の機能を使って特定のバージョンのバグを検索することはできるが、それぞれ異なるバージョンの2つのバグを比較することはできない。また、少々残念な点がもう1つある。wikiやソース管理ソフトウェアとの連携機能がデフォルトで備わっていない点だ。
Mantisをwikiと連携させるには、両者のいくつかのソースファイルを管理者が修正する必要がある。Mantis Projectのwikiには、DokuWikiとの連携方法について説明したページがあり、必要なPHPコードも掲載されている。DokuWikiとの連携は、これをコピー&ペーストするだけで実現可能だ。一方、TikiWikiとなると、話は少々厄介だ。Mantisの機能紹介のページには、TikiWikiとの連携が可能とあるのだが、MantisとTikiWikiのどちらのサイトを隅々まで見ても、関連する情報は見つからなかった。そして、SourceForge.netのCVSのログでようやく答えが見つかった。Mantisとの連携機能は2004年にTikiWikiから削除されたとのことだ。
SVNなどのソース管理との連携なら、手順はずっと単純だ。対象となるソース管理の特別なビルドを管理者が作成する必要はない。ただし、たとえばSVNであれば、カスタムフックを作成する必要はある。そうすれば、SVNのログに基づいてMantisにチケットを自動的にクローズさせることが可能となる。
Twitterの更新やメールによる通知などの珍しい機能をMantisで利用するのは多少の手間がかかるが、ソース管理やwikiとの連携といった機能を導入するのは難しくはない。Mantisの開発チームは、次のメジャーリリースとなるMantis 1.2(リリース予定日は不明)で、こうした作業に伴う手間の軽減を目指している。プラグインを簡単に利用できるようになることで、開発者にとっても、利用する側の管理者にとっても、使いやすくなるはずだ。
Mantisは非常に優れたバグ管理システムだ。ロードマップを見る限り、次のメジャーバージョンはさらに期待が持てそうだ。