Slide 1

Slide 1 text

։ൃͷͨΊͷ։ൃ ~εϚϗΞϓϦ޲͚e2eςετͷಋೖΛ௨ͯ͠~

Slide 2

Slide 2 text

ࣗݾ঺հ • @ainoya • ૬໺୩ ௚थʢ͍͋ͷ΍ ͳ͓͖ʣ • ~2013/8 mixi: Chef,ϓϥΠϕʔυΫϥ΢υͷߏங౳ • ~2015 RTC: ϓογϡ௨஌ج൫,ࣾ಺FWͷอक • ~2016/3 RMP: ελσΟαϓϦӳ୯ޠɾENGLISHΤϯδχΞ • ~ࠓ RMP: ։ൃࢧԉάϧʔϓ

Slide 3

Slide 3 text

ٕज़ྖҬ • AWS/docker • Perl/Ruby/Java/Go/Scala/Swift • ΞϓϦ͔ΒΠϯϑϥ·Ͱઙ͘޿͘…

Slide 4

Slide 4 text

։ൃࢧԉνʔϜʹ͍ͭͯ • ϓϩμΫτ։ൃ෦ͷԣஅ૊৫

Slide 5

Slide 5 text

ϓϩμΫτ։ൃΛՃ଎ͤ͞Δͨ Ίͷ։ൃ • ࣾ಺herokuͷߏங(deis on GCP) • σʔλղੳج൫ߏஙࢧԉ • e2eςετͷݕূ(Appium/Selenium) • ݕূ୺຤؅ཧͷվળ(OpenSTFͷಋೖ)

Slide 6

Slide 6 text

e2eςετͷݕূɾಋೖ

Slide 7

Slide 7 text

ͳͥεϚϗΞϓϦͷe2eςε τΛ΍Δͷ͔

Slide 8

Slide 8 text

ϦϦʔεલͷQA • εϓϨουγʔτͷखॱॻΛ΋ͱʹςελʔ ͕࿑ಇू໿తʹ࣮ࢪ

Slide 9

Slide 9 text

ςετέʔε͕๲ΒΉͱɺखಈςετʹ͔ ͔Δίετɾ͕࣌ؒ͹͔ʹͳΒͳ͘ͳΔ • ͕͔͔࣌ؒΔͱ͸͍͑ɺεϚϗΞϓϦ͸ɺ Ϣʔβʹόάमਖ਼Λಧ͚Δ·Ͱ͕͔͔࣌ؒΔ • Ώ͑ʹWebΞϓϦΑΓ΋QA͸͔ͬ͠ΓΊʹ͠ ͍ͨ

Slide 10

Slide 10 text

ࣗಈԽ͍ͨ͠ • εϓϨουγʔτʹखॱॻͱ֬ೝ߲໨͕໌هͰ͖ ΔͳΒɺਓखͰ΍Δඞཁ͸ͳ͍ɻࣗಈԽ͢Δ΂͖ • QAͰςελʔʹ͓ئ͍͢Δ͜ͱ͸ɺਓͰͳ͍ͱ Ͱ͖ͳ͍ςετʢ୳ࡧతςετʣ͚ͩʹ͍ͨ͠ • ࣗಈԽͰ͖ΔͳΒɺCIʹ૊ΈࠐΊ͹QAஈ֊Ͱؾ ͮ͘σάϨΛૣظൃݟͰ͖ΔϝϦοτ΋͋Δ

Slide 11

Slide 11 text

ͳͥͰ͖͍ͯͳ͍ͷ͔ • εϚϗΞϓϦ޲͚e2eςετͷٕज़͸ൃల్্ • ֶशίετ͕ͱΜͰ΋ͳ͘ߴ͍ʢςετϑϨʔϜ ϫʔΫͷཧղɾ࣮ߦ؀ڥͷཧղɾςετͷॻ͖ํʣ • ϓϩμΫτ։ൃΛ͍ͯ͠ΔΤϯδχΞ͕ยखؒͰಋ ೖɾӡ༻͢Δͷ͸ݫ͍͠ • ݁ՌɺʮΈΜͳ΍Γ͍ͨͱࢥͬͯΔ͚Ͳ·ͩͰ͖ͳ ͍ʯঢ়ଶ͕ͣͬͱଓ͍͍ͯΔ

