$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SETを約10年やってみたけど質問ある? / Any Questions about my 1...
Search
O3(ozono)
December 07, 2024
0
1.5k
SETを約10年やってみたけど質問ある? / Any Questions about my 10 years SET career?
ソフトウェアテスト自動化カンファレンス2024発表資料
O3(ozono)
December 07, 2024
Tweet
Share
More Decks by O3(ozono)
See All by O3(ozono)
なぜ人はE2E自動テストの継続に失敗するのか / Why we could not continue the E2E automation testing
o3
4
2.5k
これからのCI、これからのE2E自動テスト / The future of CI, the future of E2E automation testing
o3
2
970
testlab2_introduction.pdf
o3
0
330
[完全版] あなたが自動テストを行う目的は何ですか? / what-is-your-purpose-for-performing-automated-tests
o3
0
770
てすらぼ#1 / Introduction for autotest-lab #1
o3
0
650
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
A Modern Web Designer's Workflow
chriscoyier
697
190k
Writing Fast Ruby
sferik
630
62k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
9
1.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.1k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.5k
RailsConf 2023
tenderlove
30
1.3k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Side Projects
sachag
455
43k
Transcript
SETΛ10ͬͯΈ͚ͨͲ࣭͋Δʁ ιϑτΣΞςετࣗಈԽΧϯϑΝϨϯε2024 O3 / Ozono Hiroaki / େԂ തত
https://x.com/ozonohiroaki O3(ozono) LINEϠϑʔגࣜձࣾ SIάϧʔϓ > Πϯϑϥ౷ׅຊ෦ > DP2 > EI
> SETνʔϜ 2
2015 LINE Fukuoka QAࣨೖࣾ 2016 ςετࣗಈԽνʔϜ্ཱͪ͛ 2017 SETΛ໊Γ࢝ΊΔ 2018 LINE
Fukuoka ։ൃࣨ 2023 LINEͱϠϑʔ͕߹ซ͠ॴଐ͕LINE Ϡϑʔגࣜձࣾʹ ͦͷଞɺ෭ۀͱͯͪ͠ΐͪ͜ΐ͍͜Ζ Μͳձࣾ͞Μʹ͓ੈʹͳͬͯ·͢ 3 ۀքྺ
2018 LINE Developer Meetup Tokyo #39 - Testing & Engineering
E2E UIςετͷ࣮ྫͦΕʹ͏ϥ ΠϒϥϦ։ൃʹؔͯ͠ refs. - https://engineering.linecorp.com/ja/blog/test-automation-techniques-strategies- line-developer-meetup-tokyo-39 - https://line.connpass.com/event/91423/ 4 ΧϯϑΝϨϯεɾϝσΟΞؔ࿈ൈਮ
2019 JaSST Tokyo19 ςετͷະདྷɺ࣭ͷະདྷ ~ࣗಈԽ ςελʔ໓ͷເΛݟΔ͔ʁ~ refs. - https://www.jasst.jp/symposium/jasst19tokyo/details.html#B2 -
https://www.jasst.jp/symposium/jasst19tokyo/pdf/B2.pdf 5 ΧϯϑΝϨϯεɾϝσΟΞؔ࿈ൈਮ
2019 ͋ͳ͕ͨࣗಈςετΛߦ͏తԿ Ͱ͔͢ʁ ࣗΒͷࣦഊܦݧ͔ΒɺతҙࣝΛ ࣋ͬͯਐΊΔ͜ͱͬͯେࣄͰ͢ΑͶ ͱ͍͏هࣄ refs. - https://qiita.com/ozhiro/items/5aa95c6360a8930df325 6
ΧϯϑΝϨϯεɾϝσΟΞؔ࿈ൈਮ
2020~2022 ͯ͢Β΅ SETͱ͍͏ͱͯχονͳϩʔϧʹ ର͢ΔೝΛ͛ͯΓ্͍͛ͨͱ ͍͏తͰ࢝ΊͨऔΓΈ refs. - https://www.youtube.com/channel/UCr-CGgBaebVPleiF5iHrRlw - https://autotest-lab.connpass.com/
7 ΧϯϑΝϨϯεɾϝσΟΞؔ࿈ൈਮ
Q. ͳͥ͜ͷΑ͏ͳൃදΛ͠Α͏ͱࢥͬͨͷʁ ͦΖͦΖۀքྺେͷ10ʹಥೖ͠ (SETྺ8Ͱͨ͢͠Έ·ͤΜ͝ΊΜͳ͍͞Γ·ͨ͠) ຊۀɾ෭ۀΘͣSETप Γͷۀʹؔͯ͠ʮ͋ʔ͜Εલผͷͱ͜ΖͰͨ͠ͳʯͱ͍͏Α͏ͳ͜ͱ͕૿͑ ͖ͯ·ͨ͠ɻ ·ͩ·ͩҰൠղ͕ݟ͔͍ͭͬͯͳ͍ಛघղଟ͍Ͱ͕͢ɺ͘ࢀߟʹͳΔΑ͏ͳ ͋Δͷ͔ͳɺͩͬͨΒͲ͔͜Ͱͯ͠ΈΔͷ͍͍ͳɺͱ͍͏ͷ͕Ϟνϕʔγϣ ϯͰ͢ɻ
A. ࢥ͍͖ͭͰ͢ʂ
ࠓͷλʔήοτ SETͬͯͳΜͳͷ͔Γ͍ͨਓ SETΛࢦ͍ͨ͠ਓ SETΛ࠾༻͍ͨ͠ਓ *ࠓ͓͢Δͷ͋͘·Ͱ n = 1 Ͱ͢
Q. SETͬͯͲ͏ൃԻ͢Δͷ͕ਖ਼͍͠ͷʁ ΤεΠʔςΟʔͱηοτ͕͍·͕͢ɺͳΜͰ͍͍ͱࢥ͍· ͢ɻࣗΤεΠʔςΟʔ ւ֎ͩͱΤεΠʔςΟʔɺຊͩͱηοτ͕ଟ͍ҹͰ͢ɻ ಛʹϙϦγʔͳ͍ͷͰηοτͱݺͿਓʹηοτͱ߹Θͤͯ ͢͜ͱ͕ଟ͍Ͱ͢ A. ͓͖ʹͲ͏ͧʂ
Q. SETͱʁ ಉٛޠͱͯ͠SDET(Software Development Engineer in Test)DeNA͞Μͷ SWET(SoftWare Engineer in
Test)ͳͲ͕͋Γ·͢ɻ ੲGoogleʹSET͔Βੜͯ͠SETI(Software Engineer, Tools & Infrastructure)ͱ͍͏ͷ͋Γ·ͨ͠ refs. https://testing.googleblog.com/2016/03/from-qa-to-engineering-productivity.html A. Software Engineer in TestͷུͰ͢
Q. SETͱࣗಈςετΤϯδχΞͷҧ͍ʁ E2E testʹͷΈϑΥʔΧεΛ͍ͯͯΔύλʔϯ(ͭ·ΓSET=ࣗಈςετΤ ϯδχΞ)͋ΕɺUnit testIntegration testɺPerformance testͳͲ։ൃ ऀςετશൠʹϑΥʔΧε͍ͯ͠Δύλʔϯ͋Δ ࣗͷνʔϜʹ͍ؔͯ͠͏ͱɺ։ൃऀςετશൠ
+ CI/CDͳͲͷDevOpsྖ ҬΠϯϑϥकඋൣғʹͳΔ A. ਓ/νʔϜ/ձࣾʹΑͬͯมΘΔ
Q. ͦͦSETͷఆٛͬͯʁ ࠓҰ൪͍͑ͨ͜ͱSETͱ͍͏ϩʔϧͷఆٛ༳Ε͍͢ͱ͍͏͜ͱͰ͢ɻ͋ͳ͕͍ͨͯ͠ ΔSETͱ૬ख͕͍ͯ͠ΔSETຊʹಉ͡ͷΛݟ͍ͯ·͔͢ʁ ΧδϡΞϧ໘ஊ෭ۀΛߦ͏ࡍɺඞͣ͜͜Λ࠷ॳʹ͖ͬΓͤ͞ΔΑ͏ʹ͍ͯ͠·͢ ͨ·ʹʮSETࣗಈςετΤϯδχΞͱҧ͏ʯͱ͔ʮSET୯ମςετ·ͰݟΕΔ͖ͩʯΈͨ ͍ͳΛฉ͖·͕͢ɺݸਓతʹͲ͏Ͱ͍͍Ͱ͢ɻ͋ͳͨͷձࣾͰSET͜ΕͱܾΊͨͷͰ͋Ε ɺͦΕ͕͋ͳͨͷձࣾʹͱͬͯͷSETͰ͢ A. ਓ/νʔϜ/ձࣾʹΑͬͯมΘΔ
Q. SETͱͯ͠۩ମతʹͲΜͳۀΛ͖ͯͨ͠ʁ • E2E testʹඞཁͳϥΠϒϥϦɾγεςϜͷ։ൃ • Pull Request͝ͱʹαʔϏεΛ্ཱͪ͛ɺE2E test͕ऴΘͬͨΒࣗಈ తʹഁغ͞ΕΔڥͷߏங(͍ΘΏΔγεςϜؙ͝ͱPreviewڥ)
refs. - https://linedevday.linecorp.com/2020/en/sessions/8307/ A. ͖ͬͯͨ͜ͱΛͬ͟ͱհ͠·͢
Q. SETͱͯ͠۩ମతʹͲΜͳۀΛ͖ͯͨ͠ʁ • ։ൃॳظ͔ΒϦϦʔεޙ·ͰͷશͯͷϑΣʔζʹ͓͚Δςετઓུͷࡦఆ • ݱঢ়ͷ։ൃऀςετCI/CDͷঢ়گώΞϦϯά͔Βվળํ๏ͷఏҊ • ։ൃ ↔︎ QAͷڮ͠
• ࣗಈςετ͍ͬͯΔΜ͚ͩͲ্ख͍͔͘ͳ͍…ͱ͍͏ձࣾ͞Μͷίϯαϧ • ٯʹ͍ͬͯͳ͍͜ͱˠςετͷ࣮ΦϯϦʔ A. ͖ͬͯͨ͜ͱΛͬ͟ͱհ͠·͢
Q. ͳͥςετͷ࣮͚ͩͩͱΒͳ͍ͷʁ ͻͱͭɺςετͷΦʔφʔγοϓ։ൃऀશମͰ࣋ͭͷ͕ཧͩͱߟ͍͑ͯΔ͔ Βɻ ͚ࣗͩ(͘͠SETνʔϜ͚ͩ)Ͱߏஙͨ͠߹ɺಛʹE2Eςετͷ߹υϝΠϯ ؚࣝΊݶΒΕͨਓ͔͠৮Εͳ͘ͳΓɺ݁Ռͱ͕ͯࣗ͠खΛҾ͍ͨޙ͔Βঃʑʹ ͍ͬͯ͘ͱ͍͏ύλʔϯʹଟ͘ૺ۰͖ͯ͠·ͨ͠ɻ࠷ॳ͔ΒHand-over͢Δ͜ͱΛ લఏʹ͍ͯͯ͠ΠϚΠν͏·ͤ͘ͳ͍ͱ͍͏ͷΛԿܦݧ͠·ͨ͠ A. ཧ༝େ͖͘2ͭ͋Γ·͢
Q. ͳͥςετͷ࣮͚ͩͩͱΒͳ͍ͷʁ ͏ͻͱͭɺΛฉ͍ͯΈͨΒͦͦE2Eςετඞཁͳ͍ͷͰʁͱͳΔύλʔϯ͕ଟ͔͔ͬͨΒ ݴΘΕͨͱ͓ΓE2EςετΛ࣮͑͢͞Ε͓ۚΒ͑ΔͷͰɺͦ͏͍͏ҙຯͰࢲଛ͍ͯ͠ͳ͍ͷ͔͠ Εͳ͍͕ɺϓϩμΫτͷՁʹܨ͕Βͳ͍͜ͱͨ͘͠ͳ͍Ͱ͢ɻͳͷͰ͜ͷΑ͏ͳ͕དྷͨΒඞͣظ ௐͨ͠͏͑Ͱ͓ड͚͢Δ͔Λஅ͍ͯ͠·͢ ࣮ࡍʹ͋ͬͨྫͰݴ͏ͱ • ͦΖͦΖϢʔβʔ૿͖͑ͯͨͷͰࣗಈςετಋೖ͍ͨ͠ˠୡ͍ͨ͜͠ͱͳΜͰ͔͢…ʁ •
ʓʓͱ͍͏E2EςετΛ࣮ͯ͠΄͍͠ˠͦΕͬͯUnit testͱͯ͠˚˚Ͱ࣮͢Δͷ͡ΌμϝͰ͢…ʁ A. ཧ༝େ͖͘2ͭ͋Γ·͢
Q. SETͷΩϟϦΞύεͬͯͲΜͳײ͡ʁ ։ൃऀςετશൠΛλʔήοτʹ͢ΔSETͷ߹ɺ։ൃऀ͕ԿΛ͍ͯ͠Δͷ͔ɺԿ͕ϖΠϯϙΠϯτʹͳΔͷ͔ Λཧղ͢ΔͨΊʹɺͳʹ͔͠ΒͷΤϯδχΞˠSETͱ͍͏ͷ͕ࣗવͳϧʔτ͔ͳͱݸਓతʹࢥ͍ͬͯ·͢ɻ كʹ৽ଔˠSETɺΤϯδχΞະܦݧ͔ΒSETʹͳΔํͨ·ʹ͍·͕͢ɺͨͩͷఱ࠽ͩͱࢥ͍·͢(ͪΖΜड ͚ೖΕΒΕΔڥ͕͋ͬͯͦ͜Ͱ͢) SETͷ࣍ͷΩϟϦΞଞͷΤϯδχΞͱҰॹͰ͢ɻϑϩϯτΤϯυΔਓ͍ΕαʔόʔαΠυΔਓ͍Δ ͠ɻݸਓతʹ͜ͷ͋ͨΓͷྲྀಈੑΛͬͱڧ͍ͨ͘͠ͳͱࢥͬͯ·͢ A. ͏ͪͷνʔϜΤϯδχΞϩʔϧ͔ΒͷδϣϒνΣϯδ͕΄ͱΜͲͰ͢
Q. QA͔ΒSETͷΩϟϦΞύε(ϩʔϧνΣϯδ) ՄೳͰ͔͢ʁ ಄Ͱ͓ͨ͠͠ͱ͓ΓɺձࣾʹΑͬͯඞཁͳSETͱ͍͏ͷมΘΓ·͢ɻ Frontend engineerͱͯ͠ͷೳྗ͕ඞཁͳSET͕͋ΕɺQA engineerͱͯ͠ͷ ͕ࣝඞཁʹͳΔSET͋Γ·͢ େࣄͳͷࣗͷࣝɺೳྗɺΩϟϦΞύεࢤʹ͋ͬͨϙδγϣϯΛݟ͚ͭΔ (ࣗͰ࡞Δ)͜ͱ͔ͳ͊ͱࢥ͍·͢
A. Մೳ͔ෆՄೳ͔Ͱݴ͑ͪΖΜՄೳͰ͢
Q. ෭ۀͰͲ͏͍͏͜ͱͬͯΔͷʁ ࣮ࡍʹखΛಈ͔࣮ͯ͢͠Δͱ͍͏ͷ͋Γ·͕͢ɺՔಇ࣌ؒͷ߹ ͳͲͰ͋·Γ͓ड͚͠·ͤΜɻ Ͳ͏վળͨ͠ͷ͔໎ͬͯͯͱ͔ɺ࠾༻ํ͕ܾ·Βͳͯ͘ͱ͔ɺҰ ਓSETΛͲ͏ͬͯݟ͚ͭΔ͔ɺͳͲͷʹରͯ͜͠͏͢ΔͷͲ͏ Ͱ͢ʁΈ͍ͨͳΞυόΠεΛҒͦ͏ʹ͍ͤͯͨͩ͘͜͞ͱ͕ଟ͍Ͱ͢ A. ։ൃऀςετ৫ʹؔ͢Δ͓Έ૬ஊΛड͚Δ͜ͱ͕ଟ͍Ͱ͢
Q. ͜Ε·ͰʹҰ൪ࣦഊͨ͜͠ͱͬͯͳʹʁ ಄ʹհͨ͠ͱ͓ΓɺϓϩδΣΫτ/ϓϩμΫτΛͲ͏ྑ͍ͨ͘͠ͷ͔ͱ͍ ͏త͕ᐆດͳ··E2E testΛ࡞Γଓ͚ͨ݁ՌɺͳΜͷՌग़ͤͣɺେྔͷς ετ݁Ռ୭ʹ׆༻͞Εͣɺෆ҆ఆͳςετࣦഊ௨ϛϡʔτ͞Εɺࢲͷ νʔϜͷਓ݅අ͚ͩίετ͕૿͑ɺͰͦΕͬΆ͍ࣈΛͬͯՌϨϙʔ τΛग़͢ͷͰͦΕͳΓʹධՁ͞Εͯ͠·͏ͱ͍͏ঢ়گΛ࡞ͬͯ͠·͍·ͨ͠ A. తΛఆΊͣʹE2E
testΛ࣮͠·ͬͨ͘͜ͱ
Q. SET͕࠾༻Ͱ͖·ͤΜʂͲ͏ͨ͠Β͍͍Ͱ͔͢ ͱݴͬͯ͠·͏ͱ͕ऴΘͬͯ͠·͏ͷͰɺࢲͷνʔϜϝϯόʔ͕ೖࣾͯ͠ ͘Ε͖͔͚ͨͬΛॻ͘ͱɺࢲ͕ॻ͍ͨهࣄొஃΛ͖͔͚ͬʹLINEͷSETͱ ͍͏ͷʹڵຯΛ࣋ͪɺ͔ͦ͜ΒΛୟ͍ͯ͘Εͨͱ͍͏ͷ͕ଟ͍Ͱ͢ɻ ఆ͕ٛ༳Ε͍͢SETͱ͍͏ϩʔϧ͔ͩΒͦ͜ɺʮ͏ͪͷSETʯͱ͍͏ͷ ʹڞײΛͯ͠Β͏ͱ͍͏ͷ͘͢͝େࣄͩͱࢥ͍·͢ɻ A. ࢲΓ͍ͨͰ͢…
Q. SETͷϩʔϧ(৫)ͬͯͲͷλΠϛϯάͰ࡞ͬ ͨΒ͍͍Ͱ͔͢ʁ ٯʹݴ͏ͱɺඞཁੑ͕໌֬Ͱͳ͍΄ͱΜͲͷ߹ͰSETͷJD;Θͬͱͨ͠ ͷʹͳΓ͕ͪͳ͕͋Δͱࢥ͍·͢ɻͳʹΛࢦ͢৫ͳͷ͔୭Θ ͔ͬͯ·ͤΜ͔ΒͶ QAɺSREɺSecurity EngineerͳͲɺΈͳ͞Μͷ৫ͷಛघͳΤϯδχΞϩʔ ϧͲ͏͍͏λΠϛϯάͰੜ·Ε·͔ͨ͠ʁಉ͡Α͏ͳͩͱࢥ͍·͢ A.
ඞཁͩͱࢥͬͨλΠϛϯάͰ࡞͍ͬͯͩ͘͞
·ͱΊ
SETͬͯͳΜͯಡΉͷʁˠਓʹΑΓ·͢ SETͷఆٛͬͯʁˠਓʹΑΓ·͢ ࣗಈςετΤϯδχΞͱͳʹ͕ҧ͏ͷʁˠਓʹΑΓ·͢ SETͷΩϟϦΞύεʁˠਓʹΑΓ·͢ SETͷ৫͍ͬͯͭ࡞Ε͍͍ͷˠਓʹΑΓ·͢
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ʂ ͓Έ૬ஊ෭ۀͷ͝ґཔͳͲ͋Ε͍ͭͰDM͓ͪͯ͠·͢ʂ