SlideShare a Scribd company logo
1 of 94
UIテストの自動化
  UIAutomationを使って
      2012.3.24

     Cocoa勉強会
   大森智史(@oogon)
あんた、誰?
と、いうことで...
ごあいさつ
ごあいさつ


• 大森智史(おおもり さとし)です。
ごあいさつ


• 大森智史(おおもり さとし)です。
• Objective-C書いて遊んでます。
• というとこで、ICカードとか売ってま
 す。(システムまるごと)
• というとこで、ICカードとか売ってま
 す。(システムまるごと)

• iPhoneもそろそろNFCとか来そうだし
• というとこで、ICカードとか売ってま
 す。(システムまるごと)

• iPhoneもそろそろNFCとか来そうだし
• 何か案件があれば、どうぞ!
挨拶終わり
では、本題。
本日の内容
本日の内容

• iOSのUIテストの自動化の説明します。
本日の内容

• iOSのUIテストの自動化の説明します。
• どのようにするかの方法を説明します。
本日の内容

• iOSのUIテストの自動化の説明します。
• どのようにするかの方法を説明します。
 スライド、サンプルは後ほどSlidShareとGithubに置きます。
テストしましょう!
インターフェースの

• どうやってますか?
• 自分でボタン押して...スライドして...ボ
 タン押して...
面倒ですね
面倒な作業は
 Macに
そこで
どうするの?
コードを書きます
どんな?
JavaScript!
こんな感じ!
どこに?
Instrument!

• iOS 5からはコマンドラインからも使える
 らしい。
作り方
• XcodeからProfile実行
• Automationモジュールを選択
• Script > Add
• Create
• Scriptエディタ
 に書いていき
 ます
• 自動記録もできます。
仮の名前になるので、後で修正するべし。
どんなことが
1.ボタン押したり
タッチ、スライド、
  ピンチ
   など
2.オブジェクトが
何個あるかの検証
3.テストが成功した
か失敗したかの記録
4.GPSなどの現在地
    が
 変更できます。
もう、京阪デバッグ
   とは
 おさらばだ!
5.指定サイズのスク
リーンショット。
6.音量調節。
どんなふうに
 書くの?
まず最初
//変数targetにデバッグターゲットをセット

var target =
UIATarget.localTarget();

