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

Xcode10から最新までのTestingをふりかえる

tarappo
October 05, 2022

 Xcode10から最新までのTestingをふりかえる

10/5のiOSDC Japan 2022 After Talkで話した内容です。

tarappo

October 05, 2022
Tweet

More Decks by tarappo

Other Decks in Technology

Transcript

  1. 9DPEF3FMFBTF/PUFʢ5FTUJOHʣ 9DPEFʙ9DPEFɿ/FX'FBUVSFT 9DPEF 9DPEF 9DPEF 9DPEF 9DPEF P Y P

    Y Y 9DPEF 9DPEF 9DPEF 9DPEF 9DPEF 9DPEF P Y Y Y Y Y 9DPEF 9DPEF 9DPEF 9DPEF 9DPEF P Y Y Y Y
  2. 9DPEF3FMFBTF/PUFʢ5FTUJOHʣ 9DPEFʙ9DPEFɿ/FX'FBUVSFT 9DPEF 9DPEF 9DPEF 9DPEF 9DPEF 9DPEF 9DPEF 9DPEF

    P Y Y Y Y Y P Y 9DPEF 9DPEF 9DPEF 9DPEF 9DPEF 9DPEF 9DPEF 9DPEF P Y P Y P Y Y Y 9DPEF 9DPEF P Y
  3. 5FTUJOH ௥Ճ͞Εͨओͳػೳ 5FTU1MBOT 3FTVMU#VOEMF .FUSJDT 9$56OXSBQ 9DPEF 9DPEF ฒྻ࣮ߦ ϥϯμϜ࣮ߦ

    ίʔυΧόϨοδ 9DPEF 9DPEF ࣮ߦ࣌ؒͷ੍ݶ ςετͷεΩοϓ 4UPSF,JU5FTUJOH 4UPSF,JU5FTUJOHڧԽ 9$5&YQFDU'BJMVSF ܁Γฦ࣮͠ߦ ࣮ߦճ਺ͷදࣔ YDUFTUQSPEVDU#VOEMF ίʔυΧόϨοδڧԽ ೥ळ ೥ळ ೥ळ ೥ळ ೥ळ J04ςετશॻʢʣ 9DPEF$MPVE 9DPEF$MPVE CFUB (JU)VC"DUJPOT ฒྻ࣮ߦͷڧԽ TQJOEVNQ ΞαʔγϣϯදࣔͷڧԽ 9$5*TTVF ೥ 9DPEF J04%$ 9DPEF $*$%5FTU/JHIU #JUSJTFࣾདྷ೔ TFU6Q8JUI&SSPS UFBS%PXO8JUI&SSPS ίʔυΧόϨοδͷදࣔڧԽ "QQMF͕#VEEZCVJMEങऩ #VEEZCVJME 4IVUUJOHEPXO
  4. 9DPEFͷ5FTUJOH ςετίʔυؔ࿈ w ৽ػೳʢαϙʔτൣғͷ֦େʣ w .FUSJDTʢ9DPEFʣ w 4UPSF,JU5FTUJOHʢ9DPEFʣ w ςετίʔυͷॻ͖ํͷଟ༷Խ

    w 9$54LJQ*Gʢ9DPEFʣ w 9$5&YQFDU'BJMVSFʢ9DPEFʣ w ςετίʔυͷαϙʔτڧԽ w 9$56OXSBQʢ9DPEFʣɿ9$5"TTFSU/PU/JM HVBSEMFU w TFU6Q8JUI&SSPSɺUFBS%PXO8JUI&SSPSʢ9DPEFʣɿTFU6QɺUFBS%PXO࣌఺ͰͷΤϥʔͷεϩʔ
  5. ςετίʔυؔ࿈ αϙʔτൣғͷ֦େ w .FUSJDTʢ9DPEFʣ w ύϑΥʔϚϯεपΓͷςετ w ͦͷଞʹ΋.FUSJD,JU΍9DPEF.FUSJDT0SHBOJ[FSʢ9DPEFʣͳͲύϑΥʔϚϯεपΓͷػ ೳ͸ॆ࣮ԽɿIUUQTOPUFDPNUBSBQQPOOD ff

    CDFB w 4UPSF,JU5FTUJOHʢ9DPEFʣ w ଴๬ͷ՝ۚपΓͷςετ w "QQMFެࣜυΩϡϝϯτɿIUUQTEFWFMPQFSBQQMFDPNEPDVNFOUBUJPOYDPEFTFUUJOHVQ TUPSFLJUUFTUJOHJOYDPEF
  6. ςετίʔυؔ࿈ 4LJQɺ1FOEJOHͷαϙʔτʹΑΔ՝୊ͱରԠ w YDQSFUUZʢMBTUDPNNJU"VHʣͷະαϙʔτʢ4LJQɺ1FOEJOHɺฒྻ࣮ߦʹະαϙʔτʣ w YDPEFCVJMEͷϩάΛݩʹ࣍Λ͓͜ͳ͍ͬͯΔ w ϩάදࣔͷ੔ܗ w ςετϨϙʔτͷੜ੒

    w GBTUMBOFͷTDBOͰ΋ར༻ʢTDBOҎ֎Ͱ΋ʣ w GBTUMBOFʢ+BOʣ͔Βมߋ w ϩά੔ܗͷσϑΥϧτ͸YDCFBVUJGZʹมߋ w ࣮ߦ؀ڥͰYDCFBVUJGZ͕͋Δ৔߹ w +6OJUܗࣜͷςετϨϙʔτ͸USBJOFSΛར༻ w YDQSFUUZΛ࢖Θͳ͍৔߹ GBTUMBOFSFMFBTFOPUF
  7. 9DPEFͷ5FTUJOH ςετͷ࣮ߦ؀ڥ w ߴ଎Խ w ฒྻ࣮ߦʢ9DPEFʣ w ࣮ػΛར༻ͨ͠ฒྻ࣮ߦʢ9DPEFʣ w ࣮ߦ؀ڥͷଟ༷Խͷαϙʔτ

    w ϥϯμϜ࣮ߦʢ9DPEFʣ w 5FTU1MBOTʢ9DPEFʣ w ςετͷ࣮ߦ࣌ؒͷ੍ݶʢ9DPEFʣ w खݩͰͷ࣮ߦαϙʔτ؀ڥ w $MFBO5FTU3FTVMUTʢ9DPEFʣ w ςετͷ܁Γฦ࣮͠ߦɺ࣮ߦճ਺ͷදࣔʢ9DPEFɺ9DPEFʣ w ςετ࣮ߦʹؔ͢Δ৘ใͷ౷߹ w YDUFTUQSPEVDU#VOEMFʢ9DPEFʣ w ࠓ·ͰɿʮYDUFTUSVOϑΝΠϧʢςετλʔήοτͷΞϓϦϑΝΠϧͷύεͳͲ͕هࡌ͞ΕͨQMJTUϑΝΠϧʣʯͱʮ࣮ߦϑΝΠϧͳͲʯ͕ඞཁ w ͜Ε͔Βɿ͜ͷ#VOEMF಺ʹશ͕ͯ͋ΔͷͰ͜Ε͚ͩ༻ҙ͢Ε͹0,
  8. ςετͷ࣮ߦ؀ڥ ςετͷߴ଎Խͷඞཁੑ w ࣮ߦ࣌ؒͷ໰୊ w Ϗϧυͱςετʹ͕͔͔࣌ؒΔ w J04γϛϡϨʔλʔΛىಈͯ͠ͷςετ࣮ߦ w ࣮ߦ؀ڥͷଟ༷Խͷ໰୊

    w ෳ਺ͷJ04γϛϡϨʔλʔɺ୺຤Ͱ࣮ߦ w ෳ਺ͷσόΠελΠϓɺ04ͳͲ w ؀ڥͳͲ΋͍Ζ͍Ζͱ͋Δ ͍Ζ͍ΖͳύλʔϯΛී௨ʹ࣮ߦ͍ͯͨ͠ΒςετΛಈ͔ͤΔλΠϛϯά͕গͳ͘ͳΔ
  9. ςετͷ࣮ߦ؀ڥ ߴ଎Խαϙʔτͷྺ࢙ w Ϗϧυͱςετ࣮ߦͷ෼཭ʢ9DPEFʣ w CVJMEGPSUFTUJOHɿϏϧυ w UFTUXJUIPVUCVJMEJOHɿϏϧυ͞Εͨ΋ͷΛςετ࣮ߦ w ϏϧυίϚϯυʢYDPEFCVJMEʣʹΑΔฒྻԽʢ9DPEFʣ

    w ผ؀ڥʢEFTUJOBUJPOͰ෼͚ΔʣͰ࣮ߦ w ฒྻ࣮ߦʢ9DPEFʣ w ಉҰ؀ڥʢDMPOFʣͰ࣮ߦ w ࣮ػΛར༻ͨ͠ฒྻ࣮ߦʢ9DPEFʣ w λʔήοτ΋ؚΊͨฒྻ࣮ߦʢ9DPEFʣ w ฒྻ࣮ߦͷ΍Γํͷվળ
  10. ςετͷ࣮ߦ؀ڥ ߴ଎Խαϙʔτͷྺ࢙ 9DPEF 9DPEF 9DPEF 9DPEF 9DPEF #MVFQJMM  ೥ळ

    'MBOLW  Ϗϧυͱςετ࣮ߦͷ෼཭ YDPEFCVJMEʹΑΔฒྻԽ ผ؀ڥͰͷ࣮ߦ ฒྻ࣮ߦʢಉҰ؀ڥDMPOFʣ ࣮ػΛར༻ͨ͠ฒྻ࣮ߦ λʔήοτ΋ؚΊͨฒྻ࣮ߦ J04γϛϡϨʔλʔͰ 6*ςετΛฒྻ࣮ߦ 'JSFCBTF5FTU-BCͰ ฒྻ࣮ߦ ೥ळ POMZUFTUJOHΦϓγϣϯ ࣮ߦ͢Δςετର৅Λࢦఆ ͋·Γҙࣝͤͣʹ ฒྻ࣮ߦ͕Ͱ͖ΔΑ͏ʹͳ͖ͬͯͨ ࣗલͰ෼཭ͯ͠ ςετΛ࣮ߦ .BHJD1PE  "VUJGZGPS.PCJMF  "84%FWJDF'BSN  J04 αϙʔτ 'JSFCBTF5FTU-BC  J04 αϙʔτ ͱΓ·͘؀ڥ 8BMEP  6*ςετͷߴ଎Խ 
 ର৅ͷλʔήοτͷΠϯετʔϧ͕౓ͷΈʹͳͬͨ
  11. ςετͷ࣮ߦ؀ڥ 5FTU1MBOTʢ9DPEFʣ ςετͷ࣮ߦॱ ςετͷ࣮ߦ࣌ؒͷ੍ݶ w ςετ࣮ߦ࣌ͷ֤छઃఆΛఆٛ͢Δ ͜ͱ͕Ͱ͖Δ w ʮ-BOHVBHFʯ΍ʮςετͷ࣮ߦ ࣌ؒͷ੍ݶʯͳͲ

    w 5FTU1MBO͸ͭͷϑΝΠϧ಺ʹෳ਺ ͷઃఆΛ࣋ͭ͜ͱ͕Ͱ͖Δ 5FTU1MBOT 9DPEF 9DPEF w #FGPSFɿεΩʔϜΤσΟλΛར༻͢Δɺ࣮ߦ؀ڥΛ࣮ߦલʹη οτΞοϓ͢ΔͳͲ w "GUFSɿઃఆ୯ҐͰ5FTU1MBOΛར༻ $PO fi HVSBUJPOT 5FTUT ෳ਺ͷλʔήοτΛઃఆ͢Δ͜ͱ͕Ͱ͖Δ
  12. ςετͷ࣮ߦ؀ڥ ςετͷ܁Γฦ࣮͠ߦɺ࣮ߦճ਺ͷදࣔʢ9DPEFɺ9DPEFʣ w ςετΛࢦఆճ਺࣮ߦ͢Δ͜ͱ͕Ͱ͖Δ w ετοϓ͢Δ৚݅ w ੒ޭ·Ͱ w ࣦഊ·Ͱ

    w ࢦఆͨ͠ճ਺·Ͱ w ར༻ྫ w 'MBLZͳςετʹରͯ͠ͷௐ͕ࠪ͠΍͘͢ͳΔ w 9DPEF্ͰͷදࣔͷڧԽ 9DPEF 9DPEF
  13. ςετ݁ՌʢϨϙʔτʣ 3FTVMU#VOEMF w ςετ݁Ռ͕·ͱ·ͬͨύοέʔδ w ϏϧυϩάɺςετϨϙʔτɺίʔυΧόϨοδɺఴ෇ϑΝΠϧͳͲ w ར༻ํ๏ w ʢ̍ʣ9DPEFͰදࣔ

    w ʢ̎ʣYDSFTVMUUPPMͰத਎ͷσʔλऔಘ w ֤3FTVMU#VOEMFͷNFSHF΋Մೳ ग़ྗྫ ࣗલͰ͍Ζ͍Ζͱ΍Δͷ͸λΠϔϯͳͷͰ044ʢྫɿ9$5FTU)5.-3FQPSUʣ΋͍Ζ͍Ζͱ͋Γ·͢
  14. ςετ݁ՌʢϨϙʔτʣ ΞαʔγϣϯදࣔͷڧԽʢ9DPEFʣ w ςετ͕མͪͨՕॴͷදࣔͷڧԽ w ಠࣗͷΞαʔγϣϯϝιουΛར༻͍ͯ͠Δ৔߹ɺ֘౰ͷՕॴ΋;͘Ί දࣔ͞ΕΔ w #FGPSFɿࣗલͰ fi

    MF΍MJOFΛࢦఆ w ͜ͷΑ͏ʹͯ͠΋ΞαʔγϣϯϝιουଆʹΤϥʔදࣔ͞Εͳ͍ w "GUFSɿͳʹ΋͢Δඞཁͳ͠ ಠࣗͷΞαʔγϣϯϝιου