白山 文彦, 外山 純生, 平田 敏之, 菊池 紘, 堀江 亮介 - Androidテスト全書

    プロジェクトをシェアして応援しよう

  • このエントリーをはてなブックマークに追加
執筆完了850人が応援しています

Androidテストのバイブル「Androidテスト全書」執筆プロジェクト!

Androidテスト全書

Androidテストのスペシャリストが最前線の知見を元に執筆!
なぜテストを書くのか、に始まり、テスト入門から実務レベルで使えるUIテスト、自動化まで、これ1冊でテストのすべてを深く網羅。 テストを書いたことのない入門者から、もっといい方法があると思っている中級者、さらに発展的な内容を求める方まで、安定したアプリを継続的にリリースしたい全てのAndroidアプリ開発者必携の内容となっています。 ぜひみなさんの応援でプロジェクトを成立させてください!


電子版(正式版 PDF)公開!(購入者限定)


成立締切日
2018年05月08日 23:59
リリース予定日
2018年08月31日
フォーマット
PDF(250ページ〜)

プロジェクト成立!
執筆が決定しました!

850人がこのプロジェクトを応援しています

プロジェクトを成功させるには、たくさんの応援が必要です。
プロジェクトをシェアして応援しましょう!

電子版 + 製本版 プラン80人が購入

電子版に加えて、製本版をお届けするプランです。執筆完了後、ご住所を伺い配送いたします。(送料込)

  • 電子版書籍
  • PDFがダウンロードできます。

  • 製本版書籍*1冊
  • 製本版を指定のご住所まで配送します。執筆完了後、ご住所を伺います(海外発送はいたしません)。

  • アーリーアクセス
  • 執筆完了前の書籍を、書き上がった章から閲覧いただけます。HTML版の公開を予定しています。また、リリース前のベータ版をPDFで配布いたします。

価格(税込)

4,500

  • 購入期間は終了しました

電子版プラン270人が購入

電子版書籍がダウンロードできるプラン

  • 電子版書籍
  • PDFがダウンロードできます。

  • アーリーアクセス
  • 執筆完了前の書籍を、書き上がった章から閲覧いただけます。HTML版の公開を予定しています。また、リリース前のベータ版をPDFで配布いたします。

価格(税込)

2,500

  • 購入期間は終了しました

《数量限定》アーリーバードプラン500人が購入 (残り:0)

《500円OFF》いち早くご購入いただける方に、お得な早割りプラン

  • 電子版書籍
  • PDFがダウンロードできます。

  • 製本版書籍*1冊
  • 製本版を指定のご住所まで配送します。執筆完了後、ご住所を伺います(海外発送はいたしません)。

  • アーリーアクセス
  • 執筆完了前の書籍を、書き上がった章から閲覧いただけます。HTML版の公開を予定しています。また、リリース前のベータ版をPDFで配布いたします。

価格(税込)

4,000

500円 OFF!
  • 購入期間は終了しました

プロジェクト概要

本書は「全書」というそのタイトルが示す通り、Android開発におけるテストについて文字通り「全て」を網羅すべく企画しました。
すなわち、各モジュールが適切に動作しているか検証するユニットテストの書き方に始まり、 UI操作によって引き起こされる画面の変化を検証する「UIのテスト」、JUnit 5のような最新かつ今後主流になりうるテストフレームワーク、果ては開発現場で運用されているCIシステムや日々のリリースを便利にするCDの知見等を惜しげもなくカバーしています。

筆者がこの本を最初に構想したきっかけは、これら有益な情報が未だに各社または特定個人に「秘伝のタレ」 のように受け継がれるのみでAndroidコミュニティ全体に還元されている状況とは言えない現状を何とかしたいという思いからでした。 これは筆者がAndroid Testing Bootcamp という勉強会を企画・定期開催するに至った動機とまったく同じです。
目まぐるしく移り変わるモバイルアプリ開発の世界においては、ウェブで検索しても情報の鮮度がマチマチであったり知見が散り散りで全体を見通しづらいのはやむを得ないことです。そこで普段からテストやCI/CDに対して問題意識を持っている著者陣が集まって、2018年時点での決定版をここにまとめようではないかという結論に至りました。したがってこの本を読んでいただければ、今までユニットテストを書いたことのない人も、UIテストが1つもなかったプロジェクトでも、最先端の企業の開発現場で実際に使われている生きた知見を手にすることができます。本書では各章の著者がこれまでの豊富な経験を元に「単に公式サイトのチュートリアルをまとめただけ」から一歩踏み込んだ「かゆいところに手が届く」内容をみなさまにお届けします。楽しみにしていてください。

対象読者

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

