作成 2003/10/22
Scarab(すからべ)はIssue Tracking System(出来事追跡システム)です。 Issue Tracking Systemとは、例えばバグの登録、検索、修正履歴などを保存し管理するシステムです。バグだけでなく、機能要求や、TODOリストなどを管理します。Issue TrackingシステムではBugzillaが有名ですが、その他、いろいろなものがあるようです。
バグ管理ツールのリスト
http://www.opensourcetesting.org/bugdb.php
Scarabは、Tigris.orgのScarabプロジェクトで開発されているオープンソースのソフトウェアです。また、Scarabは、Javaサーブレットベースで動作し、Jakarta Turbineフレームワーク上に構築されています(Velocity、Torque、Fulcrumも利用されています)。データはRDBに格納します。
Scarabはサーブレットコンテナ上で動作し、データはRDBに格納します。なので、なんらかのサーブレットコンテナとRDBが必要です。ただし、Scarabには、Tomcatが付属しているので、付属のTomcatを利用するのであれば、別途アプリケーションサーバは不要です。その他に、メールを送信するにはSMTPサーバ、ビルド用にAntが必要となります。ここでは次の環境で実験しました。
http://scarab.tigris.org/からアーカイブをダウンロードします。現時点の最新バージョンは1.0 Beta 17 (17!?)です。ダウンロードしたアーカイブを適当なディレクトリに展開します。ここでは、C:\app\scarab-1.0-b17に配置しました。
ビルド方法は、Scarab-jaに簡潔にまとめられています。ここで、また改めて書く必要性はないかもしれませんが、一応やったことのメモとして、書いておきます。ビルドの説明はまた、README.txtにも記述されています。
ScarabのWebアプリケーションはビルドを実行することで作成します。ビルドはAntで実行し、ビルドファイルはbuildディレクトリのbuild.xmlです。環境に合わせた設定をプロパティーファイルに記述します。build.xmlで記述されている「property file=""」で指定されたプロパティーファイルを設定ファイルとして読み込みます。なおbuild.xml上で先に指定されている方が優先です。
ここではbuildディレクトリ直下にbuild.propertiesという名前でファイルを新規作成します。ここで省略した値はdefault.propertiesの値が使われます。以下はMySQLでの設定です。
build.properties(Scarab-jaのインストールの説明を参考にしました)
scarab.database.username=hoge scarab.database.password=hoge scarab.database.encoding.querystring = ?useUnicode=true&characterEncoding=EUC-JP scarab.user.username=hoge@hoge.com scarab.user.password=hoge scarab.user.firstname=Taro scarab.user.lastname=Yamada scarab.user.email=${scarab.user.username} scarab.site.name=My Scarab System scarab.timezone=Asia/Tokyo scarab.system.mail.host=mail.myhost scarab.email.encoding=iso-2022-jp scarab.email.register.fromAddress=hoge@hoge.com scarab.email.forgotpassword.fromAddress=hoge@hoge.com scarab.email.archive.toAddress=hoge@hoge.com
コマンドプロンプトで、buildディレクトリに移動し、antを実行します。デフォルトターゲットのcompileが実行され、targetディレクトリに必要なファイルが作成されます。
ant
さらにcreate-dbターゲットを実行します。DB作成、テーブル作成が行われます。
ant create-db
これで、実行準備が整いました。
target/binのstartup.batを実行します。ブラウザで「http://localhost:8080/scarab」にアクセスします。正常であれば、Scarabのトップページが表示されます。
起動したはいいけど、最初何をすればいいんだ!?、とならないために、プロジェクト(モジュール)を作って、バグを登録するとこまでのメモを書いておきます。
このあたりちょっと触ってみてこんな感じだろう、という説明なので、もしかしたら間違っているかもしれません。
最初にシステムユーザーでログインし、モジュールを作成します。まず、システムユーザーでログインします(※1)。
※1 私の環境、手順では、システムユーザーが最初のbuild.propertiesで指定したパスワードでログインできませんでした。理由は不明ですが、パスワードを再発行、再承認することで、対処しました。パスワードの再発行は、トップ画面の「パスワードを忘れた方は、こちらをクリック」から行います。パスワードがメールで送信されるので、メールサーバが必要になります。
左側の管理メニューのモジュールを選択します。そして「新規作成」を選択します。
モジュール編集画面で必要な情報を入力し、「作成」を選択します。
モジュールの管理画面で作成したモジュールが追加されます。
管理者がユーザーを作成するのは、左側の管理メニューのユーザから行います。ユーザー検索画面で、作成したユーザーに対し、「ロールの編集」を行うことで、モジュールに対する参加や権限の設定を行うことが出来ます
ロールの意味(@TODO)
ロール名 | 説明 |
---|---|
Developer | |
Observer | |
Partner | |
Project | |
Owner | |
QA | |
Root |
また、管理者でなく新規のユーザーが自分で登録するには、トップメニューの「アカウントの作成」から登録を行います。この場合は、メールへ認証コードが送信され※1、それを再度Web上で入力する必要があります。さらに、ロールをリクエストして、管理者がそれを承認します。
※1 現状、デフォルトで文字化けしてますが、ランダムな文字列っぽいところが承認コードです。
画面左上の「モジュール」を選択すると、モジュール一覧が表示されます。そこで、先ほど作成したモジュールを選択します。画面左上に選択したモジュール名が表示されます。
案件のトラッキングの「enter new issue」を選択します。モジュールの案件種別が表示されます。次に登録する案件の種別を選択します。ここではDefectを選択します。
案件の種別の意味(@TODO )
名前 | 説明 |
---|---|
Defect | |
Patch | |
Task | |
Feature | |
Enhancement |
Enter new Defect画面で、必要な情報を入力して、「次」を選択します。次画面で、詳細な情報を入力できます。最低限Descriptionは入力する必要があるようです。「案件の投稿」を入力します。
「この案件にユーザを関連づける」画面で、担当者(assigned to)を選択できます。「完了」を選択します。
画面上の方のクエリ選択のところで、登録した案件を検索することが出来ます。
上の例では、Scarabの利用を管理者で全部行っていますが、実際はバグを発見した人が入力し、開発者の誰かがアサインを行うと思われます。何かアクションがあるたびにログに記録され、関連ユーザーにはメールで通知されます。Scrabでは、権限や、表示項目などは、様々に設定が可能です。日本語がまだ対応していない部分もありますが、それなりに使いやすいシステムのような気がします。また、Jakartaツールがいろいろと使われています。Ant、Torqueなどを使ったことのある人なら、利用例として参考になるかもしれません。
バグの管理は、これまで、ExcelやNotes等のグループウェアで行ってきましたが、レポートやメール送信機能を含めた、Issue Trackingのシステムを使ってみるのも便利かなぁ、ということで、機会があれば、使ってみたいと思いました(今回はその下調べ)。
Scarab(本家)
http://scarab.tigris.org/
Scarab-ja
http://scarab-ja.sourceforge.jp/cgi-bin/hiki.cgi
Scarab Issue Traking System
http://goas.no-ip.org/~koichiro/scarab/