Appium を使って
iOS / Android の UI テストを
共通化
2015/09/21
Kamiyama.rb #2
Sansan株式会社 辰濱健一
自己紹介
• 辰濱健一
– https://www.facebook.com/kenichi.tatsuhama
• Sansan株式会社 神山ラボ勤務(リモート)
• Android アプリ開発担当
&アプリチームリーダ
• 3社連続徳島勤務...
今日やること
• スマホアプリ(iOS / Android)の UI 自動テス
トのデモ
– 去年の Kamiyama.rb#1 では Android だけでしたね。
• 実装は違うけど、同じ仕様だし同じ操作で同
じ結果が得られるはず!
• 端...
デモします!
• 大事なことなので、先にデモ
• 内容
– サインアップ画面に遷移
– 文字入力
– エラー表示のチェック
– スクリーンショット撮影
デモの流れ
タップ 入力 エラー
実行するコマンド
• Appium 起動
> appium &
• for iOS
> OS=iOS rspec spec/signup_spec.rb
• for Android
> OS=Android rspec spec/signup_...
デモ…
設定ファイル 1/2
設定ファイル 2/2
テストコード
構成
/appium_tests
/apps
Sansan.app … iOS バイナリ
Sansan.apk … Android バイナリ
/spec
signup_spec.rb … テストコード
spec_helper.rb … 設定ファ...
Appium
• Ruby などでスマホアプリの UI自動テスト
を記述できるライブラリ
– http://appium.io/
– 詳しくは去年の資料参照下さい。
– http://www.slideshare.net/kenichitats...
メリット
• リリースバイナリでもチェックができる。
– Android でリリース版の ProGuard のチェック
とか忘れがち…
• テストコードを各OSごとに書かなくてよ
い。
• OS や機種を越えて画面一覧が作れる。
画面一覧
iOS の画像 Android の画像
サインアップ画面
バリデートエラー
もちろん、
・iOS
・Android
だけじゃなく、
・iPhone 4s
・iPhone 5
・iPhone 6
・iPhone 6 plus
・Nexu...
デメリット
• iOS / Android の表記揺れ・仕様差異でテス
トが通らないことも…
– 例)”25 枚”、”25枚”(スペースの有無)
• iOS のアクセシビリティラベルにAndroid
と同じViewID を設定しなきゃいけない
課題
• 技術的な問題
– iOS で日本語入力がうまくいかない
• 低レイヤーではキーボードイベント経由になるから?
• “Hoge” が、”H”, “o”, “g”, “e” で送られる
• プロダクトの問題
– iOS / Android...
参考資料
• 【決定版】Appiumのテストの書き方(その2)
– http://qiita.com/tabbyz/items/a08b5af00a865d473047
– 設定ファイルの書き方とか参考にしました。
• Rubyを使ったスマホア...
予告1
• 10/10(土) JAWS-UG イベントに登壇します!
– 四国クラウドお遍路 2015
-クラウドとIT技術者の働き方と-
• https://jawsohenro.doorkeeper.jp/events/30061
– 非 ...
予告2
• 10/12(祝)阿南市でイベントに出演します!
– 会場:かもだ岬温泉
– 開演:13:00〜
– エレクトーンソロで20分ほどのステージをお届
けします。
ご静聴ありがとうございました。
Upcoming SlideShare
Loading in...5
×

Appium を使って iOS / Android の UI テストを共通化

77

Published on

