Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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.2k
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
1.1k
これからのCI、これからのE2E自動テスト / The future of CI, the future of E2E automation testing
o3
2
910
testlab2_introduction.pdf
o3
0
310
[完全版] あなたが自動テストを行う目的は何ですか? / what-is-your-purpose-for-performing-automated-tests
o3
0
730
てすらぼ#1 / Introduction for autotest-lab #1
o3
0
620
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
51
2.4k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Building Applications with DynamoDB
mza
94
6.3k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
12
1.4k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
Code Reviewing Like a Champion
maltzj
522
39k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
45
9.5k
Optimizing for Happiness
mojombo
377
70k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
28
1.6k
Java REST API Framework Comparison - PWX 2021
mraible
29
8.5k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
RailsConf 2023
tenderlove
29
1k
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͓ͪͯ͠·͢ʂ