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.5k
費用対効果の高いテストコードを書くために意識したこと.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
20210528_MedPeer_事業成長を加速させたエンジニアリングのウラ側
hotatekaoru
0
1.1k
新規プロジェクトのリードエンジニアになるために
hotatekaoru
6
2.4k
リファクタリングチャンスを探せ
hotatekaoru
2
350
Dependabotからの脱却
hotatekaoru
0
350
Fat Modelに対処する 6つのリファクタリングパターン
hotatekaoru
13
3.5k
MobPro2Points
hotatekaoru
0
85
ViewModelをプロダクトに導入した🤖
hotatekaoru
1
180
僕らのリファクタリングは裏切らない
hotatekaoru
2
2.4k
ペアプロ・モブプロのススメ
hotatekaoru
0
370
Other Decks in Programming
See All in Programming
スクラムガイドのスプリントレトロスペクティブを改めて読みかえしてみた / Re-reading the Sprint Retrospective Section in the Scrum Guide
mackey0225
3
330
Tailwind CSSを本気でカスタマイズする方法
fsubal
2
260
[SF Ruby, March 2024] Rails on Wasm
palkan
0
380
ログラスを支える設計標準について / loglass-design-standards
urmot
10
2.1k
[技育CAMPアカデミア]アイディアを形に!【超入門】スマホアプリ開発〜リリースまでの流れをご紹介
teamlab
PRO
0
350
雑に思考を整理する技術と効能
konifar
55
25k
Git Rebase
bkuhlmann
11
1.6k
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
430
Code Reviews
bkuhlmann
4
880
Git Lint
bkuhlmann
4
740
StreamlitとTerraformでデータカタログを作った話
gussan0223
0
300
CircleCIを活用して AWSへの継続的デリバリーを 実践する
coconala_engineer
1
230
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
175
21k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Robots, Beer and Maslow
schacon
PRO
155
7.9k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
9
8.3k
Producing Creativity
orderedlist
PRO
336
39k
The Pragmatic Product Professional
lauravandoore
24
5.8k
How to Ace a Technical Interview
jacobian
272
22k
Building Applications with DynamoDB
mza
88
5.6k
Making the Leap to Tech Lead
cromwellryan
123
8.5k
Adopting Sorbet at Scale
ufuk
67
8.6k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.3k
The Invisible Customer
myddelton
114
12k
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