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.1k
経営者を巻き込む 自動テストの広め方 [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.4k
「たった1行」を支える監視技術 at 2016/09/27 第一回スタートアップRails勉強会 / monitoring for "one line" service
tadyjp
2
390
テスト駆動検索のススメ [第3回Elasticsearch勉強会]
tadyjp
9
2.5k
Other Decks in Business
See All in Business
SendGrid Night #10「ワンクリック配信停止の最新情報」
ken_yoshi
0
250
freee Movement Deck
freee
0
120
Morght 会社紹介資料_LAST UPDATED 2025.2
morght
1
2.2k
株式会社SAFELY 会社紹介 / Company
safely_pr
0
190
意見交換での思いやり 〜会議ファシリテーションその前に〜 / Consideration in the exchange of opinions
pauli
0
250
2ndPASS_リクルートガイド2024
akinodaichi
0
510
サイボウズの開発チームが行っているスクラムの紹介
tonionagauzzi
0
370
UXwriter_intro_202502
uxw
0
3.8k
RAKSUL会社紹介資料 / RAKSUL Introduction
raksulrecruiting
8
81k
運営という選択〜参加者から運営への変容と運営を経験して得られた学び〜 / The Choice of Being an Organizer
aki_moon
0
350
merpay-Overview
mercari_inc
7
170k
SHIFT ASIA 会社説明資料 V2.1
shiftasiarec
0
170
Featured
See All Featured
StorybookのUI Testing Handbookを読んだ
zakiyama
28
5.5k
A designer walks into a library…
pauljervisheath
205
24k
Become a Pro
speakerdeck
PRO
26
5.1k
Product Roadmaps are Hard
iamctodd
PRO
50
11k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
12
960
What's in a price? How to price your products and services
michaelherold
244
12k
Code Review Best Practice
trishagee
67
18k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
59k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
46
2.3k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
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 ݱ ܦӦਞ でも、 ⼀一番美味しい