Android Test Night #1

[Android Test Night \#1 \- connpass](https://testnight.connpass.com/event/63753/) 

## コードレビューをより良くする Danger x Android
https://www.slideshare.net/tarappo/danger-x-android

Dangerはプルリクエストのメタ情報に対するLINTのようなものだと認識してます

- メモ
  - GitHubコメントに「Review」と付くとチェックが走るようにしているらしい
      - <blockquote class="twitter-tweet" data-lang="en"><p lang="ja" dir="ltr">PRで&quot;review&quot;とコメントするとDangerが走る。大丈夫だったらチームにレビュー依頼のメンションが飛ぶ。駄目だと何が駄目だったのかをDangerがコメントに書いてくれる。 <a href="https://twitter.com/hashtag/android_test_night?src=hash">#android_test_night</a></p>&mdash; 菊池紘 (@kikuchy) <a href="https://twitter.com/kikuchy/status/910817414849245184">September 21, 2017</a></blockquote>
  - リポジトリにスクリーンショットを入れておいて、プルリクエスト時にアップデートすることでGitHubの画像Diffの恩恵に与られて便利
  - Danger Plugin機構があるらしい
      - [Dangerプラグインを作ろう \- 量産型エンジニアの憂鬱](http://blog.duck8823.com/entry/2017/07/11/155714)
  - https://github.com/square/spoon の存在を知れた
      - <blockquote class="twitter-tweet" data-lang="en"><p lang="ja" dir="ltr">DeNAさんのSWETではリソースの変更があった場合はSpoonを使って全画面のスクリーンショットを取得して変更がないかチェックしてるらしい。先進的！ <a href="https://twitter.com/hashtag/android_test_night?src=hash">#android_test_night</a></p>&mdash; 二段階右折 (@fushiroyama) <a href="https://twitter.com/fushiroyama/status/910817320687230976">September 21, 2017</a></blockquote><script async src="//platform.twitter.com/widgets.js" charset="utf-8"></script>

- 感想
  - 使っている現場では実際、Dangerチェックでどの程度の割合でREDがついているんだろう・・?

## 15分枠(2) : OsakaAtaru：「Androidのテストを効率的にするために考えたこと」
- 上司からテスト自動化のめいを受けて取り組んでいた
- 手動テスト(QA)の工数削減を期待されていたらしい
- 自動化をしたがそれを運用する時のことをあまり考えていなかった
- Android Context に依存するテストを実行するために Instrumented Test にしたらしい
    - <blockquote class="twitter-tweet" data-lang="en"><p lang="ja" dir="ltr">うちはLocal Unit TestでContextがほしい時はRobolectricを使っているな。僕はTDDをしているのでInstrumented TestではUnit Testのサイクルをとてもじゃないが回せない。 <a href="https://twitter.com/hashtag/android_test_night?src=hash">#android_test_night</a></p>&mdash; 二段階右折 (@fushiroyama) <a href="https://twitter.com/fushiroyama/status/910820896457101312">September 21, 2017</a></blockquote>
- Instrumented Test完了まで時間がかかるがCIで非同期に動いているのであまり気にならなかった
  - ローカルでテスト書いている時はどうするのだろう?
- UI テスト(手動)の簡便のためにデバッグメニューを付ける

## Android e2e testing at mercari
https://www.slideshare.net/VishalBanthia1/android-e2e-testing-at-mercari

- [メルカリQA\-SETチームが考えているQAやテストの未来のはなし \- Mercari Engineering Blog](http://tech.mercari.com/entry/2017/08/18/100138)
- <blockquote class="twitter-tweet" data-lang="en"><p lang="ja" dir="ltr">CI構成。Bitriseでビルドして、APKはGCSに上げてる。GCRにDockerイメージを上げてあって、OpenSTFでデバイスファーム構築。CircleCIでテスト実行して、Slackに通知して、とかしてる。豪華だ…！！ <a href="https://twitter.com/hashtag/android_test_night?src=hash">#android_test_night</a></p>&mdash; 菊池紘 (@kikuchy) <a href="https://twitter.com/kikuchy/status/910825802333274113">September 21, 2017</a></blockquote>
- <blockquote class="twitter-tweet" data-lang="en"><p lang="ja" dir="ltr">UIテストは画面遷移のビデオを撮影してあって、テストレポートで見られるようになっている。落ちた原因がわかりやすい。コードで支持された箇所のスクショも撮ってあって、良い画質で確認もできる。最高では… <a href="https://twitter.com/hashtag/android_test_night?src=hash">#android_test_night</a></p>&mdash; 菊池紘 (@kikuchy) <a href="https://twitter.com/kikuchy/status/910827631469256705">September 21, 2017</a></blockquote>

- メモ
  - 実機でテストを動かすのにこだわってた
      - オフィスの中にMacminiを母艦にダンボールで複数のデバイスをつないだ仕組みを作っているらしい
  - テストの仕組みのポータビリティ
      - 他のプロジェクトにも同じ構成でテストできるように
  - Android SDKの再配布禁止の規約により、SDKを同梱したDocker Imageは公開できない
  - RSpecからAppiunを叩いてるらしい
      - Appium周りにRubyツールチェイン採用してる決め手は?
  - AppiumKit/Mercarikit という言葉が見えた(何?)
  - SitePrism: ページオブジェクト便利
      - [RubyでPageObjectsパターンを実装できる SitePrism のご紹介 \- Qiita](https://qiita.com/kompiro/items/7d327dea2fd06342aef0)
  - OpenSTFで各拠点にあるデバイスを操作できる。すごい
      - [OpenSTFでAndroidのCIを2倍早くする \- クックパッド開発者ブログ](http://techlife.cookpad.com/entry/2016/08/15/200000)
  - ナイトリービルドのapkをAWS Lambdaでキックして拾ってきてCircleCIでテストが走る仕組み

## LT
まとめて

https://testnight.connpass.com/event/63753/presentation/

- JUnit5(Java8)をAndroidで使いたい話
- Bazelを試した話
  - [次世代ビルドツールBazelを使ってAndroidアプリをビルドする \- クックパッド開発者ブログ](http://techlife.cookpad.com/entry/introduce-bazel-build)
- DeployGateからapkをAPIで取ってこれない(なのでGCSに上げてる)
  - Fabricでもそうで、自分も困った(S3使った)
- TDDの話

## 感想
- なぜか「クックパッドブログが参考になります」という言葉が頻出してた
- メルカリをはじめ、Bitrise熱を感じる
- SWETチーム、1つください