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

Firebase Test LabでRoboテストを実施した操作ログ

Firebase Android Roboテスト

Firebase Test LabでRoboテストを実施した記録を残しておきます。

数回動かしてみた感想は下記の通りです。

いいところ

  • apkをアップロードするだけでテストが実施できる
  • 端末 × OS のバリエーションテストが実施できる
  • エビデンスが豊富に保存される
  • 無料でも十分テストが実施できる

 難しいところ

  • 実施したテストが十分であるとはいいにくい
  • 文言のミスやサービス仕様上のバグは検出できない
  • アプリによってはテストを自動化するためのコストが高い

 

操作はとてもシンプルで手順なんて必要ないですが、ログとして残します。

なお、料金プランは Spark (無料プラン)で行っています。

  

1. Firebase Consoleから登録済みのプロジェクトを選びます。

console.firebase.google.com

2. プロジェクトのコンソールの左のメニューから Test Labを選びます。

f:id:sjnyas:20170130004811p:plain

3. テストタイプを選びます。

テストタイプは2種類あります。それぞれこのようなイメージだと思います。

  • Roboテスト:準備が簡単だけど、テストの十分性は担保できない。
  • インストゥルメンテーションテスト:準備が大変だけど、テストコードによりテストをコントロールできる。

 

f:id:sjnyas:20170130005737p:plain

4. Roboテストを実施します。

apkをアップロードするだけでいいです。

検証はしていないですが、Firebaseに登録したアプリかどうかの判定をしていなさそうなので、無関係なapkをアップロードしてもテストが実施できると思います。

f:id:sjnyas:20170130004817p:plain

f:id:sjnyas:20170130004819p:plain

5. ディメンション(テスト対象)を選択します。

豊富なテストパターンからテスト対象を選択できます。

  • 端末:実機 29パターン、仮装端末 9パターン
  • OS:端末ごとに1 ~ 4パターン 

f:id:sjnyas:20170130004821p:plain

f:id:sjnyas:20170130004824p:plain

f:id:sjnyas:20170130004827p:plain

また、テストのパラメータを渡せるようです。

  • 実行時間
  • 走査深度
  • アカウント認証情報
  • フォーム入力値

f:id:sjnyas:20170130004833p:plain

f:id:sjnyas:20170130004834p:plain

f:id:sjnyas:20170130004836p:plain

 6. Roboテストがはじまるので、終わるまで待ちます。(10分弱)f:id:sjnyas:20170130004840p:plainf:id:sjnyas:20170130004843p:plain

7. 実行結果を確認します。

テスト結果が一覧で確認できます。

f:id:sjnyas:20170130013328p:plain

一覧から各デバイスのテストレポートが確認できます。

テストレポートがとてもしっかりしています。

スタックトレースf:id:sjnyas:20170130004848p:plainログf:id:sjnyas:20170130004852p:plainスクリーンショットf:id:sjnyas:20170130004857p:plainアクティビティマップf:id:sjnyas:20170130004902p:plain動画f:id:sjnyas:20170130004906p:plain

テストが成功した場合のレポートはこんな感じです。

f:id:sjnyas:20170130004909p:plain

スクリーンショットは右から左に見るのかな

f:id:sjnyas:20170130004915p:plain

f:id:sjnyas:20170130004921p:plain

 

雑感

  • 最初は1デバイスだけで通すといい

無料プランの場合、1日にテストできるデバイスの量に限りがあります。

Roboテストの設定調整や、apkのバグ等により、テストが こける〜やり直す を繰り返すことになる可能性があるので、最初はデバイスを1つに絞ってテストを実施したほうがいいと思います。

1デバイスでテストが成功した後に端末×OSのバリエーションでテストをすると効率的だと思います。

  • どこまでテストできるかわからない

今回の場合、ChromeOAuth認証をしようとするステップでテストが終了してしまいました。

おそらく少し調べればテストをさらに進められると思いますが、同じように途中でテストが終了しては微調整するといったサイクルを繰り返すことになりそうです。

次に試したいこと

  • インストゥルメンテーションテスト
  • テストパラメータの調整
  • 認証情報の登録

以上になります。