手動リグレッションテストをE2Eテストに置き換えてみて、分かってきたこと
by
Tadashi Nemoto
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
2017/07/26 iOS Test Night #5 Tadashi Nemoto 手動リグレッションテストをE2Eテストに 置き換えてみて分かってきたこと
Slide 2
Slide 2 text
自己紹介 • 根本 征 (github: tadashi0713) • Software Engineer in Test @mercari • モバイルアプリ・WEBアプリをぶり ぶり自動化
Slide 3
Slide 3 text
#4で発表した内容 https://speakerdeck.com/tadashi0713/appiumkaraxcuitestnib ian-e-sofalsetameniswiftwoxue-bishi-metahua
Slide 4
Slide 4 text
● 前回から対象のアプリをUS版→JP版に変更 ● 前回と同様、手動で行われていたリリース前のリグレッショ ンテストケースを自動化 ● iOS・Android共に外部連携したものを除く100%をE2Eテス トで自動化 ● 特に重要な購入・出品機能はパターンを増やして実装 ● iOSはXCTest UI Testで実装 最近までやっていたこと
Slide 5
Slide 5 text
Bluepill を使って 1OS × 1 mac mini × 3 simulator で約30分 タイムアウトやリトライで安定的に実 行できるように ケースによって、実機での実行で行う テストも追加予定
Slide 6
Slide 6 text
導入してみてから約1ヶ月、、、 ● 導入してみての効果 ● 見えてきた課題
Slide 7
Slide 7 text
導入してみての効果
Slide 8
Slide 8 text
導入した際の効果が見えやすい 他のレイヤーのテストに比べ、最終的なアプリの振る舞い をテストしているので、 ● QA合意のもと、手動テストに置き換えることができた ● どのようなテストをしているのかが見えやすい ○ 非エンジニアでも分かってもらいやすい
Slide 9
Slide 9 text
アプリ全体に影響がでる可能性のある変更 ● Xcode・ライブラリの更新 ● アプリ全体に影響が出る変更 ● APIの大幅な変更(PHP7移行、他リージョンへの影響) リグレッションを恐れずに変更できるようになる きっかけになるのでは 想定外のケースでも自動テストが活用できた
Slide 10
Slide 10 text
見えてきた課題
Slide 11
Slide 11 text
ドキっ(実装途中に) UIテストで注意すべき点 手動テストを単純に置き換えない
Slide 12
Slide 12 text
• 正しく〜ができていること • どこを、どこまでチェックできていれ ば正しくできている? • 解釈しながら相談して実装したが、QA とのずれが出る可能性がある テストケースの期待値のずれ
Slide 13
Slide 13 text
テストケースに明示的に書かれていなくても、暗黙的 に確認しているケース • (まだないが)レイアウト崩れ • 期待値に行くまでの過程で実はチェック していた箇所 • 選択項目など
Slide 14
Slide 14 text
● 勉強会などで実際にUIテストを書いてもらうことで、どこまで チェックできるか・どのようなテストケースになればいいのか、 考えるきっかけになれば ● 手動テストではコスト上できていなかったパターン UIテストを意識して、テストケースを改善していく
Slide 15
Slide 15 text
テスト区分戦略 (Maintenance、Fleakiness) • UI変更 • API変更 • 仕様に強く依存
Slide 16
Slide 16 text
● Postmanを使ったAPI振る舞いテスト ● Webview ● UnitTest、FunctionalTest E2Eテスト以外で担保できる部分を増やしていく