iOSDC 2018 Interactive Round Table テスト相談会に参加してきました #iosdc

はじめに

おばんです、クックパッドのブースに展示されていたゲームが面白過ぎてランキング入りを果たした田中です。明日はもっと上のランクインを狙う。

iOSDC 2018の1日目の午後には Interactive Round Table という、あるテーマに集まって議論するコーナーがありました。 「テスト」というテーマで興味があったので参加しました。

togetter

togetter.com

Round1

UIテストの話

  • UIテストを書いている人は何人いますか?
    • 7人中3人
  • UIテストはないけど、単体テストを書いている人は何人いますか?
    • 7人中4人
  • すでに全員自動テストを取り入れていてすごい、iOS界隈でもテストの機運高まってそう
  • id振るのがめんどい問題
  • fuzzing test
    • id以外のユニークなものをみつけてテストする手法
  • E2Eテストの正しさをどう確認するか
    • functional E2E test
  • テスト戦略
    • なぜテストを入れたい?
    • どこからテストを入れる?
    • ↑に応じてなにをやっていくべきかが変わる

どこにUIテストを入れている?

誰がUIテストを書いている?

Round2

Mamorioの @hatakenokakashi さんからの質問

  • CoreLocationやCoreBluetoothなどのフレームワークは境界地あたりだと電波状況や位置情報に応じて状態がフラつくことがある
  • 手動デバッグを行なっているが、とてもコストが高いので、どうやってテストをするのが良いか?
  • どうやってテストで解決すればよいか?
  • これはテストというより設計で解決すべき問題かも
  • 位置情報や電波状況のメンタルモデルをモデル化すれば、入力に応じた状態変化をテストできるので、自動化できる

自動テストをどうやってメンバーに書いてもらうか

コードをクリーンに保てていないと、離職リスクにつながる

こういうことは結構ありそうだと思った。プロダクトに対する愛でカバーできる面があったりもするけど、度が過ぎたりあまりに長い期間だと心が疲弊するので、マネージャーに当たる人にはこういう面もサポートしてほしいかもと個人的に思いました。

さいごに

テスト相談会はRound3までありましたが、僕はRound2までの参加だったので、ここまでをまとめました。

テストに向かっている人たちで、どうすべきか、うちではこうやってるよ、みたいな話をワイワイするのはとても楽しかったです。