Slide 12

Slide 12 text

ಋೖʹ͸ɺͬ͘͡ΓࠊΛਾ͑ ͯۛຯΛ͢ΔϦιʔε͕ඞཁ ։ൃج൫ۀ຿ͱͯ͠ઐ೚ͰऔΓ૊Ή΂͖՝୊

Slide 13

Slide 13 text

ͱ͍͏Θ͚Ͱ͜͜਺ϲ݄e2eς ετͷಋೖݕূʹऔΓ૊ΜͰ͖ ͨ

Slide 14

Slide 14 text

Φʔτϝʔγϣϯ
 ϑϨʔϜϫʔΫ ςετ ϑϨʔϜϫʔΫ e2eςετ؀ڥͷ֓؍(ਤʣ 34QFD BQQJVN@MJC BQQJVN TFSWFS 0QFO45' 4BVDFMBCT "OESPJE࣮ػ "OESPJE࣮ػ "OESPJE࣮ػ J04γϛϡϨʔλ J04γϛϡϨʔλ J04γϛϡϨʔλ ςετϑΝʔϜ

Slide 15

Slide 15 text

ΦʔτϝʔγϣϯϑϨʔϜϫʔ Ϋ • appiumΛར༻ • seleniumͱಉ͡ΠϯλϑΣʔεͰios/android ΞϓϦͷૢ࡞͕Մೳ IUUQXXXQJMMBSHMPCBMDPNTJUFTEFGBVMUpMFTBQQJVNQOH

Slide 16

Slide 16 text

ςετϑϨʔϜϫʔΫʢςετ ίʔυ෦෼ʣ • rspecΛ࠾༻ • rubyεΫϦϓτͰ୭Ͱ΋ؾܰʹॻ͚Δͱ͍͏఺Λॏࢹ • ΞϓϦͱಉ͡ίʔυ(Java΍Swift)Ͱॻ͔ͳ͍ͷͰɺ͏·͍͚͘͹ಉ ҰΞϓϦͷҟछϓϥοτϑΥʔϜؒͰςετίʔυΛڞ༗Ͱ͖Δ IUUQCQCMPHTQPUDPN*)9V1IZ$XJ5XL%U#4P*""""""""-")9Z4ISWM'TT$MBTT %JBHSBNQOH

Slide 17

Slide 17 text

ςετέʔεྫ • UIཁૉͷબ୒΍۩ମతͳૢ࡞ΛPageObjectʹدͤΔ • RSpecͷςετέʔε͕ςετγφϦΦͱͯͦ͠ͷ··ಡΊΔΑ͏ʹͳΓɺ෼͔Γ΍͍͢

Slide 18

Slide 18 text

androidςετϑΝʔϜ • openstfΛར༻ɻࣾ಺ͷ࣮ػݕূ୺຤্Ͱςε τ࣮ߦՄೳ

Slide 19

Slide 19 text

iosςετϑΝʔϜ • saucelabsΛར༻ɻiosγϛϡϨʔλΛฒྻىಈͯ͠ςετߴ ଎Խ͕Ͱ͖Δ

Slide 20

Slide 20 text

۩ମతͳςετͷྲྀΕ • ςετγφϦΦͷ࡞੒ • ΞϓϦૢ࡞ͷΩʔʹͳΔUIཁૉ໊ͷநग़ • arc(appium ruby console)Λ࢖༻ • ςετίʔυ࡞੒ • page objectύλʔϯΛϕʔεʹrspecͰ • ςετ࣮ߦ • openstf/saucelabs্Ͱ࣮ߦ • ςετ݁Ռͷू໿ • εΫϦʔϯγϣοτΛػछʹ·ͱΊͯ

Slide 21

Slide 21 text

ը૾ࠩ෼ൺֱ(ݕূத) • Perceptual diffsʹΑΔσάϨͷݕग़཰ڧԽ
 https://github.com/uber/image-diff

Slide 22

Slide 22 text

