QuesというQAエンジニアイベントで、Androidアプリのシステムテスト(システムレベルの機能テスト、回帰テスト、UIテスト、等々)自動化についてお話してきました。
"イケてるQAエンジニアの集い"と銘打たれたこのイベント、QAエンジニアの現場の横のつながり、ナレッジの共有、交換などを目的に半年周期で開催されているとのこと。
今回は自動化がテーマということで、前半は@snskさんの「テスト自動化術概論アルファ版」、後半に「ここからはじめる!Androidアプリのテスト自動化」と題して、(QAさん向けなので)上層のテストを自動化する第一歩、取っ掛かり的なお話をさせていただきました。
ユニットテストについての補足
ユニットテスト/デベロッパーテストについてはスライド1枚で流してしまったので、情報源だけ補足します*1
Androidテスト部による@IT連載記事
書籍
- 作者: 生路茂太,井芹洋輝,神原健一,長谷川孝二,松木晋祐,宮田友美,吉澤毅
- 出版社/メーカー: 秀和システム
- 発売日: 2013/02
- メディア: 単行本
- この商品を含むブログ (6件) を見る
- 作者: 瀬戸直喜/株式会社ブリリアントサービス
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/05/25
- メディア: 大型本
- この商品を含むブログ (2件) を見る
JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)
- 作者: 渡辺修司
- 出版社/メーカー: 技術評論社
- 発売日: 2012/11/21
- メディア: 単行本(ソフトカバー)
- 購入: 14人 クリック: 273回
- この商品を含むブログ (64件) を見る
質疑応答
質疑応答や懇親会でいただいた内容を、覚えている範囲で。
結局、おすすめのフレームワークは何ですか?
慣れ+JUnitのコードを書くのに抵抗がないという前提で、Robotium。スクリプトを書くハードルが高いチームならば、MonkeyTalk。
機種依存問題にはどう取り組むべきか
まず、解像度・アスペクト比から来る見栄えの問題と、OS/機種固有のバグ的な問題は分けて考える。見栄えの問題は(今のところ)全画面を通すスクリプトでスクリーンショットを撮り、それを評価する。
OS/機種固有の問題に対しては、mixiさんが公開しているオープンソースのライブラリを使うなど、開発側でピンポイントに対処するべき。
see: mixi-inc/Android-Device-Compatibility · GitHub
アプリにAgentを組み込むツールは、性能等に問題が出ないか
性能、セキュリティなどに問題があるので、リリースするビルドには組み込むべきではない。テスト用のビルドであっても、パフォーマンステストなどで気になるようであれば、Agentを必要としないツールの利用を検討してもいいかも。
リリース用、テスト用など個々のビルドを作るにはGradle+Androidプラグイン導入がおすすめ。
参考:
まとめ・感想
圧倒的アウェイ感に加え、実際に現状Androidアプリに関わっている方は数名*2、iOSはもう少しいる、という程度だったので正直どこまでお役に立てたのか?ではありますが、懇親会で実際に自動化に取り組んでいる方、取り組もうとしている方とお話できたので良しとしたい。
あと、スライドに仕込んだネタのウケ方が足りなかったので、これからも精進しようと思いました。