SlideShare a Scribd company logo
kitasuke@trippiece
UIテストしてますか?
UIAutomation -> JavaScript 
KIF -> Objective-C ←これ使います
 Square製のライブラリ 
デモ動画 
 公式ドキュメント 
https://github.com/kif-framework/KIF 
 非公式日本語ドキュメント 
https://gist.github.com/kitasuke/ed6f90e83df3c0653cbf
Viewのタップ座標のタップ長押し 
文字入力・削 
除 
Scroll Swipe 
テーブル 
ビューのセル 
選択 
コレクション 
ビューのアイ 
テム選択 
カメラロール 
から写真選択 
ピッカーの選 
択 
トグルのオ 
ン・オフ 
ポップオー 
バーを閉じる
1. 対象のViewにAccessibilityLabelと 
AccessibilityIdentifierとセットする(Storyboard上/ 
コード上) 
2. アクション実行メソッドをたたく 
e.g. Accessibility e.g. User Defined Runtime Attributes 
e.g. Method of KIF
 APIが実装されてなくてもUIテストが可能
 全画面遷移分のスクリーンショットを保存可能 
フォルダ名:テストケース名 
ファイル名:タイムスタンプ
 全テストケース→ ⌘+U 
 各テストケース→ ⌃+⌥+⌘+U 
* 実行前にiPhoneシミュレーターが起動していな 
いことを確認する
iOSにおけるUIテスト@potetotips
 テストケースが多くなると数分では終わらない 
 そもそも全画像を目で見て確認するのは無理 
↓ 
 理想は、前回のテスト結果との差異を検知する
 PRの度にTravisで全テストケースをはしらせる 
e.g. .travis.yml
 motageコマンドで複数の画像を1枚にまとめ 
montage –tile 1x1 –geometry 640x1136 1.png 2.png tile.png 
 Compositeコマンドで対象画像のdiffをとる 
composite –compose difference 1.png 2.png diff.png 
e.g. 1.png e.g. 2.png e.g. diff.png
 良い点 
容易にUI関連の不具合を見つけられる 
 悪い点 
導入・メンテナンスコストが膨大にか 
かる
iOSにおけるUIテスト@potetotips

More Related Content

PDF
Kifの紹介
PDF
ぼくのかんがえた iOSテスト戦略
PDF
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
KEY
Androidリリース作業の効率化(2)
ODP
Jenkins導入ライブ
PDF
Jenkinsを用いたAndroidアプリビルド作業効率化
PDF
VRの入力デバイス #JAGVR
PDF
PF開発に使えるAOSPのツール達
Kifの紹介
ぼくのかんがえた iOSテスト戦略
Xcode 7におけるUIテストとカバレジ計測 #yidev 第20回勉強会
Androidリリース作業の効率化(2)
Jenkins導入ライブ
Jenkinsを用いたAndroidアプリビルド作業効率化
VRの入力デバイス #JAGVR
PF開発に使えるAOSPのツール達

What's hot (20)

PDF
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
PPTX
JaSST'16 Tokyo モバイルセッション
PDF
スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編
PDF
20121019 jenkins勉強会lt資料
PDF
AndroidJUnitRunner で JUnit 4 形式のテストに移行
PPTX
Sansan における Android アプリ自動テスト導入事例
PDF
Androidアプリ開発にクリーンアーキテクチャを取り入れよう
PPTX
SI-Toolkitでテスト自動化を実現する現場で遭遇したこと
PDF
はてなにおける Android アプリのソフトウェアテスト
PDF
AppiumのWebViewアプリテストの仕組みとハマりどころ
PDF
第3回Ques ここからはじめる!Androidアプリのテスト自動化
PDF
JUnit5とAndroidのテスト
PPTX
価値あるシステムテスト自動化の実現By friendly
PDF
XP祭り2013-LT-Codeer
PDF
脱・独自改造! GebでWebDriverをもっとシンプルに
PDF
AppCodeNight testcode
PPTX
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
PPTX
Visual Studio App Centerの始め方
PPTX
Robotium を使った UI テストとレイアウト確認の効率化
PDF
Selenium boot campの紹介
スマートフォンアプリ開発と自動化 〜なじむ。実に!なじむぞ!〜 #AsianAA
JaSST'16 Tokyo モバイルセッション
スマートフォンアプリの色々自動化をはじめよう - at SonyDNA Meisters Salon 特別編
20121019 jenkins勉強会lt資料
AndroidJUnitRunner で JUnit 4 形式のテストに移行
Sansan における Android アプリ自動テスト導入事例
Androidアプリ開発にクリーンアーキテクチャを取り入れよう
SI-Toolkitでテスト自動化を実現する現場で遭遇したこと
はてなにおける Android アプリのソフトウェアテスト
AppiumのWebViewアプリテストの仕組みとハマりどころ
第3回Ques ここからはじめる!Androidアプリのテスト自動化
JUnit5とAndroidのテスト
価値あるシステムテスト自動化の実現By friendly
XP祭り2013-LT-Codeer
脱・独自改造! GebでWebDriverをもっとシンプルに
AppCodeNight testcode
【SQiP2014】システム操作インターフェイス最適化によるテスト自動化ROI向上
Visual Studio App Centerの始め方
Robotium を使った UI テストとレイアウト確認の効率化
Selenium boot campの紹介
Ad

Viewers also liked (20)