//ログ記録開始
UIALogger.logStart("テストスタート
Starting Test:"+ target.model());
オブジェクトを
変数にいれとく
//変数viewに現在のメインウインドウを

セット

var view =
UIATarget.localTarget().frontMost
App().mainWindow();
位置の
セット
//現在の位置をセット

target.setLocationWithOptions(
{latitude: 35.029500,longitude:
135.772700},
{horizontalAccuracy:10.0,
altitude:20.0});
画面撮影
//画面を撮影

target.captureScreenWithName("loc
ation3");
音量下げる
//音量下げる

target.clickVolumeDown();
ドラッグ
//指定位置でドラッグ

target.dragFromToForDuration({x:
15, y:114}, {x:150, y:114}, 5);
デバイスの向き変更
//デバイスの向きを変える

target.setDeviceOrientation(UIA_D
EVICE_ORIENTATION_LANDSCAPERIGHT)
;
判定
//判定

if (textfields.length != 0)
{    UIALogger.logFail("ERROR");
} else {
    UIALogger.logPass("OK");
}
UIAutomationのリ
ファレンスをみれば
もっといろいろあり
    ます。
ターゲット
iPhoneシミュレータ
iPadシミュレータ
    実機
テストを
実行するには?
Recordで実行します
1つ注意点!
コードを修正して
普通にビルドしても
古いアプリケーション
プロジェクトの修正
  をしたら...
Build for Profiling!

これで実行される
アプリケーションが
Build for Profiling!

これで実行される
アプリケーションが
大事なので
もう一度
Build for Profiling!
Build for Profiling!
それではDEMO
DEMO
まとめ1
まとめ1

• XcodeでProfileを実行。Automationモジュール。
まとめ1

• XcodeでProfileを実行。Automationモジュール。
• JavaScriptを書きます。UIAutomation参照。
まとめ1

• XcodeでProfileを実行。Automationモジュール。
• JavaScriptを書きます。UIAutomation参照。
• ターゲット別にテスト可能。
まとめ2
まとめ2

• UIパーツがどういう状態かを知ることができる
まとめ2

• UIパーツがどういう状態かを知ることができる
• 位置情報、向きなどデバイスの状態を変更できる
まとめ2

• UIパーツがどういう状態かを知ることができる
• 位置情報、向きなどデバイスの状態を変更できる
• 忘れないで! Build for Profiling
ありがとう
何か質問など?
ありがとう

More Related Content

More from Satoshi Oomori

Cocoa勉強会20140621 macとiosで共通のコード
Cocoa勉強会20140621 macとiosで共通のコードCocoa勉強会20140621 macとiosで共通のコード
Cocoa勉強会20140621 macとiosで共通のコードSatoshi Oomori
 
Cocoa勉強会20140419ゲームをつくってみる
Cocoa勉強会20140419ゲームをつくってみるCocoa勉強会20140419ゲームをつくってみる
Cocoa勉強会20140419ゲームをつくってみるSatoshi Oomori
 
Word net cocoa勉強会201306
Word net cocoa勉強会201306Word net cocoa勉強会201306
Word net cocoa勉強会201306Satoshi Oomori
 
Scene kit cocoa勉強会201306
Scene kit cocoa勉強会201306Scene kit cocoa勉強会201306
Scene kit cocoa勉強会201306Satoshi Oomori
 
Cocoa勉強会ビギナーズramディスクとコマンドファイル
Cocoa勉強会ビギナーズramディスクとコマンドファイルCocoa勉強会ビギナーズramディスクとコマンドファイル
Cocoa勉強会ビギナーズramディスクとコマンドファイルSatoshi Oomori
 
Cocoa勉強会2011年11月
Cocoa勉強会2011年11月Cocoa勉強会2011年11月
Cocoa勉強会2011年11月Satoshi Oomori
 

More from Satoshi Oomori (8)

Cocoa勉強会20140621 macとiosで共通のコード
Cocoa勉強会20140621 macとiosで共通のコードCocoa勉強会20140621 macとiosで共通のコード
Cocoa勉強会20140621 macとiosで共通のコード
 
Cocoa勉強会20140419ゲームをつくってみる
Cocoa勉強会20140419ゲームをつくってみるCocoa勉強会20140419ゲームをつくってみる
Cocoa勉強会20140419ゲームをつくってみる
 
Word net cocoa勉強会201306
Word net cocoa勉強会201306Word net cocoa勉強会201306
Word net cocoa勉強会201306
 
Scene kit cocoa勉強会201306
Scene kit cocoa勉強会201306Scene kit cocoa勉強会201306
Scene kit cocoa勉強会201306
 
Cocoa勉強会ビギナーズramディスクとコマンドファイル
Cocoa勉強会ビギナーズramディスクとコマンドファイルCocoa勉強会ビギナーズramディスクとコマンドファイル
Cocoa勉強会ビギナーズramディスクとコマンドファイル
 
Cocoa勉強会201302
Cocoa勉強会201302Cocoa勉強会201302
Cocoa勉強会201302
 
Cocoa勉強会201208
Cocoa勉強会201208Cocoa勉強会201208
Cocoa勉強会201208
 
Cocoa勉強会2011年11月
Cocoa勉強会2011年11月Cocoa勉強会2011年11月
Cocoa勉強会2011年11月
 

Recently uploaded

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 

Recently uploaded (11)

論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 

Cocoa勉強会201203公開

Editor's Notes

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n
  65. \n
  66. \n
  67. \n
  68. \n
  69. \n
  70. \n
  71. \n
  72. \n
  73. \n
  74. \n
  75. \n
  76. \n
  77. \n
  78. \n
  79. \n
  80. \n
  81. \n
  82. \n
  83. \n