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
Understanding Cognitive Biases in Performance Measurement
bluesmoon
28
1.6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
30
1.1k
It's Worth the Effort
3n
184
28k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
21k
Code Review Best Practice
trishagee
67
18k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Why Our Code Smells
bkeepers
PRO
336
57k
GraphQLの誤解/rethinking-graphql
sonatard
70
10k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
320
Faster Mobile Websites
deanohume
306
31k
Designing for humans not robots
tammielis
251
25k
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͓ͪͯ͠·͢ʂ