PDF
iOSアプリ開発の現場で訊いてきたtips
PPTX
iOSアプリの自動テストをはじめよう
PPTX
iOSテスト自動化勉強会 -やはり俺達の回帰テストは間違っている-
PDF
User Scenario based UI testing with KIF
PDF
Swift Open Hours 2 - Swift ラボで聞いてきた話
PDF
WWDC 旅行の余談と Swift Open Hours 3 - Swift ラボで聞いてきた話 #cocoa_kansai
PDF
javascript を Xcode でテスト
PDF
ハンドメイドカレンダー第15回potatotips用
PPTX
自動テスト入れてみたけど、誰からも反応が無かった話。
PPTX
Today & Share Extension@potatotips
PPTX
WatchKit@potatotips
PPTX
App extensionでテストコードを書く
PPTX
Share Extension@pixiv
PDF
App extension for iOS
PDF
SwiftCoreとFoundationを読んでみた
PDF
Search APIs & Universal Links
PDF
WKInterfaceMap on Apple Watch
PDF
Swift core
PDF
テストがあればなんとかなる〜効率化までの道程〜
PDF
Useful and Practical Functionalities in Realm
iOSアプリ開発の現場で訊いてきたtips
iOSアプリの自動テストをはじめよう
iOSテスト自動化勉強会 -やはり俺達の回帰テストは間違っている-
User Scenario based UI testing with KIF
Swift Open Hours 2 - Swift ラボで聞いてきた話
WWDC 旅行の余談と Swift Open Hours 3 - Swift ラボで聞いてきた話 #cocoa_kansai
javascript を Xcode でテスト
ハンドメイドカレンダー第15回potatotips用
自動テスト入れてみたけど、誰からも反応が無かった話。
Today & Share Extension@potatotips
WatchKit@potatotips
App extensionでテストコードを書く
Share Extension@pixiv
App extension for iOS
SwiftCoreとFoundationを読んでみた
Search APIs & Universal Links
WKInterfaceMap on Apple Watch
Swift core
テストがあればなんとかなる〜効率化までの道程〜
Useful and Practical Functionalities in Realm
Ad

Similar to iOSにおけるUIテスト@potetotips (20)

PPTX
KIFの導入
PDF
iOSアプリケーションの Unit Test
PDF
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
PDF
Xcode 6の新機能
PDF
Ignite UI 2012 最新情報 jQuery Mobile 編
PDF
PDF
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
PDF
ワンクリックデプロイ101 #ocdeploy
PDF
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
PDF
iOSで動画からスクショを撮る方法
PPTX
ICST 2015 まるわかりDay! "Symbolic Execution Track"
PDF
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
KEY
I phonedevws20121028ci filter
PDF
ようこそ! Swift Playgroundsへ
PPTX
Inside of swift
PPTX
MVVM入門
PDF
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
PDF
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
PPTX
2012 05-19第44回cocoa勉強会発表資料
PDF
Durable Functions (Core) 気になっていたことを勉強がてら実装してみた
KIFの導入
iOSアプリケーションの Unit Test
iOS の動画アプリ開発に Xamarin を使ってみた @JXUG #2 East
Xcode 6の新機能
Ignite UI 2012 最新情報 jQuery Mobile 編
jQuery/Html5/ASP.NET MVC 対応コンポーネントを用いたデバイス対応業務アプリケーション開発
ワンクリックデプロイ101 #ocdeploy
RxDataSourceをNSDiffableDataSourceへ置き換える際のTips集紹介
iOSで動画からスクショを撮る方法
ICST 2015 まるわかりDay! "Symbolic Execution Track"
[DO09] 獲れたて OSS x DevOps!自動化三昧を満喫セヨ
I phonedevws20121028ci filter
ようこそ! Swift Playgroundsへ
Inside of swift
MVVM入門
Microsoft DevOps Hackathon (Sep 2015) Team 4 Presentation
TypeScript ファースト ステップ (v.0.9 対応版) ~ Any browser. Any host. Any OS. Open Sourc...
2012 05-19第44回cocoa勉強会発表資料
Durable Functions (Core) 気になっていたことを勉強がてら実装してみた

More from Yusuke Kita (20)

PDF
Integrating libSyntax into the compiler pipeline
PDF
Making your own tool using SwiftSyntax
PDF
[Deprecated] Integrating libSyntax into the compiler pipeline
PDF
Creating your own Bitrise step
PDF
Introducing swift-format
PDF
Unidirectional Data Flow Through SwiftUI
PDF
Open Source Swift Workshop
PDF
Contributing to Swift Compiler
PDF
Writing a compiler in go
PDF
Writing an interpreter in swift
PDF
SIL Optimizations - AllocBoxToStack
PDF
SIL for First Time Learners
PDF
var, let in SIL
PDF
SIL for First Time Leaners LT
PDF
How to try! Swift
PDF
SIL for the first time
PDF
Introducing protobuf in Swift
PDF
Type-safe Web APIs with Protocol Buffers in Swift at AltConf
PDF
Type-safe Web APIs with Protocol Buffers in Swift at iOSCon
PDF
Introducing Cardio
Integrating libSyntax into the compiler pipeline
Making your own tool using SwiftSyntax
[Deprecated] Integrating libSyntax into the compiler pipeline
Creating your own Bitrise step
Introducing swift-format
Unidirectional Data Flow Through SwiftUI
Open Source Swift Workshop
Contributing to Swift Compiler
Writing a compiler in go
Writing an interpreter in swift
SIL Optimizations - AllocBoxToStack
SIL for First Time Learners
var, let in SIL
SIL for First Time Leaners LT
How to try! Swift
SIL for the first time
Introducing protobuf in Swift
Type-safe Web APIs with Protocol Buffers in Swift at AltConf
Type-safe Web APIs with Protocol Buffers in Swift at iOSCon
Introducing Cardio

iOSにおけるUIテスト@potetotips