著者プロフィール

fushiroyama白山 文彦 Twitter GitHub

日本経済新聞社で日経電子版Androidの開発に従事しつつAndroid Testing Bootcampを主催しながらユニットテストの普及に尽力してきました。 現在は日経アメリカ社で研究開発をしています。
テストを愛しています。

初めてAndroidのテストを書く人にも読みやすく、なおかつ中級者にも何か示唆があるような内容を提供できるようにこれまでのテスト人生のすべてを捧げます。 内容は易しすぎたり実際のシナリオとかけ離れないよう、実際のアプリと開発現場を想定したサンプルコードとともに解説します。決して損はさせません!

sumio_tym外山 純生 Twitter GitHub

DeNAのSWET(Software Engineer in Test)グループ所属。
2011年よりAndroidアプリの開発や技術支援をする傍ら、自動テストの導入支援を続けていましたが、2018年1月に現職に転職し、現在はモバイルアプリに対する自動テスト導入支援をメインとして働いています。
また、@ITでAndroid向けテストツールの記事を執筆したり、
DroidKaigi 2016/2017/2018でUIテストツールをテーマに登壇したりもしています。

これまで、UIテストについての知見を少しでも共有できればという思いでDroidKaigiで発表してきましたが、次に必要なのは網羅的に理解してもらえるコンテンツだと思っていました。 この本は、まさにその目的のために執筆します。「Espressoで困ったらこの本を読め」と皆さんに言ってもらえるよう、丁寧に書いていきたいと思います。

tarappo平田 敏之 Twitter GitHub

DeNAのSWET(Software Engineer in Test)グループ所属。
主にモバイルアプリの「テスト戦略」「自動テスト」「CI/CD環境」というキーワード周りを担当しています。

UIテストは、まだまだ実践で使われているところが少ないのが現状だと感じています。 本書によりその状況を少しでも変えられるように、全力で執筆したいと思います。

kikuchy菊池 紘 Twitter GitHub

株式会社Diverse(ミクシィグループ)でAndroidアプリを中心にiOSやWebフロントの開発をしています。

Android開発を始めたころの自分でもスムーズにテストを書き始められるように、今の自分の知識見識をありったけ詰め込む所存です。 至らぬところも多いと思いますので、是非フィードバックをください!

Horie1024堀江 亮介 Twitter GitHub

ヤフー株式会社、株式会社VASILYでの勤務を経て、2018年4月より株式会社スタートトゥデイテクノロジーズでAndroidアプリの開発を主に担当しています。AndroidアプリのCI/CDや開発フローの自動化について考えて実際に試すのが好きです。

より良いアプリを作る上で自動化されたテストとCI/CDは開発者の強力な味方となってくれます。本書を読むことで日々の開発の助けとなれる内容を書けるよう執筆に臨みます。

目次

第1章 テスト入門 fushiroyama 白山 文彦

本章はこの後に続く全ての章の礎となるべく、Androidのテストにはどういったものが含まれるのか、それらの守備範囲はどこからどこまでなのかと言った基礎的な内容をカバーします。

この章を読むと、自分が担保したい内容から本書全体のどの章を読んでいけばよいか分かるようになっています。また、テストを書く見かけのコストと、テストがあることによって得られるリターンなどについても実例に基いて紹介します。 まだユニットテストもUIテストもなく何をして良いか分からない方や全体を俯瞰したい方はこの章から読み始めると良いでしょう。

第2章 Unit Test実践入門 fushiroyama 白山 文彦

本章ではテーマをユニットテストに絞って解説します。具体的には、

  • JUnit4
  • AssertJ
  • Mockito2

を使って比較的シンプルなモジュールのユニットテストの書き方を解説します。 ただこれらのライブラリを延々と解説することは避け、簡単すぎずマニアックすぎないように実務で使うのに必要十分な内容をグッと盛り込みます。

第3章 Unit Test応用編 fushiroyama 白山 文彦

本章では2章の内容を踏まえて、更に応用的なユニットテストの知見を紹介します。具体的には、

  • Androidフレームワークのコードとの付き合い方
  • SQLiteを利用したモジュールのテストの書き方
  • 非同期処理のテストの書き方

に始まり、最終的には

  • テスタブルなモジュール設計
  • 現場で若手に質問されたユニットテストを書きづらい部分のTips

等もカバーします。筆者がこれまでの6年以上に及ぶAndroid開発と日々のテストで培った知見を全て共有します。

第4章 UIのテスト (概要編) sumio_tym 外山 純生

