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

これからのCI、これからのE2E自動テスト / The future of CI, the f...

O3(ozono)
November 18, 2021

これからのCI、これからのE2E自動テスト / The future of CI, the future of E2E automation testing

O3(ozono)

November 18, 2021
Tweet

More Decks by O3(ozono)

Other Decks in Technology

Transcript

  1. w ͲΜͳ͜ͱ΍ͬͨͷʁ w 4FMFOJVN"QQJVNΛϝΠϯʹ ࢖ͬͯ&&ࣗಈςετΛॻ͖· ͬͨ͘ w ࣾ಺ʹࣗՈ੡؆қ%FWJDFGBSN ࡞ͬͨ w

    ࣗՈ੡3FQPSUJOHTZTUFN࡞ͬ ͨ &&ࣗಈςετ͚ͩΛؤு͍ͬͯͨ࣌ ୅ͷ࿩ *NBHFIUUQTXXXJSBTVUPZBDPN
  2. w ͋΍;΍ͳ໨ඪɾ໨త w ܾΊΒΕͳ͍ୡ੒ࢦඪ w શ࣮͘ײͰ͖ͳ͍ϓϩδΣΫτ΁ͷߩ ݙ w ௥͍͔ͭͳ͍εΫϦϓτमਖ਼ w

    Α͘Θ͔Βͳ͍ݪҼͰෆ҆ఆʹͳΔ &&ࣗಈςετͷࢁ w ஗͗͢ΔEFWFMPQFS΁ͷGFFECBDL ͦͯ͠ײͨ͡ݶք *NBHFIUUQTXXXJSBTVUPZBDPN
  3. w ͋΍;΍ͳ໨ඪɾ໨త w ܾΊΒΕͳ͍ୡ੒ࢦඪ w શ࣮͘ײͰ͖ͳ͍ϓϩδΣΫτ΁ͷߩ ݙ w ௥͍͔ͭͳ͍εΫϦϓτमਖ਼ w

    Α͘Θ͔Βͳ͍ݪҼͰෆ҆ఆʹͳΔ &&ࣗಈςετͷࢁ w ஗͗͢ΔEFWFMPQFS΁ͷGFFECBDL ͦͯ͠ײͨ͡ݶք IUUQTRJJUBDPNP[IJSPJUFNTBBDBEG
  4. w ͋΍;΍ͳ໨ඪɾ໨త w ܾΊΒΕͳ͍ୡ੒ࢦඪ w શ࣮͘ײͰ͖ͳ͍ϓϩδΣΫτ΁ͷߩ ݙ w ௥͍͔ͭͳ͍εΫϦϓτमਖ਼ w

    Α͘Θ͔Βͳ͍ݪҼͰෆ҆ఆʹͳΔ &&ࣗಈςετͷࢁ w ஗͗͢ΔEFWFMPQFS΁ͷGFFECBDL ͦͯ͠ײͨ͡ݶք *NBHFIUUQTXXXJSBTVUPZBDPN ࠓ೔࿩͍ͨ͜͠ͱ
  5. w ଐਓੑΛݮΒ͠ɺࣗಈςετΛ৮ΕΔ मਖ਼Ͱ͖Δ ਓ ͨͪΛ૿΍͍͕ͨ͠ʜ w &&ͷεΫϦϓτ͚ͩͱ͸͍͑ɺ͋Δఔ౓ͷ஌ࣝ ͕ඞཁʹͳΔ࠾༻ɺڭҭ͕͔ͳΓͷϋʔυϧʹ w ͚ͩ͜͜ͷ࿩ɺ͡Ό͋୭Ͱ΋৮ΕΔΑ͏ͳ&&

    UFTUQMBUGPSN࡞Δ͔ͱܾ৺ͯ͠͠Εͬͱ࡞ͬͯ· ͨ͠ ೥͘Β͍લ ݸਓ΍খن໛ͷνʔϜͰͰ ͖Δن໛͡Όͳ͍ͳɺͱ1P$ޙૣʑʹஅ೦ w ͦ͏͜͏͍ͯ͠Δ͏ͪʹૉ੖Β͍͠5FTU"T" 4FSWJDF͕ੈͷதʹͨ͘͞Μग़ͯ͘Δ͏ʔΉɺ &&ࣗಈςετॻ͚Ε͹͍͍ͬͯ࣌୅͸΋͏ऴΘ ͬͨͳɻࣗ෼͸͜Ε͔ΒઌͲ͏ϓϩμΫτʹߩݙ ͍ͯ͜͠͏͔ͳʜ ௥͍͔ͭͳ͍εΫϦϓτमਖ਼ *NBHFIUUQTXXXJSBTVUPZBDPN
  6. w ͜͏͕ͯ͠Ή͠ΌΒʹ&&ࣗಈςετ͚ͩΛॻ͍ ͖ͯͨࣗ෼ͷΩϟϦΞʹٙ໰Λ࣋ͬͨͷͰͨ͠ w ࣗ෼͸&&ࣗಈςετΛॻ͘ &&ࣗಈςετ ʹؔ܎͋Δ΋ͷΛ࡞Δ ϩʔϧɺ%FWFMPQFS͸ αʔϏεΛ࡞Δϩʔϧɻ྆ऀ͸͖ͬ͘Γ෼͔ Εͯͳ͍ͱ͍͚ͳ͍ʁ

    w ࠓ೔͸ޠΒͳ͍͚Ͳ ςετ͸&&͚ͩ͡Ό ͳ͍ɻଞͷςετͰ΍Ζ͏ͱ͍ͯ͠Δςετ ͷޮՌΛಘΒΕͳ͍͔ʁ w &&ࣗಈςετ͚ͩʹݻࣥͤͣɺࢹ໺͕޿͕ Δ෍ੴʹ ௥͍͔ͭͳ͍εΫϦϓτमਖ਼ *NBHFIUUQTXXXJSBTVUPZBDPN
  7. w ·ͣɺΑࣗ͘ಈςετͷ෼໺Ͱ͸'MBLZ ϑ ϨʔΩʔ ͱ͍͏ݴ༿͕࢖ΘΕΔ w ಉ͡ίʔυͳͷʹςετ͕੒ޭͨ͠Γɺ ࣦഊͨ͠Γ͢Δঢ়ଶΛࢦ͢ͱ͖ʹ࢖ΘΕ Δ w

    &&ࣗಈςετ͸Ұൠʹ'MBLZͳςετʹ ͳΓ΍͍͢ w ݪҼ͕εΫϦϓτࣗ਎ʹ͋Δ৔߹΋͋Δ ͠ɺͦ΋ͦ΋&&ͷࣗಈςετ؀ڥࣗମ ͕'MBLZʹͳΔཁҼΛଟ͍࣋ͬͯ͘Δ Α͘Θ͔Βͳ͍ݪҼͰෆ҆ఆʹͳΔ &&ࣗಈςετͷࢁ *NBHFIUUQTXXXJSBTVUPZBDPN
  8. &&UFTU*OUFHSBUJPOUFTU6OJUUFTU *NBHFIUUQTXXXJSBTVUPZBDPN ΞϓϦ "1*αʔόʔ ܾࡁαʔϏε ϩάΠϯαʔϏε &&UFTU ΞϓϦ "1*αʔόʔ ܾࡁαʔϏε

    ϩάΠϯαʔϏε *OUFHSBUJPOUFTU ΞϓϦ "1*αʔόʔ ܾࡁαʔϏε ϩάΠϯαʔϏε 6OJUUFTU .PDL .PDL .PDL .PDL .PDL ղઆ͢Δλʔϯ
  9. &&UFTU*OUFHSBUJPOUFTU6OJUUFTU *NBHFIUUQTXXXJSBTVUPZBDPN ΞϓϦ "1*αʔόʔ ܾࡁαʔϏε ϩάΠϯαʔϏε *OUFHSBUJPOUFTU ΞϓϦ "1*αʔόʔ ܾࡁαʔϏε

    ϩάΠϯαʔϏε 6OJUUFTU .PDL .PDL .PDL .PDL .PDL w ςετ͍ͨ͠Ұ෦෼͚ͩɺ͋Δ͍͸Ұͭ ͷ૊Έ߹Θ͚ͤͩΛςετ͢Δ w ࣮ࡍʹܨ͕ͳ͍෦෼͸ϞοΫ͢Δ w ෆ҆ఆཁૉΛίϯτϩʔϧͰ͖Δ w ςετ͝ͱʹ؀ڥΛಠཱͤ͞ΒΕΔ σʔλಠཱੑ͕ߴ͍ฒྻ౓Λߴ͘͠ ΍͍͢ w ϞοΫ͢Ε͹͢Δ΄Ͳɺݱ࣮ੈք͔Β͸ ཭ΕΔϞοΫΛ࢖ͬͨςετͰ͸͏ ·͍ͬͯ͘Δͷʹ࣮ࡍʹϦϦʔεͨ͠Β ͏·͍͔͘ͳ͍ύλʔϯ͕ग़ͯ͘ΔՄೳ ੑ͕ߴ͘ͳ͍ͬͯ͘ ղઆ͢Δλʔϯ
  10. &&UFTU*OUFHSBUJPOUFTU6OJUUFTU *NBHFIUUQTXXXJSBTVUPZBDPN ΞϓϦ "1*αʔόʔ ܾࡁαʔϏε ϩάΠϯαʔϏε &&UFTU w &OEUP&OE ୺͔Β୺·Ͱ

     w ࣮ࡍʹϢʔβʔ͕৮Δ؀ڥͱ΄΅ಉ͡ঢ়ଶΛࢦ͢͜ͱ ͕ଟ͍6*ͷ&&ࣗಈςετͱ͍͏ͱɺϢʔβʔ͕࣮ ࡍʹ৮Δϒϥ΢β΍ΞϓϦΛಈ͔ͯ͠ςετ͢Δ w ొ৔ਓ෺͕ଟ͍Ͳ͔͜Ұ͔ॴͰ༧ظͤ͵໰୊͕ى ͖͚ͨͩͰςετ͸ࣦഊ͢Δෆ҆ఆʹͳΓ΍͍͢ w ྫ͑͹ܾࡁαʔϏεͱϩάΠϯαʔϏε͸ผͷνʔϜ ձࣾ ͕୲౰͍ͯ͠Δ͜ͱ΋͋Γ͑Δࣗ෼ͷνʔϜ ͚ͩͰ͸੍ޚͰ͖ͳ͍৔߹͕͋Δ w "͞Μ͕ߦͬͨมߋ͕#͞ΜʹӨڹ͢ΔՄೳੑ͕͋Δ σʔλͷಠཱੑΛ୲อ͠ʹ͍͘ςετͷฒྻੑ ʹ΋Өڹ͕ग़Δ ղઆ͢Δλʔϯ
  11. w &&ࣗಈςετΛ҆ఆͤ͞Δʹ͸ w εΫϦϓτࣗମͷ҆ఆੑΛߴΊ Δ w αʔϏεࣗମͷ҆ఆੑΛߴΊΔ w σʔλಠཱੑ͕ߴ͍ ςετಉ

    ͕࢜ׯব͠ͳ͍ &&ࣗಈςε τ؀ڥΛ࡞Δʜ࡞ΕΔʁ Α͘Θ͔Βͳ͍ݪҼͰෆ҆ఆʹͳΔ &&ࣗಈςετͷࢁ *NBHFIUUQTXXXJSBTVUPZBDPN
  12. w ৽͍͠ػೳΛ͍͔ͭ͘࡞ͬͯɺ2"؀ڥ΁ϦϦʔεͯ͠ɺ͍͟ 2"ϑΣʔζͰςετͯ͠΋ΒͬͨΒେྔʹόά͕ใࠂ͞Εͨ ͱ͖ w ຊ൪؀ڥ΁ϦϦʔε͢Δલʹ͍ͬͺ͍ݟ͚ͭͯ͘ΕͯϚ δ͋Γ͕͍ͨʜ w ͱɺಉ࣌ʹࢥ͏͜ͱ ΤϯδχΞͷ৺ڥ

     w ෳ਺ͷϓϧϦΫ͕ࠞͬͯ͡Δ͔ΒͲΕ͕ݪҼ͔੾Γ ෼͚Δͷਏ͍ w ਖ਼௚͜ͷػೳ࡞ͬͨͷ΋͏͍ͩͿલͳͷͰ֮͑ͯͳ ͍ɻࡢ೔ͷࣗ෼͑͞ଞਓͩͱࢥ͍ͬͯΔ w 2"ϑΣʔζͰ͍ͬͺ͍໰୊Λݟ͚ͭͯ͘ΕΔͷ͸͋Γ͕ͨ ͍ҰํɺͤΊͯࣗ෼͕΍͍ͬͯΔ&&ࣗಈςετ͚ͩͰ΋΋ ͏ͪΐͬͱૣ͘'FFECBDLͰ͖ͳ͍΋ͷ͔ͱϞϠϞϠ͍ͯ͠ ͨ ஗͗͢Δ%FWFMPQFS΁ͷ'FFECBDL *NBHFIUUQTXXXJSBTVUPZBDPN
  13. w ৽͍͠ػೳΛ͍͔ͭ͘࡞ͬͯɺ2"؀ڥ΁ϦϦʔεͯ͠ɺ͍͟ 2"ϑΣʔζͰςετͯ͠΋ΒͬͨΒେྔʹόά͕ใࠂ͞Εͨ ͱ͖ w ຊ൪؀ڥ΁ϦϦʔε͢Δલʹ͍ͬͺ͍ݟ͚ͭͯ͘ΕͯϚ δ͋Γ͕͍ͨʜ w ͱɺಉ࣌ʹࢥ͏͜ͱ ΤϯδχΞͷ৺ڥ

     w ෳ਺ͷϓϧϦΫ͕ࠞͬͯ͡Δ͔ΒͲΕ͕ݪҼ͔੾Γ ෼͚Δͷਏ͍ w ਖ਼௚͜ͷػೳ࡞ͬͨͷ΋͏͍ͩͿલͳͷͰ֮͑ͯͳ ͍ɻࡢ೔ͷࣗ෼͑͞ଞਓͩͱࢥ͍ͬͯΔ w 2"ϑΣʔζͰ͍ͬͺ͍໰୊Λݟ͚ͭͯ͘ΕΔͷ͸͋Γ͕ͨ ͍ҰํɺͤΊͯࣗ෼͕΍͍ͬͯΔ&&ࣗಈςετ͚ͩͰ΋΋ ͏ͪΐͬͱૣ͘'FFECBDLͰ͖ͳ͍΋ͷ͔ͱϞϠϞϠ͍ͯ͠ ͨ ஗͗͢Δ%FWFMPQFS΁ͷ'FFECBDL *NBHFIUUQTXXXJSBTVUPZBDPN
  14. w ग़དྷ্͕ͬͨ΋ͷΛͲ͏&&Ͱ ςετ͢Δ͔ͱ͍͏ͱ͜Ζʹݻ ͍ࣥͯͨ͠ w &&ࣗಈςετΛ҆ఆతʹӡ༻ ͍ͯ͘͠ʹ͸σʔλಠཱੑ͕ߴ ͍؀ڥΛ࡞Βͳ͍ͱ͍͚ͳ͍ w %FWFMPQFS΁΋ͬͱૣ͘

    'FFECBDLΛ͍ͨ͠ʂʂ ͦͯ͠4&5ʹγϑτ͍ͯ͘͠ w %FWFMPQFSνʔϜͷதʹೖ͍ͬͯ ͬͯɺςετ͠΍͍͢؀ڥΛࣗ෼ Ͱ࡞ͬͪΌ͓͏ w ຖճܾ·ͬͨσʔλͷঢ়ଶͰαʔ ϏεΛ্ཱͪ͛ͯɺςετ͕ऴΘ ͬͨΒࣗಈͰ࡟আ͞ΕΔΑ͏ʹ w ϓϧϦΫ࡞ͬͨΒࣗಈతʹˢͷঢ় ଶʹͳΔΑ͏ͳ$*؀ڥΛ࡞ͬͪΌ ͓͏
  15. $* $POUJOVPVT*OUFHSBUJPO *NBHFIUUQTXXXJSBTVUPZBDPN ղઆ͢Δλʔϯ 'VODUJPO" .BUFS .BJO CSBODI 'VODUJPO# 1VMM3FRVFTU

    .FSHF .FSHF 1VMM3FRVFTU 3FWJFXFS 3FWJFXFS &OHJOFFS &OHJOFFS w ܧଓతʹ $POUJOVPVT ɺ౷߹͢Δ *OUFHSBUJPO ɺϓϩηεͷ͜ͱ w ࡢࠓͷXFCܥ։ൃͰ͸ΈΜͳ౰ͨΓલ ͷΑ͏ʹ΍͍ͬͯΔ
  16. $* $POUJOVPVT*OUFHSBUJPO *NBHFIUUQTXXXJSBTVUPZBDPN ղઆ͢Δλʔϯ 'VODUJPO" .BUFS .BJO CSBODI 'VODUJPO# .FSHF

    .FSHF 3FWJFXFS 3FWJFXFS &OHJOFFS &OHJOFFS w 6OJUUFTU *OUFHSBUJPOUFTU -JOUFS  'PSNBUUFS ίʔυղੳͳͲ w ։ൃऀ͸$*πʔϧ͕ಈ͍͍ͯΔ͜ͱΛҙࣝ͢Δ ඞཁ͸ͳ͍ϓϧϦΫΛ࡞ͬͨΒɺػցత ʹɺࣗಈతʹ࣮ߦ͞ΕΔ w $*ʹ&&ࣗಈςετΛ૊ΈࠐΉྫ͸গͳ͍ $*5PPM $*5PPM 1VMM3FRVFTU 1VMM3FRVFTU
  17. w ͜ͷΑ͏ʹ&&ࣗಈςετΛ %FWFMPQFSͷ$*؀ڥʹͦͷ··ద༻͢ Δͷ͸೉͍͠ w ͔͠͠ w ࢖͍ࣺͯͷ؀ڥΛ༻ҙ͠ɺ w σʔλͷಠཱੑΛ୲อ͠ɺ

    w ϓϧϦΫʹ࿈ಈͯ͠$*πʔϧͱಉظ ͯ͠ಈ͘Α͏ʹ࡞ΕΕ͹ w ͍͚ΔͷͰ͸ͳ͍͔આʂ &&Y$*ʹײ͡ΔՄೳੑ *NBHFIUUQTXXXJSBTVUPZBDPN
  18. 13%SJWFO&&5FTUJOH *NBHFIUUQTXXXJSBTVUPZBDPN 'VODUJPO" .BUFS .BJO CSBODI .FSHF 3FWJFXFS &OHJOFFS $*5PPM

    1VMM3FRVFTU w $*؀ڥͰ&&ࣗಈςετͰ͖ΔΑ͏ʹɺϓϧϦΫ͝ ͱʹ࢖͍ࣺͯͷ؀ڥΛຖճ࡞Δ w ϓϧϦΫ͝ͱʹσʔλϕʔεΛ࡞ΔͷͰɺσʔλͷ ಠཱੑ͸ۃΊͯߴ͍ w &&ࣗಈςετΛϓϧϦΫ୯ҐͰ࣮ߦ͢ΔͷͰɺό άͬͨͱ͖ͷݪҼ௥ٴͱ'FFECBDL͕֨ஈʹૣ͘ͳ ͬͨ
  19. w ࣮ࡍʹૣ͍GFFECBDL͕Ͱ͖ΔΑ͏ʹͳͬͨ w %FWFMPQFSͷ҆৺ײ্͕͕ͬͨ w ίʔυϦϑΝΫλϦϯά͕΍Γ΍͘͢ͳͬ ͨͱ͍͏੠ര૿ w 1SFWJFX͕͍͍ͱ͍͏࿩ w

    ࢖͍ࣺͯͷ؀ڥΛ࡞ΕΔͷͰɺ͜ͷ63-Ͱ ࠶ݱͰ͖·͢ʂΈ͍ͨͳ࢖͍ํ͕Ͱ͖ΔΑ ͏ʹͳͬͨ w ݪҼͱͳͬͨΤϥʔΛ௥ٴ͠΍͘͢ͳͬͨ ͷͰɺ࣮ࡍʹGSPOUFOEͷqBLZ͞Λղফͨ͠ ࣄྫ΋Ͱ͖ͯͨ 13%SJWFO&&5FTUJOHͰͲΜͳ͍ ͍͜ͱ͕͔͋ͬͨ *NBHFIUUQTXXXJSBTVUPZBDPN
  20. w &&ࣗಈςετΛ࡞Ε͹͍͍͚ͩͷ࣌ ୅͸ࣗ෼ͷͳ͔Ͱ͸ऴΘͬͨ w ͍͔ʹ&&ࣗಈςετΛܧଓతʹɺ ޮՌతʹ࢖͍͔͕ͬͯ͘উෛ w ࠓޮՌతʹ࢖͍͑ͯͳ͍ͳΒɺ࢖͑ Δ؀ڥΛࣗ෼Ͱ࡞ͬͪΌ͏ͷ΋͋Γ w

    ࣗ෼Ͱ΍Δͷ͸ϋʔυϧߴ͍ͬͯ ৔߹͸ɺૉఢͳಉ྅ͨͪΛཔΓ ·͠ΐ͏ɻશ෦Λࣗ෼Ͱ΍ΕΔ ඞཁ͸͋Γ·ͤΜ ͜Ε͔Βͷ$*ɺ͜Ε͔Βͷ&&ࣗಈς ετ ·ͱΊͰ͢ *NBHFIUUQTXXXJSBTVUPZBDPN
  21. w ࠓ·ͰҎ্ʹଟ༷ͳ$*πʔϧαʔϏε͕ ࢢ৔ʹᷓΕΔ w छྨ XFCʁNPCJMFʁ ΍؀ڥ Φϯϓ ϨʁΫϥ΢υʁ,Tʁ ͳͲʹಛԽͨ͠

    ΋ͷ͕044΍঎༻໰Θͣଓʑग़͖ͯͯ ͍Δ w Ͳ͏࢖͍͜ͳͤΔ͔Ͱ&&ࣗಈςετ ͷྑ͕͞Կഒ΋ੜ͔ͤΔ w ࠓ೔͸࿩ͤͳ͔͕ͬͨ ผʹ&&ʹͩ͜Θ Δඞཁ͕ͳ͍έʔε΋ͨ͘͞Μ͋Δɻͦ ͏͍ͬͨ࢓෼͚͕Ͱ͖Δ͜ͱ΋ॏཁ ͜Ε͔Βͷ$*ɺ͜Ε͔Βͷ&&ࣗಈς ετ ·ͱΊͰ͢ *NBHFIUUQTXXXJSBTVUPZBDPN
  22. IUUQTGFFECBDLMJOFNFFORVFUFQVCMJD#Y2374[ IUUQTMJOFGVLVPLBDPKQKBDBSFFSMJTUFOHJOFFS ࠷ޙ͸͓ܾ·Γͷએ఻Ͱ͢Αʂ w 4&5େืूͯ͠·͢Αʂ w ౦ژ -*/&גࣜձࣾ ɺ෱Ԭ -*/&

    'VLVPLBגࣜձࣾ ɺϫϯνʔϜͰ ΍ͬͯ·͢Αʂॴଐબ΂·͢Αʂ w ΋ͪΖΜ4&5Ҏ֎ͷΤϯδχΞʹ ڵຯ͕͋Δ৔߹΋େ׻ܴͰ͢Αʂ ͓ܨ͗͠·͢Αʂ w ΧδϡΞϧ໘ஊਵ࣌ืूͯ͠·͢ ΑʂͥͻˣͷϦϯΫ͔Βʂ