やらなイカ?

たぶん、iOS/Androidアプリの開発・テスト関係。

第3回Quesで「ここからはじめる!Androidアプリのテスト自動化」をお話してきました

QuesというQAエンジニアイベントで、Androidアプリのシステムテスト(システムレベルの機能テスト、回帰テスト、UIテスト、等々)自動化についてお話してきました。

f:id:nowsprinting:20131115192940j:plain

"イケてるQAエンジニアの集い"と銘打たれたこのイベント、QAエンジニアの現場の横のつながり、ナレッジの共有、交換などを目的に半年周期で開催されているとのこと。

今回は自動化がテーマということで、前半は@snskさんの「テスト自動化術概論アルファ版」、後半に「ここからはじめる!Androidアプリのテスト自動化」と題して、(QAさん向けなので)上層のテストを自動化する第一歩、取っ掛かり的なお話をさせていただきました。

ユニットテストについての補足

ユニットテスト/デベロッパーテストについてはスライド1枚で流してしまったので、情報源だけ補足します*1

Androidテスト部による@IT連載記事

書籍

Androidアプリテスト技法

Androidアプリテスト技法

Androidテスト部本(共著)。テスト設計など基礎と、主にデベロッパーテストの手法。Robotiumも紹介しています(担当は私)

入門 Androidアプリケーションテスト

入門 Androidアプリケーションテスト

ブリリアントサービスの瀬戸さんの著書

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)

JUnitそのものの理解にはこれが最適です。Androidのテストに関してもページを割かれています

質疑応答

質疑応答や懇親会でいただいた内容を、覚えている範囲で。

結局、おすすめのフレームワークは何ですか?

慣れ+JUnitのコードを書くのに抵抗がないという前提で、Robotium。スクリプトを書くハードルが高いチームならば、MonkeyTalk。

機種依存問題にはどう取り組むべきか

まず、解像度・アスペクト比から来る見栄えの問題と、OS/機種固有のバグ的な問題は分けて考える。見栄えの問題は(今のところ)全画面を通すスクリプトでスクリーンショットを撮り、それを評価する。

OS/機種固有の問題に対しては、mixiさんが公開しているオープンソースのライブラリを使うなど、開発側でピンポイントに対処するべき。

see: mixi-inc/Android-Device-Compatibility · GitHub

アプリにAgentを組み込むツールは、性能等に問題が出ないか

性能、セキュリティなどに問題があるので、リリースするビルドには組み込むべきではない。テスト用のビルドであっても、パフォーマンステストなどで気になるようであれば、Agentを必要としないツールの利用を検討してもいいかも。

リリース用、テスト用など個々のビルドを作るにはGradle+Androidプラグイン導入がおすすめ。

参考:

まとめ・感想

圧倒的アウェイ感に加え、実際に現状Androidアプリに関わっている方は数名*2iOSはもう少しいる、という程度だったので正直どこまでお役に立てたのか?ではありますが、懇親会で実際に自動化に取り組んでいる方、取り組もうとしている方とお話できたので良しとしたい。

あと、スライドに仕込んだネタのウケ方が足りなかったので、これからも精進しようと思いました。

*1:宣伝ともいう

*2:挙手ベース調べ