読者です 読者をやめる 読者になる 読者になる

TestLinkとBacklogの連携

プログラム

【追記】:TestLink 1.8.1に対応しました!「パッチのインストール」に1.8.1用のパッチファイルへのリンクをはってあります。(2009-04-11)

今日は代休でほぼ一日家にいたので*1、かっとなって作ってみました。半分以上が自分自身の勉強のため。代休ばんざいw

新しいものに取り組んでみた - @ikikko のはてなダイアリーTestLinkを触ってみましたが、それだけで終わるのもアレだったので。で、ちょっと興味があったBacklogと連携させてみたらどうかと考えたわけです。


概要

BacklogにはBacklog APIというものを使用して、外部からXML-RPCで扱えるようになっています。で、TestLinkにはMantisとかTracredmine*2といったBTSと連携する機能が標準で備わっています。今回は、TestLinkのBTS連携機能にBacklogを対応させてみようというものです。

以下、プロジェクト管理システムTracとTestLinkの統合手順と同様の流れで設定方法を説明します。なお、実際のソースコードも上記のTrac連携スクリプトをかなり参考にさせてもらっています。

サンプルプロジェクト

説明用に以下のサンプルプロジェクトを使用します。

  • Backlogの設定
  • テストプロジェクト名: TestLinkBacklogTestProject

パッチのインストール

以下のサイトからパッチ「backlog-interface.zip」をダウンロードします。このアーカイブを解凍し、同梱されているファイルをTestLinkのインストールディレクトリにコピーします。「/lib/bugtracking/int_bugtracking.php」が上書きされますので、修正を加えている人は気をつけてください。

PHPの設定

BacklogへのアクセスでOpenSSLを使用するため、エクステンションを有効にする必要があります。XAMPPの人は下記サイトを参考に、その他の人は各自で適切に設定してください。

また、PEARXML_RPCパッケージも必要ですので、インストールしておいて下さい。

Backlogの設定

Backlogにユーザを追加し、TestLinkから閲覧可能な権限を付与します。閲覧さえできれば権限は何でもいいのですが、ゲストビューアーが一番適切でしょう。サンプルプロジェクトでは、ユーザID「viewer」・パスワード「viewer」で登録します。

TestLinkの設定

まず、TestLinkのコンフィグファイルにBacklogを使用するための設定を追記します。

  • /custom_config.inc.php
$g_interface_bugs='BACKLOG'; /*===== この設定を追加 =====*/

さらに、Backlog用のコンフィグファイルを変更します。

  • /cfg/backlog.cfg.php
/** Backlog Space ID */
define('BUG_TRACK_DB_HOST', 'testlink.backlog.jp'); /*===== ここにBacklogのホスト名を設定 =====*/

/** The DB type being used by Backlog */
define('BUG_TRACK_DB_USER', 'viewer'); /*===== ここにビューアーのIDとパスワードを設定 =====*/
define('BUG_TRACK_DB_PASS', 'viewer');

/** Mapping TL test project name vs Backlog project name */
$g_interface_bugs_project_name_mapping = array(
/*===== ここでTestLinkのテストプロジェクト名とBacklogのプロジェクトURLを関連付ける =====*/
    'TestLinkBacklogTestProject' => 'TESTLINK',
);

以上で、TestLinkとBacklogを連携させることができます。

操作例

  1. TestLinkのHomeページで[テストの実行]リンクをクリックするとテスト実行ページに移動します。
  2. テストケース名をクリックしテスト結果を登録します。
  3. 結果登録後に表示された「バグ管理」アイコンをクリックします。
  4. [バグ追跡システムへの接続(Backlog)]リンクをクリックするとBacklogが開くので、チケットを登録します。この際、課題のIDを覚えておきます。
  5. TestLinkに戻り、「バグ管理」アイコンをクリックし「Backlog バグのID」フィールドに先程作成Backlogの課題IDを入力します。さらに[バグの追加]リンクをクリックします。
  6. すると、テストケースにBacklogのチケットへのリンクが張られます。


対応した後に思ったこと。

どうせならTestLinkのバージョンが1.8に上がった後にやればよかった。今日正式リリースされているみたいなんですよね。

あと、ぶっちゃけBacklogとTestLinkのユーザ層ってあんまりかぶってなさそう。中の人も言っているように、Backlogはライトユーザが簡易に使えることを志向している(?)けれど、TestLinkは今のところ結構敷居が高いんですよね。

個人的にBacklogの最大の特徴は『メール連携機能』によるあらゆる人の【巻き込み】易さと『設定の簡単さ』にあると考えてます。

Backlogを使うまでは、プロジェクト管理ツールにはあまり馴染みがありませんでした。TracとMantisは、それまで使った事もあり、それなりに便利さは感じてました。どちらもインターフェースが英語とか一部分は英語だったりして、プロジェクトに参加してもらった人によっては途中から使ってくれなくなったりもしてました。

お仕事とBacklogと私 | Backlogブログ

まぁ、やらずに口だけ出すよりやってから考えるということで。初めてのPHPもごにょごにょしてそれなりに楽しかったですしw

*1:正確には、クリーニングしたものを取りに行ったときに一回外に出ましたw

*2:[http://testlinkjp.org/modules/pukiwiki/?Benri%2FTestLinkRedMine:title=ここ]からredmine対応パッチがダウンロード可能。1.8.0では標準で対応?