Upgrade to Pro — share decks privately, control downloads, hide ads and more …

テストも開発もするモバイルエンジニアのためのXCUITest/Espressoのすすめ

D849a9a1268bf7b840d1eb762873f7ca?s=47 woshidan
December 11, 2017

 テストも開発もするモバイルエンジニアのためのXCUITest/Espressoのすすめ

システムテスト自動化カンファレンス2017-2 LT資料

D849a9a1268bf7b840d1eb762873f7ca?s=128

woshidan

December 11, 2017
Tweet

More Decks by woshidan

Other Decks in Programming

Transcript

  1. ςετ΋։ൃ΋͢ΔϞόΠϧΤϯδχ ΞͷͨΊͷXCUITest/Espressoͷ͢ ͢Ί γεςϜςετࣗಈԽΧϯϑΝϨϯε2017-2 @woshidan

  2. ࣗݾ঺հ w !XPTIJEBO 5XJUUFS*%͸ !XPTIJEBOP  w ݩ"OESPJEΞϓϦΤϯδ χΞ w

    Ұ೥͘Β͍લ͔Β୅ʑ໦ล ΓͷελʔτΞοϓͰϞό Πϧ༻ϥΠϒϥϦͷςετ ࣗಈԽͳͲΛ͍ͯ͠·͢
  3. ࠓ೔͓࿩͢͠Δ͜ͱ w ϞόΠϧΞϓϦํ໘ͷ&&ςετʹ͍ͭͯ w ݩ։ൃͷਓ͕"QQJVNΛࢼͯ͠Έͨͱ͖ͷײ૝ w "OESPJE4UVEJP΍9$PEFΛ࢖͑ΔਓͳΒ &TQSFTTP΍9$6*5FTU΋͍͍ w ࣌ؒ͋Ε͹

    &TQSFTTP5FTU3FDPSEFS΍ 9$PEF6*5FTU3FDPSEFSͷ࢖͍ํ
  4. "QQJVNΛ࢖ͬͯΈͨͱ͖ͷ࿩ w "QQJVN J04"OESPJE Λ࢖ͬͯΈͨͱ͖ͷ ࿩

  5. "QQJVNΛ࢖ͬͯΈͨͱ͖ͷ࿩ w "QQJVN J04"OESPJE ͰͷϝϦοτ w ҰͭͷίʔυͰJ04"OESPJE྆ํͷಈ͖͕ςετͰ͖Δ w ෳ਺ͷςετ༻ϓϥοτϑΥʔϜΛԼଆͰར༻͓ͯ͠Γ෯ ޿͍"OESPJEJ04ͷόʔδϣϯʹ΋ରԠ͍ͯ͠Δ

    w ෯޿͍ݴޠͷυϥΠό͕ଘࡏ͠ɺࣗ෼ͷ޷͖ͳݴޠͰ͔͚ Δ w "QQJVN4UVEJPͳͲΛར༻͢Ε͹6*ཁૉʹৄ͘͠ͳͯ͘ ΋6*5FTU༻ͷίʔυੜ੒͕Ͱ͖Δ
  6. w ҰͭͷίʔυͰJ04"OESPJE྆ํͷಈ͖͕ς ετͰ͖Δ w ϓϥοτϑΥʔϜ͝ͱͷΨΠυϥΠϯʹԊ͏ ৔߹ɺͦ͜·Ͱ྆04Ͱ6*͕Ұக͠ͳ͍ w BDDFTTJCJMJUZJE΍7JFXͷJE 7JFXͷ֊ ૚ϨϕϧͰҰக͠ͳ͍ͱίʔυ͕ͳ͔ͳ͔

    ڞ௨ԽͰ͖ͳ͍ "QQJVNΛ࢖ͬͯΈͨͱ͖ͷ࿩
  7. w ෳ਺ͷςετ༻ϓϥοτϑΥʔϜΛԼଆͰར༻͓ͯ͠Γ෯޿ ͍"OESPJEJ04ͷόʔδϣϯʹ΋ରԠ͍ͯ͠Δ w ؀ڥઃఆ͕ͦΕͳΓʹେมͰ"QQJVNͷઃఆΛݕূͯ͠ ͍ͨͱࢥͬͨΒͦͷԼଆͷπʔϧʹৄ͘͠ͳͬͯ͠·͏ʜ w J04͸Լͷόʔδϣϯ͕ૣ͘੾Γ΍͍͢"OESPJEͰ ܥΛ੾ͬͯྑͦ͞͏ʹͳ͖ͬͯͨ "1*ҎԼͷγΣΞ͕

      w IUUQTEFWFMPQFSBOESPJEDPNBCPVUEBTICPBSETJOEFYIUNM "QQJVNΛ࢖ͬͯΈͨͱ͖ͷ࿩
  8. w ෯޿͍ݴޠͷυϥΠό͕ଘࡏ͠ɺࣗ෼ͷ޷͖ͳݴޠ Ͱ͔͚Δ w "OESPJE΍J04ͷΞϓϦΛ։ൃͯ͠Δਓʹͱͬͯ "OESPJEJ04Λ։ൃͰ͖ΔݴޠͰॻ͚ΔͷͰ͋ Γ͕͍ͨ w ͕ɺ֤ݴޠͷυϥΠόͷಈ޲Λؾʹͨ͠Γपล πʔϧ

    4FMFOJVN֤ݴޠͷϏϧυπʔϧ Λֶ श͢Δඞཁ͕͕͋ͬͯͦͬͪਏ͍ʜ "QQJVNΛ࢖ͬͯΈͨͱ͖ͷ࿩
  9. w "QQJVN4UVEJPͳͲΛར༻͢Ε͹6*ཁૉʹৄ͘͠ͳͯ͘΋ 6*5FTU༻ͷίʔυੜ੒͕Ͱ͖Δ w "OESPJE4UVEJP΍9$PEFͰ΋ಉ͡Α͏ͳ͜ͱ͕Ͱ͖·͢ w "OESPJE4UVEJPͰ͸&TQSFTTP5FTU3FDPSEFS ͕࢖͑ΔΑ͏ʹͳ͍ͬͯͨ w 1SFWJFXʹ͋ͬͨ΋ͷͷҰ౓ফ͔͑ͨͱࢥ͕͍ͬͨ

    ͭͷ·ʹ͔෮׆ͯͨ͠ w 9$PEFd9$PEF6*5FTU3FDPSEFS͕࢖͑Δ "QQJVNΛ࢖ͬͯΈͨͱ͖ͷ࿩
  10. "QQJVNݸਓతײ૝·ͱΊ w ϞόΠϧΞϓϦΛॻ͍͍ͯΔਓ͕&&ςετ Λ࢝ΊΔ৔߹ʹ͸&TQSFTTP9$6*5FTU΋બ ୒ࢶʹೖΕ͍͍ͯͷͰ͸

  11. w &TQSFTTP9$6*5FTUΛ࢖ͬͨ৔߹͸Ͳ͏ͳ ͷ͔

  12. 9$6*5FTU&TQSFTTPʹ͍ͭͯ w Α͍ͱ͜Ζͷ࿩ w "OESPJE4UVEJP9$PEFΛ࢖͍ͬͯΔͷͰ͋Ε͹؀ڥߏ ஙίετ͕௿͍ w ؒʹೖ͍ͬͯΔπʔϧ͕ͳ͘ಈ࡞͕͔ͳΓ҆ఆ͍ͯ͠Δ w ։ൃ࣌ͱςετ࣌Ͱ*%&Λ੾Γସ͑Δඞཁ͕ͳ͍ͷͰɺς

    ετमਖ਼ͷྲྀΕ͕εϜʔζ w 9$PEF΍"OESPJE4UVEJPͷσόοΨͷεςοϓ࣮ߦ΍ ελοΫτϨʔε͕ར༻Ͱ͖ΔͷͰσόοάָ͕
  13. 9$6*5FTU&TQSFTTPʹ͍ͭͯ w ΊΜͲͦ͘͞͏ͳͱ͜Ζͷ࿩ w ಉ͡ϓϩδΣΫτ಺ʹίʔυΛஔ͘͜ͱʹͳΓ΍ ͍͢ͷͰίʔυ؅ཧͷϑϩʔΛ૬ஊ͢Δඞཁ͋Γ w J04"OESPJEͦΕͧΕͰςετ࣮૷ํ๏Λ֮͑ Δඞཁ͋Γ w

    9$6*5FTU &TQSFTTP͕ରԠ͍ͯ͠ͳ͍όʔδϣ ϯ͸खಈςετͱ૊Έ߹Θͤͯߦ͏ඞཁ͕͋Δ
  14. ͜͜·Ͱͷ·ͱΊ w ϞόΠϧΞϓϦํ໘ͷ&&ςετʹ͍ͭͯ w ݩ։ൃͷਓ͕"QQJVNΛࢼͯ͠Έͨͱ͖ͷײ૝ w ։ൃଆ͔Βݟͯಋೖίετ͕ॏ͍"QQJVNͰ͔͠ΧόʔͰ͖ͳ͍ൣғ ͷ04όʔδϣϯͷγΣΞ͕Լ͕͖ͬͯͨͷͰෆ҆ఆ͞ͷπϥϛڧ͍ w "OESPJE4UVEJP΍9$PEFΛ࢖͑ΔਓͳΒ&TQSFTTP΍9$6*5FTU΋͍

    ͍Α w *%&͕։ൃ࣌ͷͦͷ··࢖͑ΔͷͰಋೖ͠΍͍͢σόοά͠΍͍͢ w 6*ཁૉͷऔಘ͕&TQSFTTP5FTU3FDPSEFS΍9$PEF6*5FTU 3FDPSEFSͰͰ͖ΔΑ͏ʹͳͬͨ
  15. w &TQSFTTP5FTU3FDPSEFS΍9$PEF6* 5FTU3FDPSEFSͷ࢖͍ํ

  16. 9$PEF6*5FTU3FDPSEFS 6*5FTU༻ͷλʔήοτΛ࡞੒

  17. 9$PEF6*5FTU3FDPSEFS 6*5FTUͷίʔυ಺ʹΧʔιϧΛ߹ΘͤΔͱ ϨίʔμʔͷϘλϯ͕੺͘ ͳΔͷͰԡ͢

  18. 9$PEF6*5FTU3FDPSEFS ىಈͨ͠ը໘ͷ6*Λλοϓ͢Δͱ ઌ΄ͲΧʔιϧΛ߹ΘͤͨҐஔʹ 6*5FTUͷίʔυ͕ੜ੒͞Ε͍ͯΔ ͓ࢼ͠༻ͷը໘ͷϓϩδΣΫτͷίʔυ͸ J04ͷνϡʔτϦΞϧͷϓϩδΣΫτΛ%-ͯ͠ར༻ IUUQTEFWFMPQFSBQQMFDPNMJCSBSZDPOUFOUSFGFSFODFMJCSBSZ(FUUJOH4UBSUFE%FWFMPQJ04"QQT4XJGU 1FSTJTU%BUBIUNMBQQMF@SFGEPDVJE51$)48

  19. &TQSFTTP5FTU3FDPSEFS CVJMEHSBEMFʹFTQSFTTPΛ௥Ճ ςετର৅ͷϑΟʔνϟ͝ͱʹར༻͢ΔϥΠϒϥϦ͕෼͔ Ε͍ͯΔͷͰৄ͘͠͸IUUQTEFWFMPQFSBOESPJEDPN USBJOJOHUFTUJOHFTQSFTTPJOEFYIUNM ࠓճͷྫͰςετʹ࢖͍ͬͯΔϓϩδΣΫτ͸OFX1SPKFDUͰ4FUUJOH"DUJWJUZΛબΜͩΒ࡞੒ՄೳͰ͢

  20. &TQSFTTP5FTU3FDPSEFS TSDBOESPJE5FTUKBWBQBDLBHFNZFYBNQMF\ύο έʔδʹ߹Θͤͯม͑Δ^ҎԼʹςετΫϥε௥Ճ

  21. &TQSFTTP5FTU3FDPSEFS ্෦ϝχϡʔ͔Β3VO3FDPSEFS&TQSFTTP5FTU Λ࣮ߦ

  22. &TQSFTTP5FTU3FDPSEFS 3FDPSE:PVS5FTUͷμΠΞ ϩʔάͷ"EE"TTFSUJPOϘλ ϯΛԡ͢

  23. &TQSFTTP5FTU3FDPSEFS ͢Δͱӈଆʹݱࡏىಈ͍ͯ͠ΔΞϓϦͷը໘͕ݱΕͯ ΫϦοΫ͢ΔͱͲͷཁૉʹ͍ͨͯ͠Ͳͷ߲໨ͷΞαʔγϣϯΛ ௥Ճ͢Δ͔ͷϝχϡʔ͕ग़ͯ͘Δ

  24. &TQSFTTP5FTU3FDPSEFS 4BWF"TTFSUJPOΛԡ͢ͱɺͲͷΫϥεʹ ௥Ճͨ͠ΞαʔγϣϯͷίʔυΛు͖ग़͢ ͔ೖྗཝ͕ग़ͯ͘Δ

  25. &TQSFTTP5FTU3FDPSEFS ు͖ग़͞Εͨίʔυ͸ҎԼͷΑ͏ͳײ͡Ͱ͢

  26. &TQSFTTP5FTU3FDPSEFS ు͖ग़͞Εͨίʔυ͸ҎԼͷΑ͏ͳײ͡Ͱ͢ मਖ਼ෆཁ ಺ଆͷཁૉͷεΠον্هͷ஋Λݩʹमਖ਼ඞཁ

  27. &TQSFTTP5FTU3FDPSEFS ಺ଆͷཁૉͷεΠονͷཁૉͷࢦఆमਖ਼ͷαϯϓϧ