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
テストを書くか書かないかの状況判断 / Deciding whether to write t...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Takuto Wada
PRO
December 09, 2014
Programming
21k
26
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
テストを書くか書かないかの状況判断 / Deciding whether to write tests - DeNA Tech Talk
2014/12/09 に DeNA 社内勉強会にお招きいただいて話した内容です
Takuto Wada
PRO
December 09, 2014
More Decks by Takuto Wada
See All by Takuto Wada
2026年のソフトウェア開発を考える(2026/05版) / Software Engineering Scrum Fest Niigata 2026 Edition
twada
PRO
27
17k
予防に勝る防御なし(2025年版) - 堅牢なコードを導く様々な設計のヒント / Growing Reliable Code PHP Conference Fukuoka 2025
twada
PRO
51
35k
SQLアンチパターン第2版 データベースプログラミングで陥りがちな失敗とその対策 / Intro to SQL Antipatterns 2nd
twada
PRO
46
44k
AI時代のソフトウェア開発を考える(2025/07版) / Agentic Software Engineering Findy 2025-07 Edition
twada
PRO
192
130k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
120k
The Clean ArchitectureがWebフロントエンドでしっくりこないのは何故か / Why The Clean Architecture does not fit with Web Frontend
twada
PRO
88
52k
組織に自動テストを書く文化を根付かせる戦略(2024冬版) / Building Automated Test Culture 2024 Winter Edition
twada
PRO
37
15k
ピラミッド、アイスクリームコーン、SMURF: 自動テストの最適バランスを求めて / Pyramid Ice-Cream-Cone and SMURF
twada
PRO
10
3.8k
組織に自動テストを書く文化を根付かせる戦略(2024秋版) / Building Automated Test Culture 2024 Autumn Edition
twada
PRO
15
7.8k
Other Decks in Programming
See All in Programming
The ROI of Quarkus for Spring Boot Applications
hollycummins
0
140
トークンをケチるな、設計しろ:GitHub Copilotを賢く使うコンテキスト戦略
ochtum
0
170
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
14
6.8k
依存関係から依存物へ―Dependencyという言葉の歴史をひも解く
j_lee
0
140
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
13
6.3k
Javaの型とAI時代に型が大事な理由 / java types and type in AI era
kishida
2
150
スマートグラスで並列バイブコーディング
hyshu
0
260
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
320
ふつうのFeature Flag実践入門
irof
8
4.2k
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.3k
act1-costs.pdf
sumedhbala
0
110
AIだと陥りがちなJakarta EE最新技術への移行時の落とし穴と解決策
tnagao7
0
120
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
528
40k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
140
Building Flexible Design Systems
yeseniaperezcruz
330
40k
The Curse of the Amulet
leimatthew05
2
13k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
Done Done
chrislema
186
16k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Unsuck your backbone
ammeep
672
58k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
380
What the history of the web can teach us about the future of AI
inesmontani
PRO
1
620
Optimising Largest Contentful Paint
csswizardry
37
3.7k
Transcript
ςετΛॻ͔͘ ॻ͔ͳ͍͔ͷ ঢ়گஅ ాਓ BLBJEUXBEBPS!U@XBEB %FD !%F/"
ాਓ JEUXBEB !U@XBEB HJUIVCUXBEB
None
֤ॴͰҖΛৼΔ͏U@XBEBQOH ͪͳΈʹ͜ͷίϥը૾Λ࡞ͬͨͷ!ZPTVLF@GVSVLBXB
ΑΖ͘͠ ͓ئ͍͠·͢
lςετΛॻ͘ ͕࣌ؒແ͍z
ετϨε ςετ ετϨεͱࣗಈςετͷJO fl VFODFEJBHSBN 5%%CZ&YBNQMFΑΓ നؙ͖ҹෛͷଓࠜݩ͕૿͑ΕઌݮΔɻࠜݩ͕ݮΕઌ૿͑Δ
ࣗಈςετ ετϨε ετϨεͱࣗಈςετͷJO fl VFODFEJBHSBN 5%%CZ&YBNQMFΑΓ നؙ͖ҹෛͷଓࠜݩ͕૿͑ΕઌݮΔɻࠜݩ͕ݮΕઌ૿͑Δ
ςετΛॻ͕࣌ؒ͘ͳ͍ͷͰ ͳ͘ɺςετΛॻ͔ͳ͍͔ Β͕࣌ؒͳ͘ͳΔͷͰ͢ɻ
ͲΜͳͱ͖ςετ Λશ͘ॻ͔ͳ͍͔
wϫϯϥΠφʔ wҰճݶΓͷεΫϨΠϐϯά wσϞʹ͏ίʔυ wͨͩ͠ɺ࣮ߦճ͕Ͱͳ͍ wҰճݶΓͷσʔλҠߦεΫϦϓτʹ ςετΛॻ͘ ॻ͖ࣺͯͷίʔυ
wςετʹΑΔ҆ఆͨ͠ϑΟʔυόοΫϧʔϓ Λ࡞Δલஈ֊ w৽͍͠ϑϨʔϜϫʔΫΛࢼ͍ͯ͠Δஈ֊ͳͲ ؚ·ΕΔ wςετΑΓ͍ϑΟʔυόοΫ͕ཉ͍͠ w3&1-σόοΨͰֶΜͩ͜ͱΛςετʹ ༁͍ͯ͘͠ w࠶ݱੑΛςετͰิڧ͢ΔΠϝʔδ ࢼߦࡨޡஈ֊ͷͱ͖
8IZ ސ٬ԿނͦΕΛཉ ͍ͯ͠Δͷ͔ 8IBU ԿΛ࡞Ε ྑ͍ͩΖ͏͔ )PX Ͳ͏࡞Ε ྑ͍ͩΖ͏͔ සൟͳϦϦʔεͱσϞ
ड͚ೖΕςετ Ϣχοτςετ ӬγεςϜϚωδϝϯτՈӬࢯͷࢿྉΑΓ ରڥʹΑΔࢼߦࡨޡΛ͍ͯ͠Δͱ͖
IUUQTXXXGBDFCPPLDPNOPUFTLFOUCFDLXIFOUEEEPFTOUNBUUFS
ͲΜͳςετΛ ॻ͔ͳ͍Α͏ʹ͠ ͍ͯΔ͔
wςετରҎ֎͕ϞοΫ wςετ࣮ߦΛ͘͢ΔͨΊ͚ͩͷϞοΫ wதؒϨΠϠͷʮϢχοτʯςετ wͨͱ͑ίϯτϩʔϥͷςετ wΧόϨοδ্ૂ͍ͷςετ wQSJWBUFϝιουͷςετ खஈͷతԽ
wݴޠϑϨʔϜϫʔΫɺج൫ͷςετ wࣗಈੜͨ͠··ͷίʔυͷςετ wը໘ϨΠΞτΛϐΫηϧϨϕϧͰ ৺ੑ͗͢Δςετ
w৺͕ୀ۶ʹมΘΔ·Ͱςετ͢Δ wୀ۶͞ͱٛײΛײ͡ΔͳΒͦΕΛϓϩά ϥϛϯάରʹ͢ΔɻͰ͖ͳ͚ΕΊΔ w5%% ςετϑΝʔετʹͩ͜ΘΒͳ͍ w͋ͱ͔ΒςετΛॻ͍ͯશ͔͘·Θͳ͍ wͰ͖Εͦͷͷ͏ͪʹॻ͍͓͖͍ͯͨ ٛײʹ͔ΒΕͨςετ
ςετΛॻ͔ͳ͍ ٕज़
Y6OJU5FTU1BUUFSOTΑΓ ςετͷϝϯςφϯείετ ཧ ݱ࣮
wίʔυߦςετίʔυߦΛࢦͯ͠ΈΔ w·͋ී௨ͦ͜·Ͱ͍͔ͳ͍͕ɺ͕ࠩۃʹ։͖͗͢ ͳ͍Α͏ʹ͢Δ wϨΠϠؒॏෳΛݮΒ͢ wϨΠϠؒͷςετ༰ॏෳҰճ·Ͱͱ͢ΔɻͦΕ Ҏ্ͷॏෳঢ়گʹΑΔ wਖ਼ৗܥͷओཁಋઢ&&ʹدͤɺྫ֎ܥʹͳΔ΄ ͲϢχοτςετʹدͤΔ ςετΛॻ͖͗͢ͳ͍ͨΊʹ
w੩తݕূΛຯํʹ͚Δ wࢲ͕ͨͪΑ͘ʮςετίʔυʯͱݺΜͰ͍Δ ͷʮಈతςετʯɻରίʔυΛಈ͔͠ ͯςετ͢Δ wରίʔυΛಈ͔ͣ͞ʹςετ͢Δͷ͕੩ తݕূ wMJOU͔Βڧ͍੩తܕ͚·Ͱ͍Ζ͍Ζ ςετΛॻ͖͗͢ͳ͍ͨΊʹ
wϨΠϠͱநදݱྗΛϦϯΫͤ͞Δ w֎෦͔Βͷςετදݱྗ๛͔Ͱ͘ॻ͚ ΔΑ͏ʹ w%4-ผݴޠͰྑ͍ wϢχοτςετςετରͱಉ͡ݴޠ ͰɺϞοΫΛͳΔ͘Θͣɺͦͷ·· αϯϓϧίʔυͱͳΔΑ͏ʹॻ͘ ςετΛॻ͖͗͢ͳ͍ͨΊʹ
.BLFFBDIQSPHSBNEPPOFUIJOHXFMM IUUQTHJUIVCDPNTVCTUBDLOPEFGFTU
IUUQTXXX fl JDLSDPNQIPUPTUPNQBHFOFU ςετ࣭Λ্͛ͳ͍ ମॏܭʹΔ͚ͩͰ ૫ͤͳ͍ͷͱಉ͡
lςετͰ্࣭͕Βͳ͍ Ͱ͢Αɻςετ͋͘·Ͱ ࣭Λ͋͛Δ͖͔͚ͬɻ࣭Λ͋ ͛ΔͷϓϩάϥϛϯάͰ͢ɻ ͜Εେੲ͔Βͦ͏ɻz
ࣗಈςετͷྑ͍ͱ͜Ζɺ վળΛզຫ͠ͳͯ͘ྑ͘ ͳͬͨ͜ͱ
wଈ࠲ʹϑΟʔυόοΫΛಘΔͨΊ wॻ͍ͨίʔυʹࣗ৴Λ࣋ͭͨΊ w͜Ε͔Βॻ͘ίʔυʹࣗ৴Λ࣋ͭͨΊ 5%%%FWFMPQFS5FTUJOHʹ ιϑτΣΞֶతͳϝϦοτ͍Ζ͍ Ζ͋ΕͲɺ࠷େͷཧ༝৺ཧతͳͷ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