΍ͬͯΈͯͷײ૝ • ͖ͪΜͱӡ༻ΛճͤΕ͹ɺσάϨͷૣظൃݟʹ໾ཱͭιϦϡʔγϣϯ ʹͳΔ • ͔͠͠ͳ͕ΒɺεϚϗΞϓϦͷe2eςετ͸௥Ճͱϝϯςʹ͔ͳΓͷ ίετ͕͔͔Δ (Web/Seleniumͱൺ΂͍ͯΖ͍Ζൃల్্ʣ • ϢχοτςετͷΑ͏ʹ։ൃऀ͕ؾܰʹॻ͘ͷ͸·ͩ೉͍͠ • ·ͱΊͯ࣌ؒΛऔͬͯςετॻ͘ͷΛ͕Μ͹Δ͔ɺઐଐςετΤϯδ χΞ͕·ͱΊͯॻ͘ͷ͕ݱ࣮తͱײͨ͡ • ςετέʔε͸૿΍͗ͣ͢͠࠷௿ݶʹͱͲΊΔͷ͕๬·͍͠ʢϝϯς ίετͷ؍఺Ͱʣ

Slide 23

Slide 23 text

͓ΘΓʹɿ։ൃͷͨΊͷ։ൃ • ֤ϓϩμΫτͷٕज़తෛ࠴͸ɺجຊతʹ֤νʔϜͷΤϯδχΞ͕ͨͪ౰ࣄऀ ͱͯ͠ฦࡁ͢Δ • ͕ɺͲ͏ͯ͠΋͜΅Εٿ͸ൃੜͯ͠͠·͏ • νʔϜ಺ʹ͍Δͱݟ͍͑ͯͳ͍ࢹ఺΋͋Δ • ։ൃج൫άϧʔϓʢ෦ԣஅ૊৫ʣ͕͜΅ΕٿΛर͍ʹߦ͘ • ϓϩμΫτ։ൃͷڞ௨՝୊Λநग़ͯ͠ղܾʹऔΓ૊Ή • ʮΈΜͳ΍Γ͍ͨͱࢥͬͯΔ͚Ͳ·ͩղܾͰ͖͍ͯͳ͍՝୊ʯ͕࢒Γଓ͚Δ ঢ়ଶΛແ͘͢ • e2eςετͷಋೖݕূ͸ͦͷҰ؀

Slide 24

Slide 24 text

We are Hiringʂ • ΍Γ͍ͨ͜ͱ͸ଞʹ΋ͨ͘͞Μ͋Δɺๅͷࢁ • ϚʔέςΟϯάΦʔτϝʔγϣϯج൫ • σʔλղੳج൫ • ηΩϡϦςΟϚωδϝϯτ • ಈը࠶ੜج൫ • R&Dʢػցֶशɾਂ૚ֶशetc..) • ্هͷΩʔϫʔυʹͽΜͱདྷͨํɺҰॹʹ՝୊ղܾʹऔΓ૊ΜͰ͘ΕΔ ํΛืूத

Slide 25

Slide 25 text

e2eςετ͸͡ΊΔͳΒandroid ͔Β͕͓͢͢Ί • iOSͷॾʑͷڍಈ͕஗͘ɺςετέʔεΛॻ͘ͷʹ͕͔͔࣌ؒΔ • appium͔Βͷૢ࡞͕஗͍ɺpageΦϒδΣΫτ͕औΓͮΒ͍ɺ accessiblity identifierΛઃఆͯ͠΋͏·͘ཁૉ͕ͱΕͳ͍ɺetc… • Androidͷ΄͏͕ॾʑૢ࡞͠΍͘͢ɺ͘͘͞͞ςετέʔεॻ͚Δ • appiumͷ൓Ԡ΋ૣ͍ɻମײͰiOSͷഒҎ্ͷ଎͞Ͱॻ͚Δ • ͱ͘ʹAndroid/iOS྆ํల։͍ͯ͠ΔΞϓϦͷ৔߹͸ɺ·ͣAndroid൛ ͰςετέʔεΛ׬੒ͤ͞ΔˠiOSʹςετέʔεҠ২͕ޮ཰͕ྑ͍ͱ ײͨ͡