DeNA Testing Blog

Make Testing Fun, Smart, and Delighting End-Users

本日(11/5)販売開始:書籍「Androidテスト全書」のUIテスト部分を執筆しました

こんにちは。SWETの外山(@sumio_tym)です。 本日、書籍「Androidテスト全書」の一般販売が開始されました! 本書のUIテスト部分(第4〜6章)は、SWETの平田(@tarappo)と私が執筆しています。

f:id:swet-blog:20181029165224j:plain

本書の一般販売を記念して、本エントリーでは本書全体の概要と想定読者を紹介してから、 それぞれの担当著者がUIテスト各章の「見どころ」を解説します。

本書の概要

本書の目次は次のとおりです。

  • 第1章:テスト入門
  • 第2章:ユニットテスト実践入門
  • 第3章:ユニットテスト応用編
  • 第4章:UIテスト(概要編)
  • 第5章:UIテスト(Espresso編)
  • 第6章:UIテスト(Appium編)
  • 第7章:JUnit 5
  • 第8章:CI/CD

ユニットテストやUIテストはもちろん、 最新のテストフレームワークであるJUnit 5や、 テストの運用や開発プロセスの効率化に欠かせないCI/CDまでしっかり解説されています。

このようにAndroidのテスト(正確には自動テスト)すべてをカバーしている本書ですが、 公式サイトのチュートリアルのレベルにとどまることなく、実践的な内容まで踏み込んで解説しています。

また、ネット上に散らばっている古い情報や間違った情報に振り回されることなく、 最新の正しい情報を学べるというのも本書の大きな利点です。

本書の対象読者

このように本書の内容はとても充実していますが、 Androidのアプリ開発経験があれば自動テスト未経験でも読み進められるように意識して書かれています。

本書の「まえがき」には対象読者として次のように書かれています。 Androidの自動テストに関心のある方であれば、自動テスト経験にかかわらずおすすめの一冊になっています。

  • テストを書いた方がいいと思いつつ書けていない方
  • テストを書いているが、もっといい書き方があると思っている方
  • さらに発展的な内容を求める方
  • 安定したアプリを継続的にリリースしたいすべてのAndroidエンジニア

第4章「UIテスト(概要編)」の見どころ(執筆:外山)

4章ではUIテストにありがちな誤解を無くすべく、次の内容を盛り込みました。

  • UIテストを書きはじめる前に検討した方が良いこと
  • EspressoとAppiumの比較
  • テストツールの種類に依存しない、UIテストを長く運用し続けるためのポイント

実は、本書の当初の構想ではUIテストの解説はEspressoとAppiumのみの予定でした。 しかし、具体的な章立ての検討に入った時点で、当初の構想では次のような懸念を払拭し切れないことに気付きました。

  • いきなりUIテストツールの解説が始まると、読者が常にUIテストを書くべきだと誤解しないだろうか?
  • EspressoとAppiumの特徴がわからないと、読者がどちらを採用すれば良いか分からないのではないか?

それらに対する解決策として執筆したのがこの第4章です。

「UIテストを書き始めたけど辛くなってやめてしまった」という悲劇が少しでも減ることを願っています。

第5章「UIテスト(Espresso編)」の見どころ(執筆:外山)

5章は、Espressoの入門者が本書から学ぶことで、実用レベルのUIテストを書けるようになることを目指して執筆しました。

Espresso Test Recorderの使い方やEspresso APIの概要といった基本的な部分をきちんと押さえつつ、 実用レベルでは必ず必要となる次の点を丁寧に解説しています。

  • Page Objectデザインパターンを実践して長く使われ続けるテストにする方法
  • (難しいIdlingResourceだけに頼らない)画面更新の完了を待つためのテクニック

また、 テストを書いていてよく直面する「これってどうすればテスト書けるんだろう?」を解決すべく、 良くあるシーン別の解決方法も説明しています。

まさに、Androidアプリ開発を一通り学んだエンジニアがEspressoを自習できる内容に仕上がったと思っています。 本章をきっかけに、Espressoを実用レベルで使えるエンジニアが増えることを願っています。

第6章「UIテスト(Appium編)」の見どころ(執筆:平田)

この6章では他の章とは異なり、Android特有の話というわけではなく、AppiumというUIテストツールについて書いています。

本章では、このAppiumを使ってUIテストを実装する方法を書いています。 また、本書のために弊社のプロダクトに対して実際にUIテストを1から導入した話を載せています。

UIテストについての日本語の情報は少しずつ増えているように思いますが、まだまだ少ない状況だと思います。 特に実際にUIテストを導入した実績が書かれた話はあまり見たことがありません。

また、5章ではEspressoにふれています。 EspressoとAppiumの2つについて紹介し、それぞれのことを1冊の本で紹介するというのはなかなかないと思います。 これらの情報が、少しでも皆様の知見になればと思います。

終わりに

SWETメンバーが執筆に参加した「Androidテスト全書」について紹介しました。

Androidアプリ開発を一通り学んだエンジニアがテストについて学ぶ際に「次に読む一冊」として自信を持っておすすめできます! このエントリーを読んで少しでも興味を持たれた方は、 是非本書の公式サイトをチェックしてみてください!

また、11/30(金)には 「Android Test Night #5 - Androidテスト全書の回 -」 と題したイベントの開催を予定しています。 本書の筆者、編集者ともに登壇予定ですので合わせてご参加ください!