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
書評: 単体テストの考え方/使い方
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
mikan
August 26, 2023
Technology
520
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
書評: 単体テストの考え方/使い方
HACK.BAR 8/26の発表資料です
https://hackbar.connpass.com/event/290968/
mikan
August 26, 2023
More Decks by mikan
See All by mikan
Lazy APIを使ってGradleビルド速度を改善する
mikanichinose
1
75
Navigation3でViewModelにデータを渡す方法
mikanichinose
0
700
「脳に収まるコードの書き方」を読んで学んだこと
mikanichinose
1
220
RepositoryのSSoT化
mikanichinose
0
94
Kotlin Multiplatform 始めました
mikanichinose
1
150
Web APIをなぜつくるのか
mikanichinose
0
3.9k
イベントをどう管理するか
mikanichinose
3
410
ライブラリでしかお目にかかれない珍しい実装
mikanichinose
2
510
Strong Skipping Mode によってrecompositionはどう変わったのか
mikanichinose
0
410
Other Decks in Technology
See All in Technology
はてなのサービス基盤を支える Kubernetes《足腰》
masayoshimaezawa
0
440
テスト設計の本質を改めて考えてみる~生成AIを活用する時代だからこそ、作ったテストの説明性を高めよう~
yamasaki696
1
290
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
120
AWS Summit の片隅で、体育座りしながらコミュニティがにぎわう理由を考えた
k_adachi_01
2
350
AI Agent SaaS を支える自社仮想化基盤への挑戦と実運用 / ai-agent-saas-virtualization
flatt_security
2
1.1k
5分でわかる Amazon Connect_20260608
hwangbyeonghun
0
180
プロンプト_きのこカンファレンス2026_LT
yurufuwahealer
0
140
本当の”仕事”を手放せる未来が見えた
mu7889yoon
0
220
SRE依存からの脱却 運用を開 発チームへ移す、 フルサイ クル開 発体制の実践
joooee0000
0
180
Tech-Verse 2026_Keynote
lycorptech_jp
PRO
0
130
小さいから、全部わかる。— 常駐AI "xangi" のすすめ
sugupoko
0
260
從觀望到全公司落地:AI Agentic Coding 導入實戰 — 流程整合與安全治理
appleboy
1
780
Featured
See All Featured
Believing is Seeing
oripsolob
1
160
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
28
3.5k
The Limits of Empathy - UXLibs8
cassininazir
1
390
Why Our Code Smells
bkeepers
PRO
340
58k
Abbi's Birthday
coloredviolet
3
8.5k
Practical Orchestrator
shlominoach
191
11k
Into the Great Unknown - MozCon
thekraken
41
2.6k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
270
Technical Leadership for Architectural Decision Making
baasie
3
430
Facilitating Awesome Meetings
lara
57
7k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.3k
Transcript
書評 : 単体テストの考え方 / 使い方 HACK.BAR 福岡 08/26 mikan( 一瀬喜弘)
自己紹介 object Mikan { val name = " 一瀬喜弘" val
company = "karabiner.tech" val hobby = listOf( " 漫画", " アニメ", " ゲーム", " 折り紙", "OSS 開発・コントリビュート", ) }
今日は この本の 紹介をします
まず始めに
エンジニア 全員 読んだほうがいい
None
t_wada さんもニッコリ 「この本を読めば私が言いそうなことが結構 載っている」 「失職の危機その1 」
この本を読むと以下のような疑問を解決してくれます " 単体" テストってどういう粒度なんだ? テストメソッドの命名ってなにが正しいんだ? " 良い" 単体テストを書くためには何を意識すればいいのか? モックとかスタブの使って良いとき/ 悪いときっていつだ?
前提認識 プロダクションコードもテストコードも全て 負債 書けば書くほど保守性は下がる = 次の開発はより時間がかかる確立が高くなる
テストの必要性
テストの必要性 開発を持続可能にする
持続可能とは?
持続不可能な状態 = 次の開発に 掛かるコストが無限大
None
無限大に発散しないようにする 戦略が 自動 テスト ` `
単体テストとは ?
単体と呼ばれる少量のコードを検証する 実行時間が短い 隔離された状態で実行可能
" 隔離された状態 " ?
" 単体 " ?
古典学派 vs ロンドン学派
古典学派
隔離 = 他のテストケースが影響 を与えないように隔離する 順番を変えても結果が同じ 依存はテストケース実行前に毎回作る
単体 = 振る舞い あるインプットを与えたときに期待したアウ トプットが出てくることを検証する 戻り値 or 状態 を検証
ロンドン学派
隔離 = テスト対象をそれ以外の 依存から隔離する 依存はすべてモックにする
単体 = クラス アウトプットが期待通りか 協力者オブジェクトのメソッドを決った回数 実行したか
この本は古典学派の立場を取っています → 理由は読んだら書いてあります
良いテストコードは 4 つの性質を持っている リファクタリング耐性 リグレッションに対する保護 迅速なフィードバック 保守性 → どのようなバランスで持つべきなのかが解説してある
最後に
全員読みましょう