Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
400
テスト駆動検索のススメ [第3回Elasticsearch勉強会]
tadyjp
9
2.5k
Other Decks in Business
See All in Business
FREEDOM株式会社 会社紹介資料
fdyabe
0
580
CREALを知る
creal
PRO
0
1.2k
経理・労務の経験者(ドメインエキスパート) が持つ、無限の可能性
jun_nemoto
0
600
イークラウド会社紹介 ~挑戦で、つながる社会へ~
ecrowd
1
4k
BtoB SaaSにおける新規事業開発プロセス(ミライ塾ヒトコマ講座)
miyashino
0
240
VISASQ: ABOUT DEV TEAM
eikohashiba
6
38k
強みのデザイン入門 / Introduction to Strengths Design
tbpgr
0
390
ペイジェント採用資料
paygent
0
23k
Sales Marker Culture Book(English)
salesmarker
PRO
2
7.3k
YADOKARI CULTURE DECK 2025
yadokari
0
150
Crisp Code inc.|コーポレート・サービス紹介 - Corporate & Services Introduction
so_kotani
0
380
株式会社クーリエ 会社紹介資料 / Courier_Company Deck
courier_inc
0
290
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
38
3k
Statistics for Hackers
jakevdp
799
230k
Making Projects Easy
brettharned
120
6.5k
Scaling GitHub
holman
464
140k
Unsuck your backbone
ammeep
671
58k
Writing Fast Ruby
sferik
630
62k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.6k
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 ݱ ܦӦਞ でも、 ⼀一番美味しい