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テストを実装・導入したからこそ 出た良い影響かなと僕 思いました