Successfully reported this slideshow.

Cocoa勉強会201203公開

2,235 views

Published on

Cocoa勉強会 2012年3月24日大森分UIテストの自動化

Published in: Technology
  • Be the first to comment

Cocoa勉強会201203公開

  1. 1. UIテストの自動化 UIAutomationを使って 2012.3.24 Cocoa勉強会 大森智史(@oogon)
  2. 2. あんた、誰?
  3. 3. と、いうことで...
  4. 4. ごあいさつ
  5. 5. ごあいさつ• 大森智史(おおもり さとし)です。
  6. 6. ごあいさつ• 大森智史(おおもり さとし)です。• Objective-C書いて遊んでます。
  7. 7. • というとこで、ICカードとか売ってま す。(システムまるごと)
  8. 8. • というとこで、ICカードとか売ってま す。(システムまるごと)• iPhoneもそろそろNFCとか来そうだし
  9. 9. • というとこで、ICカードとか売ってま す。(システムまるごと)• iPhoneもそろそろNFCとか来そうだし• 何か案件があれば、どうぞ!
  10. 10. 挨拶終わり
  11. 11. では、本題。
  12. 12. 本日の内容
  13. 13. 本日の内容• iOSのUIテストの自動化の説明します。
  14. 14. 本日の内容• iOSのUIテストの自動化の説明します。• どのようにするかの方法を説明します。
  15. 15. 本日の内容• iOSのUIテストの自動化の説明します。• どのようにするかの方法を説明します。 スライド、サンプルは後ほどSlidShareとGithubに置きます。
  16. 16. テストしましょう!
  17. 17. インターフェースの• どうやってますか?• 自分でボタン押して...スライドして...ボ タン押して...
  18. 18. 面倒ですね
  19. 19. 面倒な作業は Macに
  20. 20. そこで
  21. 21. どうするの?
  22. 22. コードを書きます
  23. 23. どんな?
  24. 24. JavaScript!
  25. 25. こんな感じ!
  26. 26. どこに?
  27. 27. Instrument!• iOS 5からはコマンドラインからも使える らしい。
  28. 28. 作り方• XcodeからProfile実行• Automationモジュールを選択
  29. 29. • Script > Add
  30. 30. • Create• Scriptエディタ に書いていき ます
  31. 31. • 自動記録もできます。仮の名前になるので、後で修正するべし。
  32. 32. どんなことが
  33. 33. 1.ボタン押したりタッチ、スライド、 ピンチ など
  34. 34. 2.オブジェクトが何個あるかの検証
  35. 35. 3.テストが成功したか失敗したかの記録
  36. 36. 4.GPSなどの現在地 が 変更できます。
  37. 37. もう、京阪デバッグ とは おさらばだ!
  38. 38. 5.指定サイズのスクリーンショット。
  39. 39. 6.音量調節。
  40. 40. どんなふうに 書くの?
  41. 41. まず最初
  42. 42. //変数targetにデバッグターゲットをセットvar target =UIATarget.localTarget();//ログ記録開始UIALogger.logStart("テストスタートStarting Test:"+ target.model());
  43. 43. オブジェクトを変数にいれとく
  44. 44. //変数viewに現在のメインウインドウをセットvar view =UIATarget.localTarget().frontMostApp().mainWindow();
  45. 45. 位置のセット
  46. 46. //現在の位置をセットtarget.setLocationWithOptions({latitude: 35.029500,longitude:135.772700},{horizontalAccuracy:10.0,altitude:20.0});
  47. 47. 画面撮影
  48. 48. //画面を撮影target.captureScreenWithName("location3");
  49. 49. 音量下げる
  50. 50. //音量下げるtarget.clickVolumeDown();
  51. 51. ドラッグ
  52. 52. //指定位置でドラッグtarget.dragFromToForDuration({x:15, y:114}, {x:150, y:114}, 5);
  53. 53. デバイスの向き変更
  54. 54. //デバイスの向きを変えるtarget.setDeviceOrientation(UIA_DEVICE_ORIENTATION_LANDSCAPERIGHT);
  55. 55. 判定
  56. 56. //判定if (textfields.length != 0){ UIALogger.logFail("ERROR");} else { UIALogger.logPass("OK");}
  57. 57. UIAutomationのリファレンスをみればもっといろいろあり ます。
  58. 58. ターゲット
  59. 59. iPhoneシミュレータiPadシミュレータ 実機
  60. 60. テストを実行するには?
  61. 61. Recordで実行します
  62. 62. 1つ注意点!
  63. 63. コードを修正して普通にビルドしても古いアプリケーション
  64. 64. プロジェクトの修正 をしたら...
  65. 65. Build for Profiling!これで実行されるアプリケーションが
  66. 66. Build for Profiling!これで実行されるアプリケーションが
  67. 67. 大事なのでもう一度
  68. 68. Build for Profiling!
  69. 69. Build for Profiling!
  70. 70. それではDEMO
  71. 71. DEMO
  72. 72. まとめ1
  73. 73. まとめ1• XcodeでProfileを実行。Automationモジュール。
  74. 74. まとめ1• XcodeでProfileを実行。Automationモジュール。• JavaScriptを書きます。UIAutomation参照。
  75. 75. まとめ1• XcodeでProfileを実行。Automationモジュール。• JavaScriptを書きます。UIAutomation参照。• ターゲット別にテスト可能。
  76. 76. まとめ2
  77. 77. まとめ2• UIパーツがどういう状態かを知ることができる
  78. 78. まとめ2• UIパーツがどういう状態かを知ることができる• 位置情報、向きなどデバイスの状態を変更できる
  79. 79. まとめ2• UIパーツがどういう状態かを知ることができる• 位置情報、向きなどデバイスの状態を変更できる• 忘れないで! Build for Profiling
  80. 80. ありがとう
  81. 81. 何か質問など?
  82. 82. ありがとう

×