はじめに
みなさんは、トラブルチケットという言葉をお聞きになったことはあるでしょうか。トラブルチケットは、問題発生時に発行される言わば受付票のようなもので、IT業界では障害管理を始めさまざまな用途で使われています。ここでは、アプリケーションのテストに不可欠な存在となったバグ追跡システムについて紹介するとともに、バグ追跡システムのユースケースについて紹介します。
バグ追跡システムとは
バグ追跡システム(BTS:Bug Tracking System)は、アプリケーションのテスト時や利用開始後に発生した障害を管理するシステムです。アプリケーションのリリース前に行われるテストは、アプリケーションの開発などに関わった関係者だけで行われますが、一度リリースしたアプリケーションが、数千から数万人規模で利用される場合、障害だけでなく、その他の問い合わせも利用者の増加とともに増えてくる事が予想されます。これらを人手を使って処理することも可能ですが、障害報告や問い合わせの件数が増えて来ると、人が対応していたのでは、対応や回答までのレスポンスが速くなったり、遅くなったりなど担当者の業務負荷に左右されることになります。しかし、バグ追跡システムを使うことで、利用者から受けたバグ報告や問い合わせ内容をシステムに登録し、受付番号(トラブルチケット)を発行することで、受け付けたチケットの受付日、受付時間、受付内容、完了日、担当者などの対応状況を一元管理できます。このように、バグ追跡システムでは、報告された内容をシステムに登録することで、未対応のチケットや解決に時間が掛かっているチケットなどチケットの状況をさまざまな角度から分析し、障害報告や問い合わせへの対応を通して、アプリケーションの品質改善などに役立てています。以下では、バグ追跡システムのユースケースについて紹介します。
代表的なバグ追跡システム
フリーのバグ管理システムには、Tracや影舞のようにPythonやRubyで実装されたシステムの他に、BugzillaのようにPerlで実装されたシステムもあり、さまざまなシステムが公開されています。以下に、代表的なオープンソースソフトウエア(OSS)のバグ追跡システムを簡単に紹介します。
①Trac(トラック)
Tracは、スウェーデンのEdgewall Software社が開発するプロジェクト管理システムです。プログラミング言語Pythonで実装されており、プロジェクト管理システムのサブ機能として、バグ管理システムが搭載されています。Wiki(ウィキ)などの情報共有ポータルサイトも構築できるため、プロジェクト関係者間で資料やさまざまな情報を共有できるため、大規模なプロジェクト管理に適しています。Tracは、LAMP(Linix,Apache,MySQL,PostgreSQL)環境だけで無く、殆どのUNIXマシンで動作します。
②Bugzilla(ばぐじら)
ウエブブラウザFirefoxで有名なMozilla Foundationが開発しているバグ管理システムです。プログラミング言語Perlで実装されており、日本語化も可能です。元々Netscape Communications社のウエブブラウザNetscapeのバグ管理のために作られたシステムのため、安定して利用できるシステムだと言えます。Tracと同様に、殆どのUNIXマシンで動作します。
③影舞(かげまい)
影舞は、Fukuoka Tomoyuki氏が開発したバグ管理システムです。プログラミング言語Rubyで実装されており、データベースが無くても動作する手軽さとソースコードの少なさが特徴です。2008年3月にリリースされたバージョン0.8.8が最新のバージョンであり、現在は開発を終了していますが、Bugzillaと同様に安定して利用でき、カスタマイズしやすいシステムだと言えます。Tracと同様に、殆どのUNIXマシンで動作します。
ユースケース1:ソフトウエアの障害管理
ケース1は、ソフトウエアの障害管理です。バグ追跡システムは、ソフトウエアのバグを追跡するシステムですから、バグ管理に利用されるケースが最も多くなっています。フリーのUNIXであるFreeBSD Projectでは、1994年以降GNATS(GNU BUG TRACKING SYSTEM)というバグ追跡システムを利用しており、FreeBSDのユーザーは、send-prコマンドを利用して、FreeBSDのGNATSシステムに問題報告を送信できるようになっています。また、ウエブインタフェースを利用したバグ報告も利用できるようになっています。
ユースケース2:営業支援システム
ケース2は、営業支援システム(SFA:Sales Force Assist)への適用です。バグ追跡システムでは、報告日、報告者、報告内容、優先度、添付ファイル、プラットフォーム、バージョン、再現性などの項目を使ってバグ管理に必要な情報を登録します。この機能を営業管理システム用にカスタマイズすることで、訪問日、営業担当者、同行者、訪問先、営業内容、案件確度、添付ファイルなどを管理することができます。そのためには、バグ管理システムのカスタマイズが必要となりますが、今回紹介した影舞は、ソースコードの少なさからカスタマイズに適しています。
ユースケース3:QA管理システム
ケース3は、QA管理システムへの適用です。QA管理は、Yahoo知恵袋やOK Waveなどのように掲示板方式で実装されることが多いのですが、バグ管理システムをカスタマイズして利用することで、例えば登録された情報をCSV形式で出力したり、出力する項目もカスタマイズによって追加することができるため、掲示板方式のQ&Aシステムよりも柔軟なシステムを構築できます。
まとめ
ここまで、バグ追跡システムについて紹介するとともに、ユースケースについて紹介しました。オープンソースソフトウエアのバグ管理システムは、さまざまなプログラミング言語で実装されており、カスタマイズが必要になった場合でも、開発しやすい言語のシステムを選定することで、既存のシステムの機能拡張を行うことができます。今回紹介したユースケースをヒントに、新たなユースケースを検討してバグ管理システムを活用してみませんか。