Skip to content

Instantly share code, notes, and snippets.

@miliya612
Last active June 23, 2018 14:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save miliya612/612cf69982c57275ee06889442f07c89 to your computer and use it in GitHub Desktop.
Save miliya612/612cf69982c57275ee06889442f07c89 to your computer and use it in GitHub Desktop.
Android Test Night#4 - Androidテスト全書トーク

Android Test Night #4

about

content

どんな感じになりそう?

  • @sumio_tymさん
    • サンプルを作るなど、正確なものを届けるためしっかり裏を取らなきゃいけないなと
  • @kikuchyさん
    • JUnit5の日本語情報がない
    • ドキュメントもあるが詳しい挙動を見るためにソースコードをあたる
    • 裏を取るために時間がかかって思った通りにかけてないが、いい原稿に仕上がりつつあるかな?
  • @Horie1024さん
    • CI/CDの本を世界中からかき集めている
    • CI/CDを何のためにやるか、Androidでやるには、などなるべく丁寧に
    • 何も知らない状態からCI/CDをセットアップできるレベルにしたい
    • CI/CDを導入するお手伝いをしてみたい
      • 他社さんのCI/CDで悩んでいるところなどの知見を得たい

@kikuchyさんがJUnitのコードに潜ったからこそ知ってることは?

  • android-junit5のコードがちょっと怪しい
    • junit5をandroidで使えるようにするgradleプラグイン
    • そのせいでサンプルコードがかけない点がある
  • Androidだからソースコードを読みに行ける
    • 中身を知って自分の知識になる
    • ものを書いて他の方の血肉にもなる
    • iOSだとなかなかできない
  • (見た感じ)ソースはけっこうきれい

進捗は?苦戦しているところは?

  • @sumio_tymさん
    • 初稿一番乗り
    • Appiumを書く前座のEspressoは書けた
    • これから本番
    • どうやってUIテストやっていくか、というエモい話も
  • @kikuchyさん
    • 半分以上は書けた
    • jUnit5はこんな便利なので使っていきたいですね!的なことを書いていきたかった
    • gradleプラグイン影響で、こんな機能あるけどまだ使えません、的な話になりそう。。。
      • Javaのversionの影響
        • JUnitはjava9対応しているが、Androidは。。。
        • Androidのdesugarでつまったり、そもそも使えなかったり。。。
      • 実装にちょっとバグがある
        • Issue上げたけどまだ作者の方が対応できていない
        • 原稿の合間に時間あればPR出していきたい
  • @Horie1024さん
    • 具体的なCIツールの説明をどこまでやるか考え中
    • どのサービスを使う上でも役に立つgradleのtaskなどを厚めに書きたい
    • jenkinsがまずは基礎、加えてCIaaSを1つ抑える流れでいきたい

会場から

AppiumとEspressoの使い分けは?Appiumだとちょっと使いづらいところがあって悩んでいる

  • ほとんどのケースでEspressoがオススメ
    • Espressoは実機で動く
    • AppiumよりもEspressoのほうが何でもできる
  • Appiumも便利な点がある
    • Appium得意の人がいれば捗る
    • PC上で動くため、ブラウザと同時に動かす際便利

どの程度設計がしっかりしてるアプリを前提として本が書かれているのか

  • テストを知ろうという本か、無いところにテストを導入していくかについての本か
    • その章は@fushiroyamaさんがご担当
    • (記憶によると)テストを書きやすい設計的な話がメインだったはず
  • レガシーコード改善的な話はまた別のものすごく難しい話
    • 別途やる?

UIテストと相性のいいアプリは?コストと見合うように早くテストを書くコツは?

  • UI操作のためセレクターを探し出して指定するところが面倒

  • 一回書いちゃえば使い回せる

  • 全く無いところから書き始めるのはなかなかつらい

  • @lionasさん

    • 新規アプリとレガシーアプリで違う
    • 新規アプリの場合
      • どんどん書いていける
    • レガシーアプリの場合
      • コード改善の場合、ロジックのテストをまず書いていく
      • UIはcontextと密結合のことがあってつらいことも多い
      • 無理なときは諦める、人をかける
      • その分他を自動化する
    • レコーディングツールにハマらないような設計をする技術もある
  • UIテストをどうやっていくか?

    • 人間がやるのも手
      • 人間はfuzzyな判断ができる
      • バイトの方などにお願いしたほうがメンテナンスするよりコストが安い
    • 一部だけ書くっていう手もある
      • firebaseのroboテストで一通り画面をなめる
      • iOSはスクリーンショットと一致しているか見ることもできる
      • 人間のUI確認コストを減らす補助的な目的で入れる

Activity#startActivty()したときに意図したintentが投げられているかをうまく確認できない

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment