3/2 クックパッドアプリのテストを味わう #tryswiftconf
try!Swiftのセッションまとめシリーズです。Kazuaki Matsuoさんの「Tasting tests at Cookpad」についての記事になります。
資料
www.slideshare.net
内容
- テストと言ってもいろいろなテストがある
今日はUIテストに関しての話をする
-
- 世界でも有名なレシピサイト
- 日本では63億のユーザがいる
- 今日は日本のiOSアプリについて
- 5年間開発をしている
- UI、実装を複数回変えている
- リリースサイクルは2週間〜1ヶ月
- UIはよく変わる
- しかしクオリティを保っていかなければならない
- リファクタリング
- 多くの開発者はテストは自動化すべきだという
- レイヤーによってはそうとも限らない
- UIテスト自動化は大事なこと
- マニュアルチェックを自動化されたUIテストに寄せていく
- 様々なOSバージョンのチェックを人を解することなくできるようになる
- テストピラミッド
- 理想は、UnitTestが一番多くてUIテストが一番少ない
- しかしモバイルは容易に逆になる
- クラッシュ件数
- どんどん下がっている
- スクリーン遷移のテスト
- 8割をUITestで実施
- テストシナリオ
- テストを書くにあたって注意すべきこと
- 内部のロジックに影響を与えないように
- OSバージョンがアップすると動かなくなることがないように
- UIの差分検知
- 前と今のバージョンで画面に違いがあるとそれをお知らせしてくれる
- ネットワークトラフィック
- こちらもチェックしている
- 予期せぬリクエストを発見することができたり
- 変更によってUIが壊れると知らせてくれる
- Swift
- 数ヶ月前に導入
- 現在30%くらい
- ユーザテスト
- アールグレイ
- appuimも使うが役割が違う
Q&A
appium使っていたがメンテコストがかかってしまったのですがappiumを選択した理由は?
- システムアラートをクリーンにして出せる
- シナリオの再現性という意味で採用
- 遅さはあるが、どのタイミングでどのテストをするかという戦略を考えて補う
バウンダリーテストの代替テストは何を行ったか
- バウンダリーのテストで多いのは入力テスト
- 20文字しか入力できないところを19,21字で入力したり
- バリデーションに関われるところはUIでやってもいいけどそこに至るまでのいろいろなステップが重くなるのでやっていない
- UITestでやるよりかはUnitTestの方で
- バウンダリーのテストで多いのは入力テスト
その他このトークに関する情報源
- クックパッドアプリのテストを味わう | try! Swift Tokyo 2017 #tryswiftconf Day1-8 聞き起こし - niwatakoのはてなブログ
- [速報レポート] try! Swift TOKYO 2017 1日目 午後I #tryswiftconf | Developers.IO
- try! Swift 2017 Tokyo に参加してきた - 2. 1日目 - My Favorite Things - Coding or die.