iosにおけるuiテスト@potetotips
DESCRIPTION
UIテストとか自動化とかTRANSCRIPT
kitasuke@trippiece
iOSにおけるUIテスト@potetotips
UIテストしてますか?
UIAutomation -> JavaScript
KIF -> Objective-C
ライブラリ
←これ使います
Square製のライブラリデモ動画
公式ドキュメントhttps://github.com/kif-framework/KIF
非公式日本語ドキュメントhttps://gist.github.com/kitasuke/ed6f90e83df3c0653cbf
KIFとは?
Viewのタップ
座標のタップ 長押し 文字入力・削
除
Scroll Swipeテーブルビューのセル選択
コレクションビューのアイテム選択
カメラロールから写真選択
ピッカーの選択
トグルのオン・オフ
ポップオーバーを閉じ
る
KIFで出来ること
1. 対象の Viewに AccessibilityLabelとAccessibilityIdentifierとセットする( Storyboard上 /コード上)
2. アクション実行メソッドをたたく
使い方
e.g. Accessibility e.g. User Defined Runtime Attributes
e.g. Method of KIF
APIが実装されてなくてもUIテストが可能
KIF + OHHTTPStubs
全画面遷移分のスクリーンショットを保存可能フォルダ名:テストケース名ファイル名:タイムスタンプ
KIF + Screenshot
全テストケース → ⌘+U
各テストケース → ⌃ +⌥+⌘+U
* 実行前に iPhoneシミュレーターが起動していないことを確認する
実行方法
デモ
テストケースが多くなると数分では終わらない
そもそも全画像を目で見て確認するのは無理
↓
理想は、前回のテスト結果との差異を検知する
テストの自動化
PRの度に Travisで全テストケースをはしらせる
Github + 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関連の不具合を見つけられる
悪い点導入・メンテナンスコストが膨大にかかる
まとめ
WE’RE HIRING iOS & Android Engineers!!