際際滷

際際滷Share a Scribd company logo
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
iOS Test Night #1
2016/11/18(Fri)
峠弥樗岻@DeNA
iOSアプリの徭咼謄好箸
はじめよう
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
徭失B初
? 峠弥 樗岻@DeNA
? Us
? GWの_k ★ ホムペサ`ビスの_k、iOSアプリの_k ★ SWET
? SWET(Software Engineer in Test)
? 並Iサポ`トチ`ム / テスト児Pチ`ム
? ミッション
? DeNAサ`ビス畠違の瞳|鯢
? DeNAエンジニアの_k伏b來鯢
? 暴がやっていること(の匯何)
? クライアントアプリ巓りのテスト藺圈徭咼謄好箸礼_k
? CI/CDh廠屁
? テスト児Ph廠の_k
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
書晩のk燕の送れ
? 云晩のプロロ`グ
? iOS Test Nightを_岸した尖喇
? 云晩のメイン
? iOSの徭咼謄好箸鬚呂犬瓩襪砲△燭辰
? 徭咼謄好箸くHにおきがちなこと
? どうやって徭咼謄好箸鬚呂犬瓩襪
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
iOS Test Nightを_岸した尖喇
? iOSにおけるテスト巓りにvする秤鵑まだまだ富ない(と湖じている)
? Qiitaのキ`ワ`ド碧Y惚(11/18r泣)
? XCTest: 159
? XCUITest: 10
? EarlGrey: 3
? Espresso: 127
? Appium 124
? JUnit: 866
? RSpec: 1728
? fastlane: 113
? しかし、d龍はあるはず(と佚じている)
? 歌紗宀が富なかったらどうしようと寳えながら云茶氏を_岸しました
? 茶氏を_岸すれば岑が慌嗤できて措い儉hがまわるはず
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
IOSの徭咼謄好箸鬚呂犬瓩襪砲△燭辰
麼な鵐罘`ザ
これから徭咼謄好箸こうかなと房っている繁
コンテンツ
1) 徭咼謄好箸くHにおきがちなこと
2) どうやって徭咼謄好箸鬚呂犬瓩襪
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
徭咼謄好箸くHに軟きがちなこと
いきなりに徭咼謄好箸いてもうまくいかないことが吏?にしてあります
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
徭咼謄好箸くHに軟きがちなこと
にきはじめると參和のなことがおきたりします
? 吭龍のないテストコ`ドをく
? テストになっていないテスト
? iめないテストコ`ドをく
? 辛i來がく採をしているのかが蛍からない
? なんのテストをしているのかが蛍からない
? 徭蛍のh廠でしか咾ないテストコ`ドをく
? 麿の繁のh廠やCI貧では咾ない
? テストY惚が蛍かりづらくなるコ`ドをく
? テストが鯛ちたときの{砲寄
? ojな(音駅勣な)テストコ`ドをく
? テストのg佩rgだけがえる
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
徭咼謄好箸くHに軟きがちなこと(1/3)
? 吭龍のないテストコ`ドをいてしまう
? 箭テストになっていないテスト
? 徭咼謄好箸粘_Jするw侭が音m俳
? UIテストでいえば勣殆が仝贋壓する々のか仝澣ける々のか etc
? 返嗷辰離謄好罷朕を徭咼謄好隼するとk伏しがち
? 返嗷辰離謄好罷朕は畸舛かれていることがある
? 払,垢襪海箸ないテスト
? 械にgreenになる
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
徭咼謄好箸くHに軟きがちなこと(2/3)
? テストY惚が蛍かりづらいコ`ドをいてしまう
? 箭聞うべきAssertionが音m俳
? XCTAssertTrue(expression1== expression2)
? Xode
? JUnit x Jenkins
? XCTAssertEqual(expression1, expression2)
? Xode
? JUnit x Jenkins
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
徭咼謄好箸くHに軟きがちなこと(3/3)
? ojな(音駅勣な)テストコ`ドをいてしまう
? 箭パラメ`タだけを笋┐織謄好箸髻ojに々やす
? どのテストレベルでも軟こりうる
? 廠順、簍、箸を吭Rしていない
? 仝徭咼謄好函垢世らといってむやみにやすケ`スがある
? そのY惚、g佩rgの紗につながっていく
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
おとずれる徭咼謄好箸箸里eれ
? テストのg佩Y惚からコ`ドを弖うのが寄
? 辛i來がくコ`ドをiむのにrgがかかる
? どのようなテストをしているのかがわからない
? テストコ`ドを岷すコストが互すぎて払,慧崔される
払,靴燭泙涎砥辰気譴世垢
? 護れ尖(1つがredになりだすと..)
? こえてくるこわい蕗
? 仝この鯛ちているテストは鯛ちてて}ないテストです々
? 仝とりあえずredなのを畠てdisableにさせておこう々
そして徭咼謄好箸老砥辰気、oくし、
仝徭咼謄好硲汁爾ない々というJRが..
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
徭咼謄好箸鬚呂犬瓩襪砲△燭辰
仝どこから々仝どこまで々仝どうやって々やるかを深えましょう
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
そもそも仝テスト々とは
よく冱われることですが、
? テスト徭悶はプロダクトの仝瞳|々をあげてはくれません
? Fr泣での瞳|が仝わかる々だけです
? その瞳|を措くするのは徭蛍たちです
? テストは、その措くしようとする佩蕕鰆Г┐討れます
? m俳な徭咼謄好箸倭く屶えてくれます
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
まずはじめに
にき竃しても箔めているものは誼られません
? まずは參和の3つを深えましょう
? 仝どこからやるか々
? 仝どこまでやるか々
? 仝どのようにやるか々
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
仝どこから々やればいいですか
まずきはじめるところをつけましょう
? Unitテストで児PといえるControllerにvわるModel巓り
? UIテストでアプリで慌宥となっている鮫中フロ`巓り
? ログインがあるアプリならログイン巓りだけやるという返も
? あなたが音芦を湖じているところから
? _k宀の音芦は輝たります
? ただし音芦なところはテストコ`ドがきづらいことも謹い
? バグを俐屎するタイミングで輝C嬬にして
? 仟C嬬弖紗のタイミングで仟C嬬にして
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
仝どこまで々やればいいですか
? 恷兜からやりすぎようとしない
? やりすぎると連俳れをおこす
? カバレッジ100%とかを吭Rしすぎない
? まずは弌さく仝はじめる々のが措い
? 弌さく恬って\喘にのせていく
? CIh廠で咾せるようにするのが措い
? \喘に\り兵めてから富しずつ個鋲していく
? テストのW_來
? テストのg佩堀業
? アプリのバ`ジョンカバレッジ
? OSカバレッジ
? 鮫中カバレッジ
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
仝どのように々やればいいですか
? テスティングフレ`ムワ`クのx協
? XCTest / Quick etc
? XCUITest / EarlGrey / Appium etc
? テストコ`ドをくHには參和の泣に廣吭
? テストの鏡羨來
? テストの壅F辛嬬
? テストがRり卦し辛嬬
? テストが徭蛍のh廠參翌でも咾
? 猟晒を圄てるためにも
? サンプルとなるコ`ドをしっかりと喘吭
? 麿の繁がはじめやすいようにする
? g佩Y惚などのえる晒
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
iOSの徭咼謄好箸里燭瓩妨兇栽う駅勣があるもの
? テスティングフレ`ムワ`クのバグ
? XcodeのRelease Notesの仝Testing々のコ`ナをるようにしま
しょう
? 屡岑のバグにするworkaroundがのってたりもします
? バ`ジョンアップ
? Xcodeのバ`ジョンアップに鬉垢覬慴があったりもします
? 箭) Xcode8.1のRelease Notesより
? UI tests may fail to run for apps written with Swift 2.3
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
徭咼謄好箸離好謄奪彑
どのようなステップですすめていくかの箭
? セットアップ
? 徭蛍のマシンのセットアップ
? CIh廠のセットアップ
? lもがれるh廠でも咾せるようにする
? fastlaneを聞うのが措い
? セットアップのためのREADMEを喘吭
? テストコ`ドのg廾
? テストをくところをQめる
? テストをく
? いたテストをCIh廠で咾す
? PR彜Bのbranchで咾しAけるのが措い
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
仝徭咼謄好箸鬚呂犬瓩泙靴腓Α
iOSに功を和ろし、Appleと慌に伏きよう
テストと慌にリリ`スを\り埆え
ユ`ザと慌に仟バ`ジョンを梧おう
ラピュタより
Copyright ? DeNA Co.,Ltd. All Rights Reserved.
さいごに
? 仝どこから々仝どこまで々仝どうやって々を深えて、頁掲テストをはじ
めてみてください
? テストをはじめて誼た岑をiOS Test Nightで頁掲k燕をしてください
? そのをいた繁がその岑を圷に仟たな岑を誼てk燕をしてくれる
と房います
? これが侑せなル`プになると房っています
? 峻の魥爾鬚棋ちしております。

More Related Content

庄或皆アフ?リの徭強テストをはし?めよう

  • 1. Copyright ? DeNA Co.,Ltd. All Rights Reserved. iOS Test Night #1 2016/11/18(Fri) 峠弥樗岻@DeNA iOSアプリの徭咼謄好箸 はじめよう
  • 2. Copyright ? DeNA Co.,Ltd. All Rights Reserved. 徭失B初 ? 峠弥 樗岻@DeNA ? Us ? GWの_k ★ ホムペサ`ビスの_k、iOSアプリの_k ★ SWET ? SWET(Software Engineer in Test) ? 並Iサポ`トチ`ム / テスト児Pチ`ム ? ミッション ? DeNAサ`ビス畠違の瞳|鯢 ? DeNAエンジニアの_k伏b來鯢 ? 暴がやっていること(の匯何) ? クライアントアプリ巓りのテスト藺圈徭咼謄好箸礼_k ? CI/CDh廠屁 ? テスト児Ph廠の_k
  • 3. Copyright ? DeNA Co.,Ltd. All Rights Reserved. 書晩のk燕の送れ ? 云晩のプロロ`グ ? iOS Test Nightを_岸した尖喇 ? 云晩のメイン ? iOSの徭咼謄好箸鬚呂犬瓩襪砲△燭辰 ? 徭咼謄好箸くHにおきがちなこと ? どうやって徭咼謄好箸鬚呂犬瓩襪
  • 4. Copyright ? DeNA Co.,Ltd. All Rights Reserved. iOS Test Nightを_岸した尖喇 ? iOSにおけるテスト巓りにvする秤鵑まだまだ富ない(と湖じている) ? Qiitaのキ`ワ`ド碧Y惚(11/18r泣) ? XCTest: 159 ? XCUITest: 10 ? EarlGrey: 3 ? Espresso: 127 ? Appium 124 ? JUnit: 866 ? RSpec: 1728 ? fastlane: 113 ? しかし、d龍はあるはず(と佚じている) ? 歌紗宀が富なかったらどうしようと寳えながら云茶氏を_岸しました ? 茶氏を_岸すれば岑が慌嗤できて措い儉hがまわるはず
  • 5. Copyright ? DeNA Co.,Ltd. All Rights Reserved. IOSの徭咼謄好箸鬚呂犬瓩襪砲△燭辰 麼な鵐罘`ザ これから徭咼謄好箸こうかなと房っている繁 コンテンツ 1) 徭咼謄好箸くHにおきがちなこと 2) どうやって徭咼謄好箸鬚呂犬瓩襪
  • 6. Copyright ? DeNA Co.,Ltd. All Rights Reserved. 徭咼謄好箸くHに軟きがちなこと いきなりに徭咼謄好箸いてもうまくいかないことが吏?にしてあります
  • 7. Copyright ? DeNA Co.,Ltd. All Rights Reserved. 徭咼謄好箸くHに軟きがちなこと にきはじめると參和のなことがおきたりします ? 吭龍のないテストコ`ドをく ? テストになっていないテスト ? iめないテストコ`ドをく ? 辛i來がく採をしているのかが蛍からない ? なんのテストをしているのかが蛍からない ? 徭蛍のh廠でしか咾ないテストコ`ドをく ? 麿の繁のh廠やCI貧では咾ない ? テストY惚が蛍かりづらくなるコ`ドをく ? テストが鯛ちたときの{砲寄 ? ojな(音駅勣な)テストコ`ドをく ? テストのg佩rgだけがえる
  • 8. Copyright ? DeNA Co.,Ltd. All Rights Reserved. 徭咼謄好箸くHに軟きがちなこと(1/3) ? 吭龍のないテストコ`ドをいてしまう ? 箭テストになっていないテスト ? 徭咼謄好箸粘_Jするw侭が音m俳 ? UIテストでいえば勣殆が仝贋壓する々のか仝澣ける々のか etc ? 返嗷辰離謄好罷朕を徭咼謄好隼するとk伏しがち ? 返嗷辰離謄好罷朕は畸舛かれていることがある ? 払,垢襪海箸ないテスト ? 械にgreenになる
  • 9. Copyright ? DeNA Co.,Ltd. All Rights Reserved. 徭咼謄好箸くHに軟きがちなこと(2/3) ? テストY惚が蛍かりづらいコ`ドをいてしまう ? 箭聞うべきAssertionが音m俳 ? XCTAssertTrue(expression1== expression2) ? Xode ? JUnit x Jenkins ? XCTAssertEqual(expression1, expression2) ? Xode ? JUnit x Jenkins
  • 10. Copyright ? DeNA Co.,Ltd. All Rights Reserved. 徭咼謄好箸くHに軟きがちなこと(3/3) ? ojな(音駅勣な)テストコ`ドをいてしまう ? 箭パラメ`タだけを笋┐織謄好箸髻ojに々やす ? どのテストレベルでも軟こりうる ? 廠順、簍、箸を吭Rしていない ? 仝徭咼謄好函垢世らといってむやみにやすケ`スがある ? そのY惚、g佩rgの紗につながっていく
  • 11. Copyright ? DeNA Co.,Ltd. All Rights Reserved. おとずれる徭咼謄好箸箸里eれ ? テストのg佩Y惚からコ`ドを弖うのが寄 ? 辛i來がくコ`ドをiむのにrgがかかる ? どのようなテストをしているのかがわからない ? テストコ`ドを岷すコストが互すぎて払,慧崔される 払,靴燭泙涎砥辰気譴世垢 ? 護れ尖(1つがredになりだすと..) ? こえてくるこわい蕗 ? 仝この鯛ちているテストは鯛ちてて}ないテストです々 ? 仝とりあえずredなのを畠てdisableにさせておこう々 そして徭咼謄好箸老砥辰気、oくし、 仝徭咼謄好硲汁爾ない々というJRが..
  • 12. Copyright ? DeNA Co.,Ltd. All Rights Reserved. 徭咼謄好箸鬚呂犬瓩襪砲△燭辰 仝どこから々仝どこまで々仝どうやって々やるかを深えましょう
  • 13. Copyright ? DeNA Co.,Ltd. All Rights Reserved. そもそも仝テスト々とは よく冱われることですが、 ? テスト徭悶はプロダクトの仝瞳|々をあげてはくれません ? Fr泣での瞳|が仝わかる々だけです ? その瞳|を措くするのは徭蛍たちです ? テストは、その措くしようとする佩蕕鰆Г┐討れます ? m俳な徭咼謄好箸倭く屶えてくれます
  • 14. Copyright ? DeNA Co.,Ltd. All Rights Reserved. まずはじめに にき竃しても箔めているものは誼られません ? まずは參和の3つを深えましょう ? 仝どこからやるか々 ? 仝どこまでやるか々 ? 仝どのようにやるか々
  • 15. Copyright ? DeNA Co.,Ltd. All Rights Reserved. 仝どこから々やればいいですか まずきはじめるところをつけましょう ? Unitテストで児PといえるControllerにvわるModel巓り ? UIテストでアプリで慌宥となっている鮫中フロ`巓り ? ログインがあるアプリならログイン巓りだけやるという返も ? あなたが音芦を湖じているところから ? _k宀の音芦は輝たります ? ただし音芦なところはテストコ`ドがきづらいことも謹い ? バグを俐屎するタイミングで輝C嬬にして ? 仟C嬬弖紗のタイミングで仟C嬬にして
  • 16. Copyright ? DeNA Co.,Ltd. All Rights Reserved. 仝どこまで々やればいいですか ? 恷兜からやりすぎようとしない ? やりすぎると連俳れをおこす ? カバレッジ100%とかを吭Rしすぎない ? まずは弌さく仝はじめる々のが措い ? 弌さく恬って\喘にのせていく ? CIh廠で咾せるようにするのが措い ? \喘に\り兵めてから富しずつ個鋲していく ? テストのW_來 ? テストのg佩堀業 ? アプリのバ`ジョンカバレッジ ? OSカバレッジ ? 鮫中カバレッジ
  • 17. Copyright ? DeNA Co.,Ltd. All Rights Reserved. 仝どのように々やればいいですか ? テスティングフレ`ムワ`クのx協 ? XCTest / Quick etc ? XCUITest / EarlGrey / Appium etc ? テストコ`ドをくHには參和の泣に廣吭 ? テストの鏡羨來 ? テストの壅F辛嬬 ? テストがRり卦し辛嬬 ? テストが徭蛍のh廠參翌でも咾 ? 猟晒を圄てるためにも ? サンプルとなるコ`ドをしっかりと喘吭 ? 麿の繁がはじめやすいようにする ? g佩Y惚などのえる晒
  • 18. Copyright ? DeNA Co.,Ltd. All Rights Reserved. iOSの徭咼謄好箸里燭瓩妨兇栽う駅勣があるもの ? テスティングフレ`ムワ`クのバグ ? XcodeのRelease Notesの仝Testing々のコ`ナをるようにしま しょう ? 屡岑のバグにするworkaroundがのってたりもします ? バ`ジョンアップ ? Xcodeのバ`ジョンアップに鬉垢覬慴があったりもします ? 箭) Xcode8.1のRelease Notesより ? UI tests may fail to run for apps written with Swift 2.3
  • 19. Copyright ? DeNA Co.,Ltd. All Rights Reserved. 徭咼謄好箸離好謄奪彑 どのようなステップですすめていくかの箭 ? セットアップ ? 徭蛍のマシンのセットアップ ? CIh廠のセットアップ ? lもがれるh廠でも咾せるようにする ? fastlaneを聞うのが措い ? セットアップのためのREADMEを喘吭 ? テストコ`ドのg廾 ? テストをくところをQめる ? テストをく ? いたテストをCIh廠で咾す ? PR彜Bのbranchで咾しAけるのが措い
  • 20. Copyright ? DeNA Co.,Ltd. All Rights Reserved. 仝徭咼謄好箸鬚呂犬瓩泙靴腓Α iOSに功を和ろし、Appleと慌に伏きよう テストと慌にリリ`スを\り埆え ユ`ザと慌に仟バ`ジョンを梧おう ラピュタより
  • 21. Copyright ? DeNA Co.,Ltd. All Rights Reserved. さいごに ? 仝どこから々仝どこまで々仝どうやって々を深えて、頁掲テストをはじ めてみてください ? テストをはじめて誼た岑をiOS Test Nightで頁掲k燕をしてください ? そのをいた繁がその岑を圷に仟たな岑を誼てk燕をしてくれる と房います ? これが侑せなル`プになると房っています ? 峻の魥爾鬚棋ちしております。