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
経営者を巻き込む自動テストの広め方 [DevLove甲子園-技]
Search
tadyjp
August 24, 2014
Business
6
1.2k
経営者を巻き込む 自動テストの広め方 [DevLove甲子園-技]
DevLOVE現場甲子園2014 東日本大会
技トラック4回裏
ツールや技術だけでは解決できない「やりたいことを会社でやるための」5つのパターン
tadyjp
August 24, 2014
Tweet
Share
More Decks by tadyjp
See All by tadyjp
vue-onsenuiを教材に Vue2 migrationを 試してみる // migrate vue-onsenui to vue2
tadyjp
1
1.5k
「たった1行」を支える監視技術 at 2016/09/27 第一回スタートアップRails勉強会 / monitoring for "one line" service
tadyjp
2
410
テスト駆動検索のススメ [第3回Elasticsearch勉強会]
tadyjp
9
2.5k
Other Decks in Business
See All in Business
その"インサイト"、本当に意味ありますか? 〜Think N1な深いインサイトの見つけ方〜
inagakikay
1
870
ZEIN株式会社 会社説明資料【キャリア採用向け】
zein
0
290
LRM株式会社 - ピッチ資料2026
lrm
0
360
CC採用候補者向けピッチ資料
crosscommunication
2
57k
RECRUIT DECK 小平株式会社 会社説明資料
kobira_official
PRO
0
2.9k
40代データ人材のキャリア戦略
pacocat
4
4.1k
フルカイテン株式会社 採用資料
fullkaiten
0
82k
knewit Company Deck
knewit_deck
0
180
プロダクトにAIを。 確率的なふるまいと向き合う。
sugitlab
1
440
会社説明資料|幸信電気株式会社
260122
0
250
YassLab (株) サービス紹介 / Introduction of YassLab
yasslab
PRO
3
41k
【Progmat】Monthly-ST-Market-Report-2026-Jan.
progmat
0
480
Featured
See All Featured
Reality Check: Gamification 10 Years Later
codingconduct
0
2k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
850
So, you think you're a good person
axbom
PRO
2
1.9k
Practical Orchestrator
shlominoach
191
11k
Technical Leadership for Architectural Decision Making
baasie
2
270
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
210
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Noah Learner - AI + Me: how we built a GSC Bulk Export data pipeline
techseoconnect
PRO
0
120
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
92
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
sira's awesome portfolio website redesign presentation
elsirapls
0
160
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
2.3k
Transcript
ܦӦऀΛר͖ࠐΉ ࣗಈςετͷΊํ ଟా·͞ͱ!UBEZ@KQ גࣜձࣾ͛͡Μ ੍࡞ج൫άϧʔϓϦʔμʔ %FW-PWFݱߕࢠԂ౦ຊେձ ٕτϥοΫ 4BU
ࣗݾհ • ͛͡ΜࣾΤϯδχΞ৽ଔ̍ظੜ • ݱࡏ̎ • ͜ͷ݄͔Βʮج൫νʔϜʯͷϦʔμʔ • ීஈͷࣄɿ ݱ
ܦӦਞ 両⽅方から 押しつぶされる ⽇日々
͜ͷϓϨθϯͷϙΠϯτ πʔϧٕज़͚ͩͰղܾͰ͖ͳ͍ ʮΓ͍ͨ͜ͱΛձࣾͰΔͨΊͷʯ ͭͷύλʔϯ
ࣾһߏ ΤϯδχΞ ΤϯδχΞ ʢࠃ֎ࢠձࣾʣ اըʗηʔϧε σβΠφʔ ϚʔέςΟϯά
̐छྨͷΤϯδχΞ ϚωδϝϯτΤϯδχΞ αʔϏε ΤϯδχΞ ςΫϊϩδʔΤϯδχΞ ࠃ֎ݱ ΤϯδχΞ ࣄۀ෦ʗܦӦͱͷ ίϛϡχέʔγϣϯ͕ૈ͍ʂ
ೖࣾ࣌ͷিܸ ΤϯδχΞਓͨΓͷ ՔಇαʔϏε τϥοΫφϯόʔ
ೖࣾ࣌ͷিܸ ৴པͯ͠ಈ͍͍ͯΔ ςετίʔυͷߦʹ
ςετΛॻ͜͏ͱͨ͠ ϝϯόʔͷਓ
ࣦഊͷؒ • 3TQFDͷࣾษڧձ • ςετͷॻ੶ͷڭ • ࣾϥΠϒϥϦͷϥΠϒϥϦԽ • ৽نαʔϏεͷ5%% •
FUD ԿΛͬͯͩΊ
ςετΛऔΓר͘'PSDFT
ࣄۀऀͱͷۦ͚Ҿ͖ ςετʁ ͦΜͳͷखͷ։͍͍ͯΔ όΠτʹͰΒͤͱ͚ ͪΐͬͱͬͯԼ͍͞ ͕Ζ͏ͱ͍ͯ͠Δςετ ͦ͏͍͏ྨͷͷͰ͋Γ·ͤΜ
։ൃϦʔμʔ͔Βͷཁٻ ςετΛॻ͘ͳΒ ΧόϨοδΛࢦඪʹ͠Α͏͔ ͪΐͬͱͬͯԼ͍͞ ΧόϨοδ͕ߴͯ͘ ࣭͕ߴ͍ͱ͍͏Θ͚Ͱ͋Γ·ͤΜ
ಉ྅ͱͷ୳Γ͍͋ ͓·͑ɺͦ͜·Ͱςετॻ͘ͷʁ Զʹ·ͰϓϨογϟʔ͕૿͑Δ͡Όͳ͍͔ ͪΐͬͱͬͯԼ͍͞ ςετͰ͖Δͱ͜Ζ͔Β গͣͭ͠Ε͍͍ΜͰ͢Α
ଞ৬छ͔ΒͷϓϨογϟʔ ͋ͳͨɺ ͦΜͳ͜ͱ͢Δ༨༟͋ΔͳΒ ͬͪ͜ͷ։ൃͯ͠Α ͪΐͬͱͬͯԼ͍͞ ςετະདྷͷେͳࢿͰ͢ ༨༟͕ແ͍͔ΒςετΛ͢ΔΜͰ͢
ࣗͱͷઓ͍ ೲظೲظೲظɺͦͯ͠ೲظ ςετͷͨΊʹۀ͢Δͷ͔ɺԶ ͊
ςετΛऔΓרͭ͘ͷྗ ࣄۀ ऀ ։ൃ Ϧʔμʔ ಉ྅ ଞ৬छ ࣗ
ͦ͏ɺݱఢͩΒ͚ GEMBA
Ͳ͏ͯ͜͠͏ͳͬͨʁ
ߥͿΔ࢛ఱԦ 2VBMJUZ ʜ࣭ $PTU ʜඅ༻ʢೖਓʣ %FMJWFSZ ʜೲظ 4DPQF ʜػೳ
Mr. Quality Mr. Cost Mr. Scope Mr. Delivery
ߥͿΔࡾఱԦ ʑ։ൃͱϦϦʔε͕ଓࣗࣾ͘αʔϏεͰɺ $PTUೖਓΛมߋ͢Δ͜ͱ ࣄ্࣮ෆՄೳ Mr. Quality Mr. Cost Mr. Scope
Mr. Delivery
Δ̏ͭͷύϥϝʔλ ࣭ɾೲظɾػೳ ͜ͷ̏ͭҰݟཱ྆ͦ͠͏ʹݟ ͑Δ ͔͠͠ɺ͜ͷ߹ 2VBMJUZʮະདྷͷࢿʯΛ ߟྀ͍ͯ͠ͳ͍ࣄ͕ଟ͍ Mr. Quality
Mr. Scope Mr. Delivery ैଐม ಠཱม ಠཱม
4DPQF%FMJWFSZ͕ڧ͍ 2VBMJUZ͕ऑ͍ʹఆྔੑ͕͍ ͳͥͳΒɺʹݟ͑ͳ͍͔Βʂ ʮόά͕ແ͍ʹ࣭͕ߴ͍ʯͰͳ͍
+FOLJOT͕͘ͳͬͯɺ αʔϏεʹࢧো͕ग़ͳ͚Ε ʮձࣾʯԿࢥΘͳ͍
͡Ό͋ɺ2VBMJUZΛݟ͑ΔԽͩ
ͰɺԿΛʁ ΧόϨοδΛݟͤͯʮձࣾʯԿࢥΘͳ͍ ͱ͍͏͔ɺطଘαʔϏεͷςετԽͰ ΧόϨοδͱ͔ඇݱ࣮త Կ͔ʮݟ͑ΔԽʯͰ͖Δͷແ͍͔ʁ ύλʔϯ ݟ͑ΔԽύλʔϯ
ࣾʹࣖΛ͚ͯΈͨ
ϢʔβʔొϑΥʔϜͷόϦσʔγϣϯΤϥʔ Ϟσϧͷςετ ڭՊॻతͰΓͦ͢͏ ͰԿ͔Ҿ͔͔ͬΔ
ຊʹ͜ΕͰ͍͍ͷ͔ ϞσϧҎ֎ʹςετ߲ͨ͘͞Μ͋Δ ϑΥʔϜͷόϦσʔγϣϯͷมߋͱ͔Ίͬͨʹͳ ͍
ͦͦͳͥ.PEFMͷςετ͔Βॻ͘ͷ͔ʁ ݪʹͬͯΈΑ͏ ͲͷςΩετϞσϧͷςετ͔Βॻ͍ͯ͋Δ トレーニングはモデルテストから 本番適⽤用ではフィーチャー(E2E)から (;
・`д・´) ナ、ナンダッテー !?
ํస ࣾʹϑΟʔνϟʔతͳ ςετΛॻ͘ωλͳ͍͔ʁ ύλʔϯ ௌύλʔϯ
͋ΔϚʔέ୲ͷͭͿ͖ ҎલɺϦϦʔε͢Δͱۃ·Εʹ)5.-ͷNFUBλ ά่͕ΕΔ͜ͱ͕͋ͬͨɻ ͦΕ͕յΕΔͱ4&00(1ʹѱӨڹ͕ͰΔɻ ͦΕΛνΣοΫ͢ΔͨΊʹɺϦϦʔεલʹຖճ ʮιʔεΛදࣔʯͯ͠தΛ֬ೝ͢Δͷ͕໘ͩ l
͜Εͩʂ ʮྲྀೖຖʹҟͳΔϥϯσΟϯάϖʔδ࠷దԽʯ ͷςετ • ϦϦʔεຖʹൃੜ͢Δखಈςετʹқ͢Δ Ϛʔέ୲ • UJUMFNFUBͳͲͷ)5.-ཁૉͷςετ ඇৗʹޮ͕ѱ͍
• σόΠεɺϦϑΝϥɺDPPLJFɺ࣌ͰҟͳΔ 7JFX • ͜͏͍ͬͨςετඇৗʹΊΜͲ͍͘͞ ˍɹΤϥʔʹؾ͖ͮʹ͍͘
ؒΛ૿͢ Ϛʔέͷதʹࠂɺ4&0୲ऀ͕͍Δ ൴ΒΛؒʹ͢Δ͜ͱͰςετจԽΛΊͯΈΑ ͏ ظͤͣͯ͠ɺͦͯ͠ʮΤϯδχΞͷࣗݾຬʯͱ ͍͏ΠϝʔδΛ১ ύλʔϯ ؒΛ૿͢ύλʔϯ
ඇٕज़ऀΛઆಘ͢ΔΩϥʔνϟʔτ ʮ͋ͳ͕ͨϦϦʔεຖʹνΣοΫ͍ͯ͠Δ߲ɺ ճҎ߱ෆཁʹͳΓ·͢ʯ ͔࣍Βͷϖʔδ ࣮ࡍʹࣾษڧձͰ ެ։ͨ͠εϥΠυ
1回目 2回目 3回目 ・・・ N回目 機能A ◦ 機能B × 機能C
◦ 機能D (未実装) 機能E (未実装) 機能F (未実装) ・・・ 35
1回目 2回目 3回目 ・・・ N回目 機能A ◦ 機能B × 機能C
◦ 機能D (未実装) 機能E (未実装) 機能F (未実装) ・・・ テストが 必要な部分 36
1回目 2回目 機能A ◦ ◦ 機能B × ◦ 機能C ◦
◦ 機能D (未実装) ◦ 機能E (未実装) (未実装) 機能F (未実装) (未実装) ・・・ 37
1回目 2回目 機能A ◦ ◦ 機能B × ◦ 機能C ◦
◦ 機能D (未実装) ◦ 機能E (未実装) (未実装) 機能F (未実装) (未実装) ・・・ 38
1回目 2回目 3回目 ・・・ N回目 機能A ◦ ◦ × ◦
機能B × ◦ ◦ ◦ 機能C ◦ ◦ ◦ ◦ 機能D (未実装) ◦ × ◦ 機能E (未実装) (未実装) (未実装) ◦ 機能F (未実装) (未実装) ◦ ◦ ・・・ 手動テストの場合: テスト回数 =機能数×リリース回数÷2 テストが 必要な部分 39
1回目 2回目 3回目 ・・・ N回目 機能A ◦ ◦ × ◦
機能B × ◦ ◦ ◦ 機能C ◦ ◦ ◦ ◦ 機能D (未実装) ◦ × ◦ 機能E (未実装) (未実装) (未実装) ◦ 機能F (未実装) (未実装) ◦ ◦ ・・・ テストが 必要な部分 自動テストの場合: テスト回数 =機能数 40
۩ମతͳํ๏ &YDFMʢ$47ʣΛͬͨςετέʔεهड़ ඇٕज़ऀͰ༻Ͱ͖Δz4QFDz &YDFMͳΒΈΜͳ͕͑Δ ཪଆ +FOLJOTʴ'51αʔό 5VSOJQ
1PMUFSHVJTU Λ͔ͭͬͨϑΟʔνϟʔ && ςετ ύλʔϯ าΈدΓύλʔϯ
Έ マーケがCSVアップロード Daily / ⼿手動で実⾏行行 ⽇日々の開発
۩ମతͳํ๏ ͻͱΓ2"νʔϜΛ݁ ςετिؒΛ࡞Γɺ͕ࣗνʔϜʹೖΓࠐΉ νʔϜʹೃછΉΑ͏ʹ ʮҰਓͰͯͬͯ͢͠·͏ʯ/( ͋͘·Ͱɺʮݺͼਫʯͱͯ͠ ύλʔϯ ݺͼਫύλʔϯ
ཧతʹॴΛม͑ͯςετΛॻ͖ʹߦ͘
͜Ε·Ͱͷ૯ׅ
ྑ͔ͬͨ ʮςετ͕ճ͍ͬͯΔʯ ͱ͍͏ঢ়ଶ·Ͱ࠷ͰདྷΒΕͨ
ྑ͔ͬͨ ςετΛ͍ͯ͠ͳ͍ ϝϯόʔΛר͖ࠐΊͨ
ྑ͔ͬͨ ΤϯδχΞҎ֎ͷࢍಉऀ Λ࡞Δ͜ͱ͕ग़དྷͨ
ল ςετΛॻ͘τϨʔχϯάͱ ࣮ࡍͷςετͷ࣮ͷόϥϯεײ͕͍֮͠
ࠓޙͲ͏ͯ͠ߦ͖͍͔ͨ • ςετͷॏཁੑͷڭ – ·ͩ·ͩςετͷॏཁੑΛ৺͔Βཧղ͍ͯ͠Δਓ গͳ͍ • ࠃڥͳ͖2"νʔϜͷ݁ –
࣌Ͱࠃ֎ͷ։ൃऀͷํ͕ଟ͍ • ୈ̎ɺୈ̏ͷʮݺͼਫʯީิͷҭ – ͍ͭ·Ͱ͕ࣗςετਪਐΛ͍ͯͨ͠ΒϚωδϝϯ τ͕Ͱ͖ͳ͍
ςετΛΊΔͭͷύλʔϯ – ਓਤࣔ͞ΕΔ͜ͱͰͦͷࣄฑͷେ͖͞Λ٬؍తʹड͚औΔ͜ͱ͕ Ͱ͖Δ • ௌύλʔϯ – ͔ࣗΒΕͨͱ͜Ζʹస͕͍ͬͯΔ͜ͱ͕ଟ͍
• ؒΛ૿͢ύλʔϯ – ࣗҰਓͰղܾͰ͖ͳ͍࣌ʹɺͰ͖Δ͚ͩόοΫάϥϯυ͕ҧ ͏ਓͱྑ͘͢Δ͜ͱ • าΈدΓύλʔϯ – ʮ͕ࣗΘ͔Δ͜ͱ㱠ΈΜͳ͕Θ͔Δ͜ͱʯͱ͍͏ͷ͍ͭΕ ͕ͪɻ͕ࣗਪਐऀͳΒ૬खʹ͓Έ͛Λ࣋ͬͯߦ͜͏ • ݺͼਫύλʔϯ – νʔϜͷจԽϓϩηεΛม͑ΔͨΊʹɺ࣌ʹ֎෦͔Βϝϯ όʔ͕ೖΓࠐΜͰɺҙࣝతʹվֵ͍ͯ͘͠Α͏ͳϩʔϧ͕ඞཁʹͳ Δ ݟ͑ΔԽύλʔϯ ௌύλʔϯ ؒΛ૿͢ύλʔϯ าΈدΓύλʔϯ ݺͼਫύλʔϯ
ͪΐͬͱʮٕʯͷ &&͕ؾܰʹͰ͖Δٕज़తͳ ͦͷαʔϏε͕͍͔ʹϨΨγʔͩΖ͏ͱɺ ֎෦͔ΒͷϒϥοΫϘοΫεςετͳͷͰ ࠷৽ͷόʔδϣϯɺϥΠϒϥϦ͕͑Δɻ
ࢀߟਤॻ • ৫ύλʔϯ • ΞΠσΞΛ৫ʹΊΔͨΊͷͷύλʔϯ • &WFSZEBZ3BJMT34QFDʹΑΔ3BJMTςετೖ
5IBOLZPVGPSMJTUFOJOH ݱ ܦӦਞ でも、 ⼀一番美味しい