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
費用対効果の高いテストコードを書くために意識したこと.pdf
Search
Kaoru Hotate
December 16, 2019
Programming
3
4.8k
費用対効果の高いテストコードを書くために意識したこと.pdf
2019/12/16 年末だよ Android/iOS Test Night - 2019
https://testnight.connpass.com/event/155429/
Kaoru Hotate
December 16, 2019
Tweet
Share
More Decks by Kaoru Hotate
See All by Kaoru Hotate
20240607_人を動かし続ける力_ピープルマネジメントへの内発的動機づけの工夫
hotatekaoru
1
390
20210528_MedPeer_事業成長を加速させたエンジニアリングのウラ側
hotatekaoru
0
1.3k
新規プロジェクトのリードエンジニアになるために
hotatekaoru
6
2.6k
リファクタリングチャンスを探せ
hotatekaoru
2
470
Dependabotからの脱却
hotatekaoru
0
450
Fat Modelに対処する 6つのリファクタリングパターン
hotatekaoru
13
4.3k
MobPro2Points
hotatekaoru
0
110
ViewModelをプロダクトに導入した🤖
hotatekaoru
1
220
僕らのリファクタリングは裏切らない
hotatekaoru
2
2.6k
Other Decks in Programming
See All in Programming
Quand Symfony, ApiPlatform, OpenAI et LangChain s'allient pour exploiter vos PDF : de la théorie à la production…
ahmedbhs123
0
130
Hypervel - A Coroutine Framework for Laravel Artisans
albertcht
1
110
Team topologies and the microservice architecture: a synergistic relationship
cer
PRO
0
1.2k
スタートアップの急成長を支えるプラットフォームエンジニアリングと組織戦略
sutochin26
0
4.1k
来たるべき 8.0 に備えて React 19 新機能と React Router 固有機能の取捨選択とすり合わせを考える
oukayuka
2
910
0626 Findy Product Manager LT Night_高田スライド_speaker deck用
mana_takada
0
150
新メンバーも今日から大活躍!SREが支えるスケールし続ける組織のオンボーディング
honmarkhunt
3
5.9k
WindowInsetsだってテストしたい
ryunen344
1
240
C++20 射影変換
faithandbrave
0
570
XP, Testing and ninja testing
m_seki
3
230
Kotlin エンジニアへ送る:Swift 案件に参加させられる日に備えて~似てるけど色々違う Swift の仕様 / from Kotlin to Swift
lovee
1
260
ふつうの技術スタックでアート作品を作ってみる
akira888
0
450
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
23
3.5k
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Navigating Team Friction
lara
187
15k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
How STYLIGHT went responsive
nonsquared
100
5.6k
The Language of Interfaces
destraynor
158
25k
Speed Design
sergeychernyshev
32
1k
Site-Speed That Sticks
csswizardry
10
680
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
657
60k
Transcript
අ༻ରޮՌͷߴ͍ ςετίʔυΛॻͨ͘Ίʹߟ͑ͨ͜ͱ ,BPSV)PUBUF!QVSVOLBPSV ͩΑ"OESPJEJ045FTU/JHIU UFTU@OJHIU 1
อཱ֜ ,BPSV)PUBUF 5XJUUFS!QVSVOLBPSV ϝυϐΞגࣜձࣾ ‣ 3VCZ ‣ J04
‣ "OESPJEϲ݄ ࣗݾհ 2
͖͔͚ͬ 3 6OJU5FTU͔Βॻ͍͍ͯ͜͏ .PEFM7JFX.PEFM͔Β ॻ͖·͠ΐ͏ ॻ͚ΔՕॴ͔Βॻ͍͍ͯ͜͏ όάͷଟ͍Օॴ͔Βॻ͜͏ શ෦ਖ਼ͦ͠͏ ˞ͦͷϓϩδΣΫτͷঢ়گͰ
͖͔͚ͬ 4 ςετͷʮԿΛΔ͔ʯʮԿ͔ΒΔ͔ʯɺ ϓϩδΣΫτʹΑͬͯҟͳΔͷͰʁ ‣ ΞϓϦͷۀछɾαʔϏεͷ༰ ‣ ϓϩμΫτϥΠϑαΠΫϧ ‣ खಈςετͰͷ୲อͷํ
ςετίʔυΛॻ͘త͔Βɺ ͲͷςετΛॻ͖͔͘அ͠ͳ͍ͱɺ ςετͷఆண࣮ݱͰ͖ͳͦ͞͏
ࠓ͢͜ͱ 5 ͕୲͍ͯ͠ΔαʔϏεʹɺ ͔ΒςετίʔυΛॻ͘͜ͱʹͳΓ·ͨ͠ ʮඅ༻ରޮՌͷߴ͍ςετίʔυʯͱԿ͔ʁʹ͍ͭͯߟ͑ɺ ࣮ફͨ݁͠Ռىͬͨ͜͜ͱΛ͠·͢
ΞδΣϯμ 6 ϓϩδΣΫτͷঢ়گΛѲ͢Δ ςετίʔυͷతΛߟ͑Δ ςετίʔυͷํΛ·ͱΊΔ ࣮ࡍʹى͖ͨ͜ͱΛৼΓฦΔ
͓ͼ 7 ͷ༰্ɺࣗͷϓϩδΣΫτͷઆ໌͕ଟ͘ͳ͍ͬͯ·͢ ڵຯͳ͍ਓ͍Βͬ͠ΌΔͱࢥ͍·͕ྃ͢͝ঝ͍ͩ͘͞
ϓϩδΣΫτͷঢ়گΛѲ͢Δ 8
αʔϏεઆ໌ 9
ͬ͘͟Γͷػೳઆ໌ 10 B ձһొɾϩάΠϯػೳ C ΧϝϥͰࡱӨͨ͠ॲํᝦͷૹ৴ػೳ D ϓογϡ௨डऔΓػೳ E νϟοτϝοηʔδૹड৴ػೳ
"OESPJE.77.Λ࠾༻ 7JFX7JFX.PEFM3FQPTJUPSZ.PEFM
αʔϏεͷϓϩμΫτϥΠϑαΠΫϧ 11 IUUQTCJ[IJOUKQLFZXPSEΑΓ ͜ͷลʁ ˞͋͘·ͰϓϩδΣΫτͰͷओ؍తͳҙݟͰ͢
ςετίʔυͷతΛߟ͑Δ 12
13 ςετΛॻͭ͘ͷత Jਖ਼͘͠ಈ͘͜ͱΛ୲อ͢Δ JJ։ൃ࣌ͷಈ࡞ݕূΛ͘͢Δ JJJϨϏϡʔ࣌ؒΛ͘͢Δ JWΤϯδχΞ͕ײ͡Δਫ਼ਆతෛ୲ΛݮΒ͢ ˞ίʔυͷ࣭Λ୲อ͢Δɾ༷Λ໌จԽ͢ΔͳͲɺଞͷཧ༝ߟ͑ΒΕΔ͕ɺ ςετΛॻ͘෭࣍తͳϝϦοτͩͱߟ͑ͨͷͰɺআ֎͍ͯ͠·͢
Jਖ਼͘͠ಈ͘͜ͱΛ୲อ͢Δ 14 త ‣ όά͕ϦϦʔε͞ΕΔ֬ΛݮΒ͢ ‣ όάൃੜʙमਖ਼ྃʹ͔͚Δ࣌ؒΛݮΒ͢ ‣ σάϨΛ͙
ςετίʔυͷಛ ‣ աڈͷόάൃੜසͷߴ͍Օॴ͔Βॻ͘ ‣ ෳࡶͳΫϥεը໘͔Βॻ͘ ‣ ݺͼग़͞ΕΔॲཧ͕ଟ͍Օॴ͔Βॻ͘
Jਖ਼͘͠ಈ͘͜ͱΛ୲อ͢Δ 15 ͲΜͳϓϩδΣΫτʹద͍ͯ͠Δ͔ <>͘ଓ͚Δ༧ఆͷαʔϏεͰ͋Δ <>ҙਤͨ͠ڍಈʹͳΒͳ͍࣌ͷӨڹɾӨڹֹ͕େ͖͍ <>ػೳमਖ਼͕ଟ͍ <>ϥΠϒϥϦͷΞοϓσʔτΛ͢Δස͕ߴ͍ <>2"νʔϜ͕͍ͳ͍ ˓ º
º ˚ ˓
JJ։ൃ࣌ͷಈ࡞ݕূΛ͘͢Δ 16 త ‣ ࣮ػͰͷಈ࡞ݕূ͕໘ͳՕॴʹରͯ͠ɺ ςετίʔυͰͷڍಈ֬ೝΛߦ͏ ‣ ֬ೝ࿙ΕΛ͙ Δ͜ͱ
‣ ಈ࡞ݕূ͕໘ͳ෦ͷ6OJU5FTUΛॻ͘ ΤϥʔॲཧϨΞέʔεͷڍಈ୲อͳͲ
JJ։ൃ࣌ͷಈ࡞ݕূΛ͘͢Δ 17 ͲΜͳϓϩδΣΫτʹద͍ͯ͠Δ͔ <>"1*ͷNPDLڥ͕ͳ͍ <>ෳࡶͳભҠέʔε͕ଟ͍ <>ΤϯδχΞ͕ಈ࡞ݕূΛαϘΓ͕ͪ ˓ ˚ ˚
JJJϨϏϡʔ࣌ؒΛ͘͢Δ 18 త ‣ ϨϏϡʔ࣌ʹɺςετίʔυͰ୲อ͞Ε͍ͯΔՕॴͷ खಈνΣοΫΛߦ͏࣌ؒΛ͘͢Δ Δ͜ͱ ‣ ෳࡶͳॲཧɺݟ͚ͨͩͰࣗ໌Ͱͳ͍Օॴ͔Β6OJU5FTUΛॻ͘
JJJϨϏϡʔ࣌ؒΛ͘͢Δ 19 ͲΜͳϓϩδΣΫτʹద͍ͯ͠Δ͔ <>ϨϏϡʔจԽ͕͋Δ ଞʹཁҼ͋Γͦ͏͚ͩͲɾɾɾ º
JWΤϯδχΞ͕ײ͡Δਫ਼ਆతෛ୲ΛݮΒ͢ 20 త ‣ ϦϦʔε࣌ʹɺΤϯδχΞʹ͔͔ΔաͷۓுΛ΄͙͢ ‣ ςετͰ୲อ͞Ε͍ͯΔͱ͍͏҆৺ײΛ༩͑Δ Δ͜ͱ ‣
ࣦഊ࣌ʹӨڹͷେ͖͍Օॴ͔Βɺ6*5FTU6OJU5FTUΛॻ͘
JWΤϯδχΞ͕ײ͡Δਫ਼ਆతෛ୲ΛݮΒ͢ 21 ͲΜͳϓϩδΣΫτʹద͍ͯ͠Δ͔ <>ҙਤͨ͠ڍಈʹͳΒͳ͍࣌ͷӨڹɾӨڹֹ͕େ͖͍ <>ϦϦʔεલʹυΩυΩ͢Δ <>ϦϦʔεલʹख͕͑Δ <>ϦϦʔεલʹׇ͕͘ ˓ ˓ ˓
˓
ςετίʔυͷํΛ·ͱΊΔ 22
23 ςετΛॻͭ͘ͷత Jਖ਼͘͠ಈ͘͜ͱΛ୲อ͢Δ JJ։ൃ࣌ͷಈ࡞ݕূΛ͘͢Δ JJJϨϏϡʔ࣌ؒΛ͘͢Δ JWΤϯδχΞ͕ײ͡Δਫ਼ਆతෛ୲ΛݮΒ͢
24 ςετΛॻͭ͘ͷత Jਖ਼͘͠ಈ͘͜ͱΛ୲อ͢Δ JJ։ൃ࣌ͷಈ࡞ݕূΛ͘͢Δ JJJϨϏϡʔ࣌ؒΛ͘͢Δ JWΤϯδχΞ͕ײ͡Δਫ਼ਆతෛ୲ΛݮΒ͢
25 ԿΛΔ͔ʢϨΠϠʔ͝ͱͷΓ͚ʣ ਖ਼͘͠ಈ͘͜ͱΛ ୲อ͢Δ ಈ࡞ݕূΛ ͘͢Δ ਫ਼ਆతෛ୲Λ ݮΒ͢ 7JFX ˚
º ˚ 7JFX.PEFM ˓ ˚ ˚ 3FQPTJUPSZ ˓ ˓ ˓ .PEFM ˓ ˚ ˓ 3FQPTJUPSZɺඞͣ6OJU5FTUΛॻ͘ .PEFMɺෳࡶͳ෦͔Β6OJU5FTUΛॻ͘
26 ԿΛΔ͔ʢػೳ͝ͱͷΓ͚ʣ ਖ਼͘͠ಈ͘͜ͱΛ ୲อ͢Δ ಈ࡞ݕূΛ ͘͢Δ ਫ਼ਆతෛ୲Λ ݮΒ͢ ձһొ ˓
˓ ˕ ॲํᝦը૾ૹ৴ ˓ ˚ ˓ ௨डऔΓ ˚ ˓ ˚ ϝοηʔδૹड৴ ˚ ˚ º ʮձһొʯ6*5FTU6OJU5FTUΛཏ͢Δ ʮॲํᝦը૾ૹ৴ʯ6OJU5FTUΛཏ͢Δ
27 ԿΛΔ͔ʢ·ͱΊʣ ্͔Βॱʹߦ͏ J3FQPTJUPSZͷ6OJU5FTUΛॻ͘ JJʮձһొʯͷ6OJU5FTU6*5FTUΛॻ͘ JJJෳࡶͳ.PEFMͷ6OJU5FTUΛॻ͘ JWʮॲํᝦը૾ૹ৴ʯͷ6OJU5FTUΛॻ͘
࣮ࡍʹى͖ͨ͜ͱΛৼΓฦΔ 28
29 ԿΛΔ͔ʢ·ͱΊʣ ্͔Βॱʹߦ͏ J3FQPTJUPSZͷ6OJU5FTUΛॻ͘ JJʮձһొʯͷ6OJU5FTU6*5FTUΛॻ͘ JJJෳࡶͳ.PEFMͷ6OJU5FTUΛॻ͘ JWʮॲํᝦը૾ૹ৴ʯͷ6OJU5FTUΛॻ͘ ձһొϑϩʔม͑Α͏
30 ײͨ͜͡ͱ ಛʹ࠷ॳͷϑΣʔζ͔ΒςετΛॻ͍͍ͯ͘߹ɺ ϏδωεαΠυͱίϛϡχέʔγϣϯΛͱͬͯɺ ࠷ળͷςετํΛࡦఆ͍ͯ͜͠͏ɻ ઌਓͷܙʹԊͬͯɺී௨ʹ࣮͍͚ͯ͠ ͍͍ײ͡ͷςετํ͕ݐͯΒΕͨؾ͕͢Δɻ ςετίʔυΛఆணͤ͞Δͱ͍͏͜ͱΛॏࢹ͢ΔͷͰ͋Εɺ ͳͥΔ͔Λɺ୲ऀ͕͖ͪΜͱཧղ͍ͯ͠Δ͖ɻ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ 31