tomoima525's blog

Androidとか技術とかその他気になったことを書いているブログ。世界の秘密はカレーの中にある!サンフランシスコから発信中。

Firebase Test Lab使ってみた雑感

f:id:tomoima525:20160601065604p:plain:w400
Google IO 2016にて発表されたFirebase Test Labを試してみました。メリデメ、感じたことなどまとめました。 (6/2/2016 追記しました)

tl;dr

2016年5月時点では、サポート端末の観点からアメリカ以外で使うにはまだ早そう。またネットワーク通信エラーでテストがぽこぽこ落ちるのでまだ様子見レベルで使うのが良さそう。

メリット

設定が簡単。とにかく簡単

設定のステップはこちらにあります。Android Studio 2.0 を使っている場合、普通のテスト設定を行う感じで簡単に設定できます。 Test Labを使用するためにはBlazeにアップグレードする必要があります。そのため支払い設定などもする必要がありますが、それを含めても所要時間15分もかかりません。

f:id:tomoima525:20160601065249p:plain:w400

Android Studio上で全ての設定ができる

安い。実機テストが容易にできる

Test Labの使用料は $5/1hです。時間はテスト実行時間で課金されます。現状16台の実機デバイスでテストを回すことができ、何台使おうとも料金は同じです。 これは結構安いんじゃないかなぁと思います。
自分はあるFramework APIが各OSバージョンや端末で想定したどおりに動くか確認したかったのですが、まさにそのようなニーズにマッチしていると思います。

結果の表示方法が充実

Firebaseのコンソール上でテスト中のスクリーン動画を見ることができます。テストがfailした時に動きをみたりといったことに使えそう。さらにこの動画はダウンロードもできます。
f:id:tomoima525:20160601065010p:plain:w400
試してはいないのですが、スクショを撮って保存することもできるようです。あとで目視でデザインを確認したい場合も使えそうですね。

デメリット

実機の網羅性がアメリカ以外では低い

テスト実行できる端末メーカーはNexus(Asus等), Galaxy, LG, Moto, HTCのみでした。これはUS市場の大半を占めています。一方で日本ではSony端末などがメジャーですが、それらはありません。またインドやその他の国でのメジャー端末も網羅されてないと考えられます。もし日本でUIや機能の網羅性をテストしたいのであれば、まだまだ不十分と言えます。

f:id:tomoima525:20160601064943p:plain:w400

テストのConfigurationがイマイチ

これが一番残念だなーと思ったことです。

f:id:tomoima525:20160601064816p:plain:w400

テスト設定時に、必ず端末とOSを選ぶ必要があります。しかしながら、上記のように全ての端末、OSを選択した場合、以下のようにOSと端末のcompatibilityが一致しないものはスキップされます。

f:id:tomoima525:20160601064852p:plain
その検証の分も多分課金されます。じゃあ選択させないでよ...というところです。実に96件中75件がスキップされます。 結果が見難くてしょうがないです。"Run custom test scripts on hundreds of device configurations"って書いてあるのに片手落ち感が半端ない...。

OSと端末がマトリックスになってて、選択できればよいんですけどね。

ネットワーク通信でテストが落ちる

なぜか毎回16台のデバイスのうち1つ(しかも毎回異なる)がテストが落ちているので、ログを見てみたところ、こんな感じのエラーが出ていました。

05-31 14:25:03.407: I/Auth(3666): [AuthDelegateWrapper] Service intent: Intent { cmp=com.google.android.gms/.auth.account.authenticator.DefaultAuthDelegateService }.
05-31 14:25:03.418: W/Finsky(12508): [1] 2.onErrorResponse: Update check failed: com.android.volley.NoConnectionError: java.net.UnknownHostException: Unable to resolve host "android.clients.google.com": No address associated with hostname

どうやら、Google API系のテストに関して、端末によってネットワーク通信エラーが発生している模様。なので処理はOKなのに落ちているくさい。通信エラーなので2回目は通るんだけど、なんで向こうの通信エラーで課金されなきゃいけないのYO

端末がRoot化端末

Firebase Test Lab の売りは実機でテストできることですが、どうやらこの実機はRootが取られているようです。そのためRoot化された端末を弾くような処理を入れていると、テストが通らなくなります。なぜ正規の環境なのにRoot化されているのか謎い...。

感じたこと

まだまだ足りない部分は感じたのですが、これからテスト対応端末が増えてきたら結構良さそうです。なによりAndroid Studioと統合されて気軽にテストできるのがとても良いなと思いました。