Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
受託開発会社でテスト自動化をやってミタ
Search
こだ
March 03, 2021
Programming
0
510
受託開発会社でテスト自動化をやってミタ
Autify Meetup ~Autify導入・運用実践者にそのノウハウを聞いてみる編~
開催日時 : 2021年1月28日 (木) 16:30 - 18:00
の登壇にて使用した資料になります
こだ
March 03, 2021
Tweet
Share
Other Decks in Programming
See All in Programming
NUMA環境とコンテナランタイム ― youki における Linux Memory Policy 実装
n4mlz
1
160
なあ兄弟、 余白の意味を考えてから UI実装してくれ!
ktcryomm
10
11k
分散DBって何者なんだ... Spannerから学ぶRDBとの違い
iwashi623
0
180
Microservices Platforms: When Team Topologies Meets Microservices Patterns
cer
PRO
1
930
モダンJSフレームワークのビルドプロセス 〜なぜReactは503行、Svelteは12行なのか〜
fuuki12
0
200
関数の挙動書き換える
takatofukui
4
770
エディターってAIで操作できるんだぜ
kis9a
0
660
ソフトウェア設計の課題・原則・実践技法
masuda220
PRO
26
21k
関数実行の裏側では何が起きているのか?
minop1205
1
630
Full-Cycle Reactivity in Angular: SignalStore mit Signal Forms und Resources
manfredsteyer
PRO
0
180
ハイパーメディア駆動アプリケーションとIslandアーキテクチャ: htmxによるWebアプリケーション開発と動的UIの局所的適用
nowaki28
0
360
Google Antigravity and Vibe Coding: Agentic Development Guide
mickey_kubo
2
140
Featured
See All Featured
The Cost Of JavaScript in 2023
addyosmani
55
9.3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Bash Introduction
62gerente
615
210k
GitHub's CSS Performance
jonrohan
1032
470k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
700
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
The Pragmatic Product Professional
lauravandoore
37
7.1k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
231
22k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
Transcript
受託開発会社で テスト自動化をやってミタ 〜 ⼀⼈ 始 QA体制構築 ⾃動化編〜 株式会社タンバリン クラウドインテグレーション部 QAエンジニア
早川 侑⾥
:VSJ)BZBLBXB ,PEB גࣜձࣾλϯόϦϯ ΫϥυΠϯςάϨʔγϣϯ෦ 2"ΤϯδχΞ നඦ߹ঁࢠେֶଔۀޙɺҿ৯ɾӦۀ৬Λܦͯɺגࣜձࣾ4)*'5ʹͯ ςετΤϯδχΞͱͳΔɻ ୈࡾऀݕূΛ̎ࣾܦݧ͠ɺ&$αΠτɾ"QQͷςετΛத৺ʹɺ ෯͍αʔϏεʹܞΘΓɺݱͷΞΧϯτϚωʔδϟͱͯ͠ ۀʹैࣄɻ
ݱࡏɺגࣜձࣾλϯόϦϯͷਓͷ2"ΤϯδχΞͱͯ͠ डҊ݅ͷ2"ۀɾձࣾͷ2"ମ੍ͷߏஙɾςετνʔϜͷνʔϜ ϏϧσΟϯάΛ୲ɻ झຯήʔϜͱಈըฤूɻ໊͋ͩͷ༝དྷϙέϞϯͷίμοΫʹࣅ ͍ͯΔ͜ͱ͔Β͖ͭ·ͨ͠ɻ
ձࣾ֓ཁ あたらしいこと、カタチにしていく ΫϥυΛ׆༻ͨ͠ϞόΠϧΞϓϦ&ίϚʔε 8FCαʔϏεͷ։ൃΛத৺ʹΫϥΠΞϯτͷ ʮσδλϧγϑτʯΛαϙʔτɻ ࢲୡح৺Λثʹɺ͋ͨΒ͍͜͠ͱ͕େ͖ͳؒͱ ʮੈքΛม͑ΔΞΠσΞʯΛܗʹ͢Δ ςΫϊϩδετूஂͰ͢ɻ νʔϜ։ൃΛओྲྀʹ͠ɺ 4BMFTGPSDFΛͬͨ&$αΠτͷߏஙΛडୗ։ൃͱͯ͠ߦͳͬ
͍ͯ·͢ɻ 4BMFTGPSDFೝఆίϯαϧςΟϯάύʔτφʔ 4JMWFS1BSUOFS
ࠓճͷ͓ ͜Εɾɾɾ ݄ डୗ։ൃͷ2"ͱͯ͠ ೖࣾͨࣗ͠ಈςετॳ৺ऀͷૣ͕ ձࣾʹࣗಈςετΛಋೖ͢Δ·Ͱͷ͓ ͱ࣮ࡍʹӡ༻ͯ͠ΈͯͲ͏͔ͩͬͨͷ͓Ͱ͋Δ
"VUJGZಋೖഎܠ ೖࣾͯؒ͠ͳࣾ͘ʹݺΕΔૣ &$αΠτͷ৽ن։ൃͷ ςετΛࣗಈԽͤͯ͞ खಈςετʹ͔͔ΔΛ ݮ͍ͨ͠ ʢ༁ɿ&&ςετΛࣗಈԽ͠ ͍ͨʣ
"VUJGZಋೖഎܠ ૣͷεϖοΫ • 2"ΤϯδχΞྺ • ࣗಈԽܦݧ΄΅ͳ͠ • ίʔυॻ͚ͳ͍ コードが書けない⾃分に⾃動化は無理だ・・・ と諦めていたテストエンジニア⼈⽣
डୗ։ൃձࣾͰςετࣗಈԽ ͬͯͰ͖Δͷʁ
डୗ։ൃձࣾͰςετࣗಈԽͰ͖Δͷʁ • ࣗಈԽͬͯظతʹΈͯԿӡ༻͢Δ͔Βίετݮʹ ͭͳ͕Δͷͱ͍͏ೝ͕ࣝ͋ͬͨ • ಋೖ·Ͱͷڥߏங४උʹίετ͕͔͔ΔΠϝʔδ ৽نҊ݅ೖΕସΘΓ͕ଟ͍डୗ։ൃͰͷ ࣗಈԽίετύϑΥʔϚϯε͕ѱ͍ͷͰʁʁʁ
ࣗಈԽʹ͍͍ͯΔςετΛߟ͑ͯΈͨ ࣗಈςετͷछྨ̏छྨ •୯ମςετ ˠϓϩάϥϚʔͷσόοά͚ςετ •౷߹ςετ ˠ୯ମςετͰ௨ͬͨϞδϡʔϧΛΈ߹ΘͤΔςετ •6*ςετ ˠ࣮ࡍʹར༻͢ΔγεςϜͷϢʔβʔϑϩʔʹԊͬͨςετ
ࣗಈԽʹ͍͍ͯΔςετΛߟ͑ͯΈͨ ࠓճͷࣗಈԽ ཁ6*ςετ •ػೳςετ • ίϯϙʔωϯτγεςϜͷػೳ༷ʹج͍࣮ͮͯࢪ͢Δςετ •ʢमਖ਼ʣ֬ೝςετ • मਖ਼֬ೝ͕͍ྃͯ͠Δͷ͔֬ೝ͢Δςετ •ճؼςετ
• ͕ܽؕ৽ͨʹೖΓࠐΜͩΓɺൃݴͨ͠Γ͠ͳ͍͜ͱΛ֬ೝ͢ΔͨΊ͢Ͱ ʹςετࡁΈͷϓϩάϥϜʹର࣮ͯ͠ࢪ͢Δςετ తʹର͢Δߦಈ͕࣮ࡍʹཁٻΛຬ͍ͨͯ͠Δ͔Λ֬ೝ͢Δʢը໘ϕʔεʣ
ࣗಈԽʹ͍͍ͯΔςετΛߟ͑ͯΈͨ • ࣗಈςετͰ༷มߋͳͲ͕͋ΔͱγφϦΦΛݟ ͢ඞཁ͕͋Δ • όάΛݕग़͢Δͷखಈςετͷํ͕ૣ͍ • ࣗಈςετ͕ࣦഊͨ࣌͠ʹݪҼڀ໌ʹ͕͔͔࣌ؒΔ ͭ·ΓόάΛݟ͚ͭΔతͷςετΑΓ όά͕ͳ͍͜ͱ֬ೝ͢ΔΛతʹ͍ͯ͠Δςε
τͷํ͕͍͍ͯΔ
·ͣϊʔίʔυͰ ճؼςετ͔Β ࣗಈςετΛಋೖͯ͠ΈΑ͏ʂ ͱ͍͏͜ͱͰ"VUJGZʹ͍ΔΓ߹͍ʹ ಋೖΛ૬ஊ͍͍ͤͯͨͩͨ͞
ͬͯΈͨ͜ͱ • ӡ༻อकϑΣʔζʹೖͬͨҊ݅Ͱ ϦϦʔεલͱϦϦʔεޙʹճؼςετΛ࣮ࢪ ˠ̎िؒʹ̍ճϦϦʔε͕ൃੜ͢ΔͷͰલͱޙʹ֬ೝςετΛ࣮ࢪ • ৽نߏஙҊ݅ͷ࠷ऴஈ֊Ͱͷ ϦϦʔεఆςετͰࣗಈԽΛಋೖ • $ISPNFͰಈ࡞୲อͨ͠ͷΛଟͰ֬ೝ
ˠಛʹ*&Ͱͷಈ࡞֬ೝ͕ґཔͰདྷΔ͜ͱ͕ଟ͍
࣮ࡍʹӡ༻ͯ͠ϛλ ̎िؒʹ̍ ϦϦʔεલޙʹςετΛ࣮ࢪ͢Δ͜ͱͰ ϦϦʔεఆࡐྉʹͳΔ ΫϦςΟΧϧύεΛ௨͍ͬͯΔͨΊॏେͳ ͕ى͖ͳ͘ͳͬͨ
࣮ࡍʹӡ༻ͯ͠ϛλ ࣮ࢪͨ͠ڥ͝ͱʹ݁Ռ͕ग़ΔͷͰ ௨ৗͷࣗಈςετΑΓ Λݕग़͍͢͠
࣮ࡍʹӡ༻ͯ͠ϛλ ςετڥͱͯ͠ *&&EHFඋ͞Ε͍ͯΔͷͰ ձࣾࢧڅͷ1$͕.BDͰ 8JOEPXTڥͰςετՄೳʂ ϦϞʔτϫʔΫͰςετՄೳʂ
"VUJGZʢςετࣗಈԽʣಋೖͯ͠ Α͔ͬͨ͜ͱ • ϦϦʔεલޙʹ࣮ࢪ͢Δ͜ͱͰ1+ͱͯ͠ͷ࣭ͷ҆৺ײ্͕͕ͬͨ • ςετॳ৺ऀඇΤϯδχΞͰѻ͍͘͢ಋೖ͘͢͠આ໌ ४උ͕ఆΑΓ͔ͬͨ • ̍ڥݟΔ͚ͩͰਫ਼Ұഋͩͬͨ͜ͱ͕ଟͰݟΕΔΑ͏ʹͳͬͨ •
ϦϞʔτͰग़͕ࣾݫ͍͠ͱ͖ʹଟΛ"VUJGZͰΔͱҠಈ࣌ؒݮʂ • ΞαʔγϣϯػೳΛ͏ͱදࣔ֬ೝΓ͍͢ʂ • ςετνʔϜ͕खಈͰΔ͕ݮͬͨ • ʙ͔͔ͬͯͨ࡞ۀ͕ʙͰऴΘΔΑ͏ʹͳͬͨ
"VUJGZʢςετࣗಈԽʣಋೖͯ͠ େมͩͬͨ͜ͱ • ςετ͕શͯύε͞ΕΔΑ͏ʹͳΔͨΊʹԿ͔τϥΠΞϯυ ΤϥʔΛ܁Γฦͨ͠ • SF$"15$)"ΛڬΜͩ߹ͳͲࣗಈԽͰ͖ͳ͍߹͋Δ • ଞͷࣗಈԽπʔϧΛಋೖׂ͠୲ΛͰ͖ΔΑ͏ʹͨ͠ •
Ҋ͕݅ऴྃ͢Δͱߏஙͨ͠ςετΛճ͢͜ͱ͕ͳ͘ͳΔ • ͜͜डୗ։ൃͰͷࣗಈԽͷ՝ • όά͕͋ͬͨͱ͖ʹݪҼੳखॱ֬ೝʹ࣌ؒΛཁ͢Δ • खಈςετͷ߹खॱόάΛϦΞϧλΠϜͰ֬ೝͰ͖Δ
ݕূ݁Ռ डୗձࣾͰςετࣗಈԽͰ खಈςετͷίετݮ͕Ͱ͖Δ
ࠓޙऔΓΈ͍ͨ͜ͱ • ސ٬ଆͱ݁ՌΛ࿈ܞͰ͖ΔΈͮ͘Γ • ݁Ռͷ࿈ܞೲͱͯ͠Ͳ͏"VUJGZΛར༻͍͔ͯ͘͠ • ฐࣾͰಋೖ࣮Λ૿ͯࣗ͠ಈԽͷྠΛ͛Δ • ճؼςετҎ֎Ͱͷࣗಈςετʢ"VUJGZʣͱͷ͖߹͍ ํΛݕ౼
• গਓͰΫΦϦςΟ͕ߴ͍ͷΛੜΈग़ͤΔΈ
࠷ޙʹ ίʔυ͕ॻ͚ͳ͍डୗ։ൃͰͦͦࣗಈԽʹ͍ͯͳ͍ڥͰ "VUJGZͱ͍͏πʔϧʹग़ձ͍ɺ ͣͭ͢͜͠Ͱ͋Γ·͕͢ςετͷࣗಈԽΛ͡Ί खಈςετͷΛݮ͢Δ͜ͱʹޭ͠·ͨ͠ɻ खಈςετઈରʹແ͘ͳΓ·ͤΜ͕ɺ ࣗಈςετΛಋೖ͢Δ͜ͱͰಉ͡Ͱखಈςετͷׂͷ෯Λ͛ͨΓ 2"ݟΕΔੈքΛ͛Δ͜ͱ͕Ͱ͖Δͱ࣮ײ͠·ͨ͠ɻ ςετΤϯδχΞͷํಉ͡ίʔυ͕ॻ͚ͳ͍2"ΤϯδχΞʹࠂ͙ ʮࣗಈԽΖ͏ͱࢥ͑Ͱ͖ΔͧʂఘΊΜͳʂʯ
͝੩ௌ ͋Γ͕ͱ͏͍͟͝·ͨ͠