iOSDC 2018 Interactive Round Table テスト相談会に参加してきました #iosdc
はじめに
おばんです、クックパッドのブースに展示されていたゲームが面白過ぎてランキング入りを果たした田中です。明日はもっと上のランクインを狙う。
iOSDC 2018の1日目の午後には Interactive Round Table という、あるテーマに集まって議論するコーナーがありました。 「テスト」というテーマで興味があったので参加しました。
togetter
Round1
UIテストの話
- UIテストを書いている人は何人いますか?
- 7人中3人
- UIテストはないけど、単体テストを書いている人は何人いますか?
- 7人中4人
- すでに全員自動テストを取り入れていてすごい、iOS界隈でもテストの機運高まってそう
- id振るのがめんどい問題
- fuzzing test
- id以外のユニークなものをみつけてテストする手法
- E2Eテストの正しさをどう確認するか
- functional E2E test
- テスト戦略
- なぜテストを入れたい?
- どこからテストを入れる?
- ↑に応じてなにをやっていくべきかが変わる
どこにUIテストを入れている?
誰がUIテストを書いている?
Round2
Mamorioの @hatakenokakashi さんからの質問
CoreLocation, CoreBluetoothなどの状態遷移が繊細なフレームワークをどうやってテストするか?#iosdc #roundtable
— ダンボー田中@iOSDC前夜祭勢 (@ktanaka117) August 31, 2018
メンタルモデルを分析して、フレームワークと切り離して管理できる状態を設計をする#iosdc #Roundtable
— ダンボー田中@iOSDC前夜祭勢 (@ktanaka117) August 31, 2018
- CoreLocationやCoreBluetoothなどのフレームワークは境界地あたりだと電波状況や位置情報に応じて状態がフラつくことがある
- 手動デバッグを行なっているが、とてもコストが高いので、どうやってテストをするのが良いか?
- どうやってテストで解決すればよいか?
- これはテストというより設計で解決すべき問題かも
- 位置情報や電波状況のメンタルモデルをモデル化すれば、入力に応じた状態変化をテストできるので、自動化できる
自動テストをどうやってメンバーに書いてもらうか
.@tikidunpon 「自動テストをどうやってメンバーに書いてもらうか?」@kuniwak 「このPRは動作確認しましたか?と聞く。したと答えられたらどういう手順で動作確認をおこなったか聞く。それは往往にして面倒なので、そこで自動テストに対する動機が生まれる」#iosdc #Roundtable
— ダンボー田中@iOSDC前夜祭勢 (@ktanaka117) August 31, 2018
コードをクリーンに保てていないと、離職リスクにつながる
コードをクリーンに保てていないと離職リスクにつながる#iosdc #Roundtable
— ダンボー田中@iOSDC前夜祭勢 (@ktanaka117) August 31, 2018
レガシーコードを補修するためにここに来たわけやないで!!!#iosdc #Roundtable
— ダンボー田中@iOSDC前夜祭勢 (@ktanaka117) August 31, 2018
こういうことは結構ありそうだと思った。プロダクトに対する愛でカバーできる面があったりもするけど、度が過ぎたりあまりに長い期間だと心が疲弊するので、マネージャーに当たる人にはこういう面もサポートしてほしいかもと個人的に思いました。
さいごに
テスト相談会はRound3までありましたが、僕はRound2までの参加だったので、ここまでをまとめました。
テストに向かっている人たちで、どうすべきか、うちではこうやってるよ、みたいな話をワイワイするのはとても楽しかったです。