Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
費用対効果の高いテストコードを書くために意識したこと.pdf
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Kaoru Hotate
December 16, 2019
Programming
5.2k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
費用対効果の高いテストコードを書くために意識したこと.pdf
2019/12/16 年末だよ Android/iOS Test Night - 2019
https://testnight.connpass.com/event/155429/
Kaoru Hotate
December 16, 2019
More Decks by Kaoru Hotate
See All by Kaoru Hotate
20240607_人を動かし続ける力_ピープルマネジメントへの内発的動機づけの工夫
hotatekaoru
2
460
20210528_MedPeer_事業成長を加速させたエンジニアリングのウラ側
hotatekaoru
0
1.3k
新規プロジェクトのリードエンジニアになるために
hotatekaoru
6
2.8k
リファクタリングチャンスを探せ
hotatekaoru
2
570
Dependabotからの脱却
hotatekaoru
0
530
Fat Modelに対処する 6つのリファクタリングパターン
hotatekaoru
13
4.9k
MobPro2Points
hotatekaoru
0
140
ViewModelをプロダクトに導入した🤖
hotatekaoru
1
240
僕らのリファクタリングは裏切らない
hotatekaoru
2
2.8k
Other Decks in Programming
See All in Programming
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
330
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.3k
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
120
Heart of Swift Concurrency
koher
0
860
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
340
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
190
AI Agent時代のリアーキテクチャ戦略と実践
hokaccha
9
4.6k
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
230
WebRTC映像をAirPlayに対応させる挑戦.pdf
monolithic_adam
0
270
LL言語やWebフレームワークのPostgreSQL対応 〜DBの機能がユーザーに届くまで〜
kentaroutakeda
1
150
{ Android | Kotlin } Gradle Plugin in 2026
ryunen344
1
320
AI に Inclusive UI を書かせよう — Design Rules Skill で Compose UI を作り直す
theoriatec2024
1
490
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
490
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
Side Projects
sachag
456
43k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Believing is Seeing
oripsolob
1
220
エンジニアに許された特別な時間の終わり
watany
109
250k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
360
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Practical Orchestrator
shlominoach
192
12k
First, design no harm
axbom
PRO
2
1.3k
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