こんにちは。メルカリでQA-SETチームのマネージャ兼自動化エンジニアとして、スマホアプリのテスト自動化をぶりぶりしている@daipresentsです。
僕のチームには、QAエンジニアとSET(Software Engineer in Test)が所属していますが、メンバーの人数が増えてくるといろんな問題がでてきます。たとえば、QAエンジニアの場合は、
- 開発の流れがプロジェクトごとにばらばらで、プロジェクトをまたいで手伝うときに戸惑ってしまう
- テストケースが個人レベルで管理されてしまい、再利用も個人レベルで行われてしまい属人性の高い蛸壺ができてしまう
1については、JIRAを使う文化がメルカリにあるので、徐々にプロセスが整っていますが、2については、QAエンジニアチーム全体の課題として認識されており、スケールする組織を考える上で、今のうちに解決しておきたい課題でもあります。
今回は、2の解決案として、JIRAで使えるテスト管理ツールを調査してみました。
はじめに
検証項目については、以前このブログに書いた以下の記事をベースにしています。
なかには探したけど見つからなかった機能があったり、使い方がわかっていなかったりするかもしれませんがご了承ください。
今回選んだツール「Zephyr」と「TestFLO」は、以下の記事を参考にJIRAプラグインで導入できるものを選びました。
「Xray」というツールも有名なのですが、クラウド上のJIRAだとインストールできず、断念しています(自分でJIRA環境立てていたらインストールできるそう)。
Zephyr for JIRA
Zephyr(ゼファー)は、アトラシアンのマーケットプレイスでもっともインストールされているJIRAプラグインです。
テストケース
JIRAのチケットと同じ感覚でテストケースを作成できるのがJIRAプラグインのいいところだと思います。メニューは英語ですが、ケースの項目見出しは日本語化されている模様。
テストケースは上記のようにステップごとに記述できますが、「説明欄」を使えばシナリオ形式でフリーフォーマットで書けます。
テストを実行する場合は、右上の「Execute」をクリックします。
テストの実行開始
テスト実行は、予定していたVersion、Test Cycleに紐付けて実行できます。VersionやTest Cycle(テスト計画/Test Plan)は、テストケースをひとくくりにできる単位なので、リリースバージョンごとのテストや、定期的に繰り返すレグレッションテストの単位でまとめると便利そうです。
ただ、テストケースからTest Cycleを選ぶことができても、Test Cycleからテストケースを選ぶ方法が見つからなかったので、「あれと、これと、それと、どれをこのTest Cycleに入れよう」といったテスト計画ができない気がします。これだと、フレキシブルにテストのスコープを設定したいときに辛そうですね。
また、「テスト計画を立てるまでもないけど、ちょっとこのケース試したいなー」ぐらいのときは「Ad hoc」というTest Cycleが使えます。
テストの実行画面
作成したステップごとに「PASS」や「FAIL」といったステータスを設定できます。バグが見つかった場合は、バグチケットの紐づけも可能です。
テスト実行ログ
テストの実行ログは、テストケースの画面で確認可能です。ケースを何回も再利用しながら使えそうなのはステキ。
フィルター
ケースや実行ログの検索もフィルタで簡単にできます。Excelやスプレッドシートも便利ですが、検索性はこういったツールのほうが優秀です。
テストメトリクス
テストメトリクスもグラフィカルに確認可能です。レイアウトも細かく設定できそうなので、テスト報告も楽ちんにできますね。
トレーサビリティレポート
面白かったのがこの「トレーサビリティレポート」。「Requirements –> Tests –> Executions –> Defects」か「Defects –> Executions –> Tests –> Requirements」で、どのようにチケットが関連しているのかをグラフィカルに見れます。
TestFLO
TestFLOもJIRAプラグインなのでインストールは簡単です。こちらはZephyrと違って、テストケースをJIRAチケットとしてあつかっておらず、あるチケットの中にテストケースを埋め込む形になっています。
設定画面で有効にすると使えるようになります。
そして、Global Configuration からTestFLOを紐付けるIssue Typeを選びます。
テストケース
テストケースは専用のTest Steps Repositoryとよばれるリポジトリに作っていきます。まずはStepの集合であるSetを作成。
その中にStepと呼ばれる手順を記述していきます。
作成されるとこのようにSetの一覧が表示されます。これだとケース数が増えると大変そうですね。検索もここで行うので、ケースのフィルタリングなどはJIRAの検索機能を使えません。
そして、作ったSet/Stepは、開発で使っているチケットに紐付ける形になります。Zephyrはチケットにチケットを紐付ける形ですが、TestFLOは独自のデータをチケットに埋め込む形です。
テストの実行画面
Stepごとに実行し、その結果を埋めていきます。実行ログはチケット本体に残すしかなさそう。
ただ、TestFLOのライブデモをみると、Test PlansやRequirements、レポート機能へのリンクが表示されているので、Test FLO ReportsやTestFLO Automation for Test Executionといった別プラグインを拡張させないと駄目なのかもしれません。
比較
TestFLOはZephyrと違い、機能が絞られているので比較が難しいですがまとめてみます。
Zephyr | TestFLO | |
---|---|---|
簡単なケース管理 |
◎ JIRAと同じUIで作れる |
○ ケースだけ専用リポジトリで管理する形なのでわかりやすいが、ケースが多くなるとつらそう。 |
自動化されているテストとそうでないテストが簡単に分類できること |
○ JIRAのラベルで分類が簡単にできる。 |
△ カテゴリ別にわけられないが、チケットにケースが紐付く形なので、工夫すればできそう。 |
ケースのトラッキング/トレーサビリティ | ◎ JIRAなので。そしてグラフィカル | △ 上に同じ。 |
簡単なテスト計画づくり(テストスコープ、アサインなど) | ☓ テストサイクルにテストを簡単に追加できない。テストからテストサイクルを選ぶしかない? | △ 別プラグインで提供されている模様 |
テストの進捗管理 | ◎ サマリー表示、メトリクス表示ともに見やすい | △ チケットに紐づくケースの進捗はわかるが、複数チケットがわからない。 |
テスト結果管理 | ○ チケットになるので管理しやすい | ☓ そういう機能が見つからなかった。これもチケットでうまくやるしかない。 |
テスト結果の一括入力 | ☓ ひとつづつしかできない? | ☓ そういう機能はない。これもチケットでうまくやるしかない。 |
バグ管理ツール連携 | ◎ JIRAと連携できる | ◎ JIRAと連携できる |
レポート出力 | △ TracabilityはHTMLとEXCELに出せる。メトリクスやサマリーはブラウザの印刷を使うしかなさそう | △ 別プラグインで提供されている模様 |
操作性 | ○ JIRAなので可もなく不可もなく | ○ JIRAなので可もなく不可もなく |
通知 | ○ JIRAなのでいろいろできる | ○ JIRAなのでいろいろできる |
カスタムフィールド | ○ JIRAなのでいろいろできる | ○ JIRAなのでいろいろできる |
自動テストからのステータス変更(API) | ◎ API Docs | ☓ そういう機能が見つからなかった。 |
自動テストとの連携 | ☓ そういう機能が見つからなかった。 | △ 別プラグインで提供されている模様 |
インポート/エクスポート | ◎ API使えばできそう | ☓ そういう機能が見つからなかった。 |
英語化 |
◎ 海外製プラグインですので | ◎ 海外製プラグインですので |
料金プラン |
|
機能が別プラグインにわかれているので全部揃えるとお高め? |
TestFLOが若干安く感じますが、テスト管理に必要な機能を揃えるとZephyrがよさそうです。
また、JIRAを使われているのであれば、どちらのプラグインもチケット連携できるので、普段見る画面でテスト管理もできるようになります。
スケールする組織を目指す上で、テストケースなどの知識共有の改善は不可欠です。ツールがすべてを解決してくれるわけではないでしょうが、しばらく、Zephyrを試してみたいと思います。
PS・・・テストや自動化の話をカジュアルにできるようにFacebookグループ [Agile Testing, Automation and QAの現場](https://www.facebook.com/groups/899860193555436/) を作ってみました。もしご興味があれば、ぜひ遊びにきてください!
|
||||||||