Appium を使って iOS / Android の UI テストを共通化してみました。
@Kamiyama.rb#2

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
77
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
1
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Appium を使って iOS / Android の UI テストを共通化

  1. 1. Appium を使って iOS / Android の UI テストを 共通化 2015/09/21 Kamiyama.rb #2 Sansan株式会社 辰濱健一
  2. 2. 自己紹介 • 辰濱健一 – https://www.facebook.com/kenichi.tatsuhama • Sansan株式会社 神山ラボ勤務(リモート) • Android アプリ開発担当 &アプリチームリーダ • 3社連続徳島勤務(J社 → M社 → S社)
  3. 3. 今日やること • スマホアプリ(iOS / Android)の UI 自動テス トのデモ – 去年の Kamiyama.rb#1 では Android だけでしたね。 • 実装は違うけど、同じ仕様だし同じ操作で同 じ結果が得られるはず! • 端末の OS は違うけど、テストコードは 1ソース!
  4. 4. デモします! • 大事なことなので、先にデモ • 内容 – サインアップ画面に遷移 – 文字入力 – エラー表示のチェック – スクリーンショット撮影
  5. 5. デモの流れ タップ 入力 エラー
  6. 6. 実行するコマンド • Appium 起動 > appium & • for iOS > OS=iOS rspec spec/signup_spec.rb • for Android > OS=Android rspec spec/signup_spec.rb • スクショ一覧作成(オレオレ Ruby ツール) > cd screenshot > ruby collector.rb 同じ!
  7. 7. デモ…
  8. 8. 設定ファイル 1/2
  9. 9. 設定ファイル 2/2
  10. 10. テストコード
  11. 11. 構成 /appium_tests /apps Sansan.app … iOS バイナリ Sansan.apk … Android バイナリ /spec signup_spec.rb … テストコード spec_helper.rb … 設定ファイル /screenshot … スクリーンショット保存フォルダ Gemfile
  12. 12. Appium • Ruby などでスマホアプリの UI自動テスト を記述できるライブラリ – http://appium.io/ – 詳しくは去年の資料参照下さい。 – http://www.slideshare.net/kenichitatsuhama/ruby ui
  13. 13. メリット • リリースバイナリでもチェックができる。 – Android でリリース版の ProGuard のチェック とか忘れがち… • テストコードを各OSごとに書かなくてよ い。 • OS や機種を越えて画面一覧が作れる。
  14. 14. 画面一覧 iOS の画像 Android の画像 サインアップ画面 バリデートエラー もちろん、 ・iOS ・Android だけじゃなく、 ・iPhone 4s ・iPhone 5 ・iPhone 6 ・iPhone 6 plus ・Nexus 4 ・Nexus 5 ・Nexus 6 なども可能なはず
  15. 15. デメリット • iOS / Android の表記揺れ・仕様差異でテス トが通らないことも… – 例)”25 枚”、”25枚”(スペースの有無) • iOS のアクセシビリティラベルにAndroid と同じViewID を設定しなきゃいけない
  16. 16. 課題 • 技術的な問題 – iOS で日本語入力がうまくいかない • 低レイヤーではキーボードイベント経由になるから? • “Hoge” が、”H”, “o”, “g”, “e” で送られる • プロダクトの問題 – iOS / Android で微妙に表記が異なり、同一の期待 値が書けない・・・(単なる表記揺れ)
  17. 17. 参考資料 • 【決定版】Appiumのテストの書き方(その2) – http://qiita.com/tabbyz/items/a08b5af00a865d473047 – 設定ファイルの書き方とか参考にしました。 • Rubyを使ったスマホアプリのUIテスト – http://www.slideshare.net/kenichitatsuhama/rubyui – Appium の説明など、こちら参照下さい。 • Robotium を使った UI テストとレイアウト確認の効率化 – http://www.slideshare.net/kenichitatsuhama/robotium-ui – スクリーンショット一覧作成ツールのことなど。
  18. 18. 予告1 • 10/10(土) JAWS-UG イベントに登壇します! – 四国クラウドお遍路 2015 -クラウドとIT技術者の働き方と- • https://jawsohenro.doorkeeper.jp/events/30061 – 非 AWS のリモートワーカ枠 • 間に合えば、Device Farm の話も…!? – リモートでマネージメントに重きを置く立場になっ て、「辛い」と叫ぶか「やれる」と言うのか? 乞うご期待!
  19. 19. 予告2 • 10/12(祝)阿南市でイベントに出演します! – 会場:かもだ岬温泉 – 開演:13:00〜 – エレクトーンソロで20分ほどのステージをお届 けします。
  20. 20. ご静聴ありがとうございました。
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×