連載
» 2015年03月05日 18時00分 公開

Calabash-AndroidによるBDDの実践とJenkinsによる「Living documentation」スマホ向け無料システムテスト自動化ツール(6)(4/4 ページ)

[伊藤宏幸,テスト自動化研究会(STAR),楽天株式会社]
前のページへ 1|2|3|4       

Calabash-Androidで「Living documentation」を実現する3つのJenkinsプラグイン

 このように、Calabash-Androidは、Cucumberのテスト結果リポート作成機能を利用できます。また、JenkinsのCucumber関連プラグインも多く提供されているため、プラグインを組み合わせることで、「Living documentation」を実現可能です。

 ここでは、以下のプラグインを活用して、「Living documentation」をJenkinsで実現する方法を説明します。

ジョブ実行結果ページで分かりやすく表示する「Cucumber Test Result Plugin」

 「Cucumber Test Result Plugin」は、Cucumberのテスト結果を、ジョブ実行結果ページで分かりやすく表示するプラグインです。以下、使い方を順に紹介します。

1)まず、「Cucumber Test Result Plugin」をJenkinsにインストールします。

2)次の例のように、JenkinsでCalabash-Androidのテストを実行し、JUnit形式のテストリポート用xmlファイルを作成します。

$ calabash-android run {YOUR_APK_FILE} -f junit -o calabash-result-reports

3)Jenkinsのジョブの後処理に「Cucumber Test Result Plugin」を追加し、上記で作成したxmlファイルを指定します。

4)テスト終了後、Jenkinsに「Cucumber Test Result」というリンクが表示されるようになります。これをクリックすることで、下記のようにJUnit形式のテスト結果リポートを確認できます。

Cucumber Test Result

円グラフなどで表示する「Cucumber Reports」

 「Cucumber Reports」は、Cucumberのテスト結果を円グラフなどで表示するプラグインです。以下、使い方を順に紹介します。

1)まず、「Cucumber Reports」をJenkinsにインストールします。

2)次の例のように、JenkinsでCalabash-Androidのテストを実行し、テストリポート用JSONファイルを作成します。

$ calabash-android run {YOUR_APK_FILE} -f json -o calabash-result-report.json

3)Jenkinsのジョブの後処理に「Cucumber Reports」を追加し、上記で作成したJSONファイルを指定します。

4)テスト終了後、Jenkinsに「Cucumber Reports」というリンクが表示されるようになります。

Jenkinsのリンク例

5)これをクリックすることで、下記のように円グラフのテスト結果リポートやシナリオ表を確認できます。

Cucumber Reports

実行時間やメモリ使用量なども含めて多角的に表示する「Cucumber Performance Reports Plugin」

 「Cucumber Performance Reports Plugin」は、Cucumberのテスト結果を、実行時間やメモリ使用量なども含めて多角的に表示するプラグインです。以下、使い方を順に紹介します。

1)まず、「Cucumber Performance Reports Plugin」をJenkinsにインストールします。

2)次の例のように、JenkinsでCalabash-Androidのテストを実行し、テストリポート用JSONファイルを作成します。

$ calabash-android run {YOUR_APK_FILE} -f json -o calabash-result-report.json

3)Jenkinsのジョブの後処理に「Cucumber Performance Reports Plugin」を追加し、上記で作成したJSONファイルを指定します。

4)テスト終了後、Jenkinsに「Cucumber Project Performance Report」というリンクが表示されるようになります。

Jenkinsのリンク例

5)これをクリックすることで、下記のようにシナリオ表、シナリオ/ステップ単位での実行時間、メモリ使用量などを確認できます。

Cucumber Project Performance Report(1)
Cucumber Project Performance Report(2)
Cucumber Project Performance Report(3)

タグによるテスト実行対象の特定

 Calabash-Androidでは通常、「{プロジェクトのルート}/features」ディレクトリ以下にある全フィーチャーファイルのシナリオがテスト対象となります。

 しかし開発を進めていくと、次のように全ての「フィーチャー」「シナリオ」をテストしたくない場合も出てきます。

  • 作成/修正中のシナリオだけをテストしたい場合
  • 特定のフィーチャーや、そのサブセットのみをテストしたい場合
  • スモークテストを実施するために、テスト対象を絞りたい場合
  • 「Slow test問題」を回避するために、テスト対象を絞りたい場合

 このような場合に役に立つのが、ここで紹介する「タグ機能」です。なお、この機能はCalabash-Androidのラップ元であるCucumberで提供されています。

タグの定義方法

 タグは、シナリオの前に「@xxx」の書式で定義できます。下記の例のように、複数指定することも可能です。

@basic
Scenario: Add customer information and preview it
 
@basic
@advanced	←複数指定可能
Scenario: Add customer information and preview it by using WebView

テスト実行時におけるタグの指定方法

 「calabash-android run {YOUR_APK_FILE}」コマンド実行時に「-t @xxx」のようにオプションを指定することで、指定したタグのシナリオのみをテストできます。

 次の例は、「@advanced」タグの付いているシナリオのみを実行します。

$ calabash-android run {YOUR_APK_FILE} -t @advanced

複数タグを組み合わせた指定方法

 Cucumberと同様、次の書式で複数のタグを「and」「or」「not」の組み合わせて指定できます。

オプション 意味
-t @foo -t @bar @foo and @barのシナリオを実行
-t @foo,@bar @foo or @barのシナリオを実行(カンマの後にスペースを入れないこと!)
-t ~@foo @foo以外のシナリオを実行

次回は、テスト実行サイクル高速化など

 本稿では最後に、テスト量が多過ぎて時間がかかる場合にタグを活用する方法を紹介しましたが、テストを高速化する方法は、他にもあります。次回は、テストのライフサイクル変更によるテスト実行サイクル高速化の実現について解説します。また最後に、「データ駆動型テスト」やCalabash-Androidのスクリーンショット機能についても紹介しますので、お楽しみに。

参考資料

著者紹介

伊藤宏幸

楽天株式会社 開発プロセスオプティマイゼーション部 品質保証課 テスト駆動開発グループ所属 アジャイルコーチ

アジャイルコーチおよびシステムアーキテクトとして、実際に開発現場に入り、CI/CD(Jenkins)、TDD/BDDをベースとした技術基盤の構築と、それらをベースとした開発プロセスの改善支援を行っている。モットーは、開発効率の向上による「Be happy!」の実現。

2014年3月より、テスト自動化研究会(STAR)に参加。

2014年7月、アメリカで開催された世界最大のアジャイルのカンファレンス「Agile 2014」に登壇。

著書『プログラミングの教科書 かんたん UML入門』(共著/技術評論社)

ブログ「THE HIRO Says

Twitter:@hageyahhoo


前のページへ 1|2|3|4       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。