AppiumからXCUITestに変え、そのためにSwiftを学び始めた話
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/05/22 iOS Test Night #4 Tadashi Nemoto AppiumからXCUITestに変え、 そ ためにSwiftを学び始めた話
Slide 2
Slide 2 text
自己紹介 • 根本 征 (github: tadashi0713) • Software Engineer in Test @mercari • 4月からQA・SETチームとして活動 • UI・E2Eテスト自動化がメイン • テスト管理ツールを作りたいと思って色々チャレンジしてい る
Slide 3
Slide 3 text
#2で発表した内容 https://speakerdeck.com/tadashi0713/ appium-xcuitest-drivertocihuan-jing
Slide 4
Slide 4 text
最近までやっていたこと • ターゲットアプリ リリース前に基本機能が正しく動作してい るかリグレッションテストを手動で行っていた • 繰り返し作業が多い・リリースするタイミングが増えたため一 部自動化を検討 • iOS・Androidで50%自動化目標 • Appiumを使って挑戦してみた
Slide 5
Slide 5 text
結局どうなった か
Slide 6
Slide 6 text
Appiumをやめて(iOS) XCUITestに変えた
Slide 7
Slide 7 text
理由そ 1: Accessibility付与 • ターゲットアプリに Accessibilityが振られている部分 少なかった • 付与しながらテストを書いていく事が求められた • しかしAppium 場合、iOSレポジトリでAccessibilityを振 りながら、また別 レポジトリでテストを書く必要があった • これが結構大変だった
Slide 8
Slide 8 text
理由そ 2: 動作速度・安定性 • 当時xcuitest-driver 安定していない部分もあった • xcuitest-driver 場合Xpathを使うと動作が遅くなる • 動作速度が遅いとそ 分全体 実装速度も遅くなってい くなと書いていて感じた
Slide 9
Slide 9 text
単純に思ったこと Appiumも実際に XCUITestを動かしている XCUITestでいい で
Slide 10
Slide 10 text
試しに書いてみて とてもよかった
Slide 11
Slide 11 text
Accessibility付与問題 ? • 1つ レポジトリでAccessibility付与・UIテスト実装ができ る • レコーディング機能で付けたAccessibilityがきちんと動作 できるか確認できる
Slide 12
Slide 12 text
動作速度・安定性問題 ? • 実行速度 Appiumと比べると早かった印象 • もちろんUIテストな で時間 とられやすい • システムアラートやWebviewも処理できた • waitもPage Object Patternを使ってうまくでき、安定 して実行することができた
Slide 13
Slide 13 text
ほぼ未経験だが Swift 挑戦しながら書いてみようȋ
Slide 14
Slide 14 text
約1ヶ月半かけて XCUITestでEnd to Endテストを実装
Slide 15
Slide 15 text
Jenkins & 社内 mac で実行環境を用意 Chatから実行できるように
Slide 16
Slide 16 text
QAエンジニアと協力して リリース前 リグレッションテスト 50%自動化に成功 仕様・UI 変更にも追いついていく ことができた
Slide 17
Slide 17 text
しかしそ アプリ 諸事情により開発中断 もうほぼアップデートされること なくなった
Slide 18
Slide 18 text
失ったコード5029行 無価値になったかと思った
Slide 19
Slide 19 text
実際そんなこと なかった 残ったも 多かった
Slide 20
Slide 20 text
iOSをテストする上で 必要な知識が学べた
Slide 21
Slide 21 text
• 知らないといけないこと • Xcode、関連コマンド • Unit Test どうなっている か(XCTest) • fastlane • 知っておくと便利なこと • 並列実行(Bluepill、pxctest) • snapshot
Slide 22
Slide 22 text
• ノウハウもたまった • XCUITestで Page Object Pattern • テストデータ生成 • ど くらい工数をかけれ ど くらい自動化できるか
Slide 23
Slide 23 text
違うチームでテスト自動化 導入が 検討されることがでてきた
Slide 24
Slide 24 text
UIテスト自動化に興味 ある QAエンジニアが出てきた
Slide 25
Slide 25 text
定期的に勉強会を実施
Slide 26
Slide 26 text
これもある程度 レベルまで UIテストを実装・導入したからこそ 出た良い影響かなと僕 思いました