Android Test Night #1に参加してきた。
当日になっても補欠から繰り上がりそうになかったので諦めていたんだけど、ブログ枠が空いていると聞いて滑り込んだ。
何書けばいいか分からなくて困ったらどうしようと不安だったけど、全然そんなことはなくてたいへん面白い話がたくさん聞けてよかった。
発表内容
「コードレビューをより良くする Danger x Android」:とし氏
www.slideshare.net
DangerというPRチェックツールの紹介とDeNAでの活用例の話。
PRを解析して自動で内容をチェックしたりプラグインを使って他のツールと連携したり色々出来るらしい。
便利そうだし導入ハードルも低そうなので弊社でもさっそく導入したいと思った。
DeNA社にはSWETというテストエンジニアリング専門部隊があって、最近ブログも始めたらしい。
こういうチームでひたすらテストまわりの事とか考える仕事、かっこいいし楽しそうですごいと思った。
「Androidのテストを効率的にするために考えたこと」:OsakaAtaru氏
組織で「自動テストを導入しよう!」となったけど、ちゃんと何のためにテストを書くのかとかどこまで担保するのかとか考えないと駄目だよねという教訓の話だった。
あまりテストに取り組めていない組織が自動テストを導入しようとすると、どうしても「テストコードが書かれていればイケてる今風のプロジェクト」「とにかく自動テストをやるんだ」みたいな気持ちが先行しがちで結局ワークしないみたいな事はありがちな気がするので、大事な話だなと思った。
特にAndroidのようなクライアントサイドだと、ビジネスロジック中心のサーバーサイドとはテストコードを書くコストもリターンも大きく異るので、ちゃんと考えないと難しい。
「Android E2E Testing at Mercari」:vishaljayn氏
www.slideshare.net
メルカリ社でのUIテストまわりのお話。
Appiumを使用してRSpecでUIテストを書いているというのに驚いた。
更にテスト環境としてBitrise、CircleCI、OpenSTF、Docker、AWS Lambdaなどなどフルスタックに活用していて、テスト環境の最先端という感じだった。(詳細はスライドをご覧ください)
「メルカリのテスト環境すごすぎワロタ」としか言いようがない感じで会場も騒然としていた気がする。
自分はAndroidエンジニアなのでどうしてもAndroidに閉じた環境の中で頑張ろうとしてしまうし、UIテストはコストが高すぎてワークしないと最近は考えていたので、完璧にワークさせてそうな話を聞いて衝撃を受けた。
もちろんコストと品質を天秤にかけてペイするかどうかはアプリの規模などによるので真似できるかといえば難しいんだろうけど、学ぶところは多いと思った。
「AndroidSDK with Docker」:theoden9014氏
CI環境のお世話に消耗してるならDockerを試してみよう!という話。
環境を移植しやすくなるけど、高速化出来るかは微妙だし色々な知識も必要なので無理に導入することはないらしい。
Android SDKは再配布禁止なのでDocker imageの扱いには注意とのこと。
Dockerを使う話は最近よく見かける気がしていて、自分は全然キャッチアップ出来ていないのでちゃんと勉強したいと思ってる。。。
「JUnit5とAndroidのテスト」:kikuchy氏
www.slideshare.net
JUnit5をAndroidから使ってみたかったけどAndroid Gradle Pluginが対応してくれないと駄目だったよという話。
そのあとTwitterでこのOSS使えば行けるっぽいという話をしてた。
JUnit5に関してはパラメタライズドテストが簡単に書けるようになったのが良いらしい。
たしかに便利そうだし試してみたいと思った。
「Kotlinで書かれたAndroidアプリをBazelでビルドする」:horie1024氏
Google製の新しいビルドツールBazelでAndroidアプリのテストを実行したりしてみた知見の話。
Bazelについては以下の記事が分かりやすいとのこと。
Google製だし将来的にはGradleからBazelへの流れが来たりするのかな?
「Android CIをBitriseに移行して開発者・QAが幸せになったこと」:nemoto_tadashi氏
CIをBitriseに移行した話。
環境構築らくちんだしE2Eテストも楽になったとのこと。
弊社もBitriseを使用していて便利に使ってる。
基本的に快適なんだけど同時ビルド数制限が結構きびしいのが悩み。
「Clean Architecture & TDD」:Fumihiko Shiroyama氏
Clean Architecture設計でTDDバリバリやっているよという話。
TDDやりたい気持ちはあってもなかなか実現出来てないのですごいと思った。
テストでのチェック内容も徹底してる感じ。
あとMockWebServerがたいへん便利らしい。
サンプルプロジェクトもGitHubにあげてくれているので、舐めるように眺めて学びを得たい。
全体の感想
テストがテーマの勉強会はいつも自分の知らない学びがあってとても面白い。
今回のAndroid Test Nightも最高だったし、次回も参加したい。(タイミングが合えばLT側で)
懇親会でも色々な話が出来て楽しかった。
ぼく自身の最近のテストについての話をすると、プロダクトにKotlinとMVPを導入してPresenterやドメインモデルクラスにどんどんテストを書いていってるんだけど、わりと見よう見まねで書いているところがあるので、やはりあまり綺麗には書けていないなぁと思うし冗長だったりあまり効果的ではなかったりするのではというのが悩み。
テストコード版のリーダブルコードみたいな知見が欲しい今日このごろ。
いや、むしろ自分がもっと色々試行錯誤して(特にPresenterのテストとかは)情報を発信していく側になるくらいの気持ちでなければ駄目な気もする。
がんばろう。