「(画面操作を伴う)UIのテストを自動化したい!」というのは、誰もが一度は考えることではないでしょうか? いざUIのテスト自動化を始めようとして最初に直面するのは「どのツールを選べば良いか分からない」ということだと思います。
本書では、Androidで広く使われているUIのテストツールとして「Espresso」と「Appium」を取り上げますが、本章で両者を比較し、どのようなときにどちらを選べば良いか解説します。 加えて「何故自動化したいのか?」「自動化したい範囲はどこか?」など、自動化に着手する前に整理しておいた方が良いことについても解説します。
まずは本章を読んで、UIの自動テストを始めたくなった時の「困りごと」を解決してスッキリさせましょう!

第5章 UIのテスト (Espresso編) sumio_tym 外山 純生

本章では、UIのテストツール「Espresso」でUIのテストを書くにあたって必要な知識や、実践で役立つテクニックを解説します。
EspressoのAPI概要やEspresso Test Recorderの使い方といった基本的な内容はもちろん、 実プロダクト適用の場面で直面しがちな、以下のような課題を解決する方法についても丁寧に解説します。

  • アプリ側の仕様変更に追随するのが大変で、せっかく書いたテストが失敗のまま放置されてしまう
  • タイミングの問題でテストが成功したり失敗したりして安定しない
  • 特殊なUIコンポーネント(RecyclerViewなど)の操作方法がわからない

加えて、UI Automatorについても、Espressoと併用すると便利なケースに限って紹介します。

第6章 UIのテスト(Appium編) tarappo 平田 敏之

本章では、AndroidにおけるUIテストについてAppiumを利用したケースについて紹介します。
Appiumを用いたUIテストで、「どのようなテストをするのが良いのか」「どのようなことが出来るのか」「なにが担保できるのか」についてサンプルとなるテストコードを用いながら解説していく予定です。 UIテストは利用し続けてこそ価値がありますが、どうしても運用となると様々な課題があります。そこで、その課題についても触れ、どのように対処していくかについても説明します。 これらの情報により、これから実際にUIテストをはじめてUIテストを運用しつづける参考になれば嬉しい限りです。

第7章 JUnit 5 kikuchy 菊池 紘

Androidエンジニアの皆様におかれましては、JUnitは日常的に使っておられると思います。
JUnitは言わずと知れたJava用のテストランナーで、AndroidStudioが生成してくれるbuild.gradleにもテスト用の依存ライブラリとして初めから書かれているものです。
AndroidStudio3.1現在、AndroidStudioが記述してくれるJUnitのバージョンは4ですが、すでに5がリリースされており、置き換えが進むと見られています。
JUnit 5ではテストの書き方が少し変わり、また、簡単に記述できるようになったパターンも存在します。
今のうちにJUnit 5を予習して、快適なテストライフをおくれるようにしましょう。

第8章 CI/CD Horie1024 堀江 亮介

アプリ開発では機能の開発とリリースを素早く行う事が求められます。もちろん不具合も最小限に留めなければなりません。開発速度と品質を両立する上で自動化されたテストとCI(継続的インテグレーション)およびCD(継続的デリバリー)は開発者の助けとなります。
本章ではCI/CDとは何かから、AndroidプロジェクトでCI/CDをどのように実践していくかを中心に解説します。 CI/CDをどう実践するかは、開発しているアプリの種類や組織・チーム構成によって変わると思います。本章では、読者の皆さんが各々の環境に応じてCI/CDを実践できるよう出来る限り詳細に解説する予定です。また、実際にアプリ開発でどのようにCI/CDを実践しているかについても紹介します。AndroidでのCI/CDについて悩んでいる方の参考に少しでもなれば幸いです。



更新情報

アーリーアクセスを公開しました

2018.08.08. 更新

「第4章 UIのテスト (概要編)」のアーリーアクセスを購入者限定で公開しました。

テキストを選択してコメントを残すことができます。気になった点、面白かった点、誤字脱字などありましたらお気軽にコメントしてください。

アーリーアクセスを読む

アーリーアクセスを公開しました

2018.08.08. 更新

「第2章 ユニットテスト実践入門」のアーリーアクセスを購入者限定で公開しました。

テキストを選択してコメントを残すことができます。気になった点、面白かった点、誤字脱字などありましたらお気軽にコメントしてください。

アーリーアクセスを読む

アーリーアクセスを公開しました

2018.08.08. 更新

「第1章 テスト入門」のアーリーアクセスを購入者限定で公開しました。

テキストを選択してコメントを残すことができます。気になった点、面白かった点、誤字脱字などありましたらお気軽にコメントしてください。

アーリーアクセスを読む

プロジェクトを公開しました

2018.04.15. 更新

本日、プロジェクトを公開・開始しました!たくさんの支援をお待ちしております。