Diverse developer blog

株式会社Diverse(ダイバース) 開発者ブログです。

書籍『Androidテスト全書』を弊社社員が執筆しました

『Androidテスト全書』のJUnit 5の章(7章)を執筆しました id:kikuchy です。
クラウドファンディング出資者への発送が一段落し、『Androidテスト全書』の一般販売がはじまりました。

peaks.cc


白山さん外山さんと平田さんがすでに概要やそれぞれのエピソードを語ってくださっております。

ここではkikuchyの視点から、本の概要、kikuchyの担当章の解説と裏話をお伝えします。お付き合いください。


本書の概要

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

この1冊で、現在のAndroid開発環境に自動テストを取り入れるためのノウハウすべてが揃います。
なぜなら、テストに必要な概念の説明から、ツールの基本的/応用的な使い方、最新動向、テストを育てて役立てる仕組みまで解説されているからです。

「自動テストいれたいよな〜〜」と考えながらもどうしたら良いのか詳細なイメージが付いていなかった、
ユニットテストはできたけれどUIテストに挑戦してみたい、
そんなあなたに特におすすめの一冊に仕上がっています。


7章 JUnit 5について

kikuchyは7章を担当しました。

Javaを使ったプロジェクトの自動テストには、すでにJUnit系最新のJUnit 5が使用されるようになっています。
が、Androidの界隈では未だにJUnit 4が主流です。

本章ではその理由と、AndroidプロジェクトでJUnit 5を使用できるようにするandroid-junit5 Gradle Pluginを紹介しています。
さらに、JUnit 5で導入された新機能、そして中でも使用頻度が高いであろうパラメタライズドテストについて、ライブラリの使用方法を(Andoridで動かす際の注意事項を含めて)詳しく解説しています。

特にandroid-junit5については日本語で詳細に解説した初めての文章になっていると自負しています。



裏話

ことの成行

発起人の白山さんからお誘いいただきまして執筆に参加させていただきました。

以前にAndroid Test Night #1にて『JUnit5とAndroidのテスト』という発表をしたときの資料をご覧になって、ご連絡くださったようでした。

どんなきっかけでお声掛けいただくか、わからないものですね。
なるべく外部発表などで露出の機会を増やしておくのが、エンジニアの成長戦略の一つとして有効なのだなと再確認した瞬間でもありました。

嬉しかったこと

執筆途中、JUnit 5の新機能の一つ @Tag アノテーションによるテストケースの実行制御が、android-junit5で期待したとおりに使用できないバグを見つけました。
issueを立てて報告したところ、リポジトリオーナーのmannodermausさんがすぐに修正(といってもほぼ新機能追加)をしてくださいました。

以前、Android Test Night #4では「報告した」というお話だけしたのですが、なんと直していただけた、という後日談です。

世界が良くなることに本以外の場所でも貢献できたというのが、個人的に嬉しいエピソードの一つでした。

ありがたいこと

PEAKSのみなさまには誤字脱字修正などで大変お世話になりました。
私は誤字脱字が多く、特に英語のスペリングを間違うことが多いので、あの原稿の中から探し出してくださって本当に感謝しています。

ひつじさん(日高さん)には編集の際に特にお世話になりました。
技術書向きな書き方になおしていただくのを始め、話の順序の入れ替えや、コラムレベルをどうするかなどご相談に乗っていただきました。ありがとうございます。

共著者の白山さん、外山さん、平田さん、堀江さんには相互レビューを始め、途中で励ましていただいたり、様々な部分でお世話になりました。ありがとうございます!



なお、この本の7章は弊社の業務の一部として執筆されました。
平たく言いますと、業務時間を使って執筆をしております。

こうしたことが許可される会社に興味がある方は、@kikuchyならびに弊社Diverse(ダイバース)社員へDMやメンションなどでお声掛けください!