unoh.github.com

Tracに QA(testing) のステータスを追加する方法

Thu Aug 24 05:37:25 -0700 2006

2次元より3次元のほうが好きな hide です。

昨日のmasatoさんのエントリへのコメントで、Tracの話が盛り上がっていたので引き続きTracネタを続けます。今さらTracについての説明は必要ないと思いますが、どんなものかひと言で説明すると、BTSとWikiとSubversionリポジトリビュアーを合体したようなものです。この組み合わせ具合が絶妙で、Tracは様々なソフトウェア開発現場で使われています。有名なところでは、Ruby on Railsの開発にも使われています。

しかし、ウノウではBTSに影舞を使っています。何故かというと、標準ではTracのワークフローは次のようになっていて、testingのステータスがないからです。

trac-default-workflow.png

最近は、ベータ・クオリティでもいいから、とにかく早くサービスを公開することが重要だという考え方が一般的になってきています。しかし、バグだらけのシステムでは、ユーザはすぐに離れていってしまいます。まともに動かないシステムなんて、ふつう使いたくないですからね。ベータ版といえども、最低限の品質を確保している必要があるわけです。そこでQAのフェーズが重要になってきます。自動でユニットテストを行っていても、思いもよらないバグが出てきたりすることはよくあるわけで、ウノウにおけるテスト番長の存在は大きいです(見た目の存在感もw)。

大切なtestingのステータスがないのが致命的というわけですが、Tracの便利さは一度味わってしまうと、なかなか抜けることができません。で、いろいろ調べていたところ、本家TracのWikiで WorkFlow Discussion というページを発見しました。やっぱり、同じようにTestingのステータスが欲しいと思っている人はいるようで、ブランチとしてTracのWorkflowをカスタマイズできるような仕組みが開発されていました。このブランチ版を使うことで、Workflowを次のようにすることができるそうです。

trac-new-workflow.png


ほとんど普通のTracと変わらないのですが、インストールと設定方法を説明します。
まず、svnリポジトリからチェックアウトしてインストールします。

$ svn co http://svn.edgewall.com/repos/trac/sandbox/workflow trac
$ cd trac
$ python setup.py install
次にプロジェクト環境を作成します。
$ trac-admin </path/to/projenv> initenv
作成したプロジェクト環境のtrac.iniを修正して、verifyのステータスを追加します。
$ vi /path/to/projenv/conf/trac.ini

    ; Available actions for each ticket status
    [ticket-status]
    new = leave resolve reassign accept
    assigned = leave resolve reassign
    reopened = leave resolve reassign
    resolved = leave reassign reopen verify
    verified = leave reassign reopen retest close
    closed = leave reopen retest

    ; Status states for each action
    [ticket-actions]
    accept = assigned
    resolve = resolved
    reassign = new
    reopen = reopened
    retest = resolved
    verify = verified
    close = closed


以上で特別な設定は完了です。試しにチケットをfixedにしてみて、closedにならずに下のようにverifyのActionが表示されればOKです。同じようにTracにはtestingのステータスがないからなぁと思っていた方は、試してみてはいかがでしょうか。 trac-verify-status.png