iosにおけるuiテスト@potetotips

15
kitasuke@trippiece iOS にににに UI ににに @potetotips

Upload: yusuke-kita

Post on 17-Dec-2014

1.058 views

Category:

Engineering


7 download

DESCRIPTION

UIテストとか自動化とか

TRANSCRIPT

Page 1: iOSにおけるUIテスト@potetotips

kitasuke@trippiece

iOSにおけるUIテスト@potetotips

Page 2: iOSにおけるUIテスト@potetotips

UIテストしてますか?

Page 3: iOSにおけるUIテスト@potetotips

UIAutomation -> JavaScript

KIF -> Objective-C

ライブラリ

←これ使います

Page 4: iOSにおけるUIテスト@potetotips

Square製のライブラリデモ動画

公式ドキュメントhttps://github.com/kif-framework/KIF

非公式日本語ドキュメントhttps://gist.github.com/kitasuke/ed6f90e83df3c0653cbf

KIFとは?

Page 5: iOSにおけるUIテスト@potetotips

Viewのタップ

座標のタップ 長押し 文字入力・削

Scroll Swipeテーブルビューのセル選択

コレクションビューのアイテム選択

カメラロールから写真選択

ピッカーの選択

トグルのオン・オフ

ポップオーバーを閉じ

KIFで出来ること

Page 6: iOSにおけるUIテスト@potetotips

1. 対象の Viewに AccessibilityLabelとAccessibilityIdentifierとセットする( Storyboard上 /コード上)

2. アクション実行メソッドをたたく

使い方

e.g. Accessibility e.g. User Defined Runtime Attributes

e.g. Method of KIF

Page 7: iOSにおけるUIテスト@potetotips

APIが実装されてなくてもUIテストが可能

KIF + OHHTTPStubs

Page 8: iOSにおけるUIテスト@potetotips

全画面遷移分のスクリーンショットを保存可能フォルダ名:テストケース名ファイル名:タイムスタンプ

KIF + Screenshot

Page 9: iOSにおけるUIテスト@potetotips

全テストケース → ⌘+U

各テストケース → ⌃ +⌥+⌘+U

* 実行前に iPhoneシミュレーターが起動していないことを確認する

実行方法

Page 10: iOSにおけるUIテスト@potetotips

デモ

Page 11: iOSにおけるUIテスト@potetotips

テストケースが多くなると数分では終わらない

そもそも全画像を目で見て確認するのは無理

理想は、前回のテスト結果との差異を検知する

テストの自動化

Page 12: iOSにおけるUIテスト@potetotips

PRの度に Travisで全テストケースをはしらせる

Github + Travis

e.g. .travis.yml

Page 13: iOSにおけるUIテスト@potetotips

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

Page 14: iOSにおけるUIテスト@potetotips

良い点容易にUI関連の不具合を見つけられる

悪い点導入・メンテナンスコストが膨大にかかる

まとめ

Page 15: iOSにおけるUIテスト@potetotips

WE’RE HIRING iOS & Android Engineers!!