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
mikan
August 26, 2023
Technology
0
270
書評: 単体テストの考え方/使い方
HACK.BAR 8/26の発表資料です
https://hackbar.connpass.com/event/290968/
mikan
August 26, 2023
Tweet
Share
More Decks by mikan
See All by mikan
Kotlin Multiplatform 始めました
mikanichinose
1
120
Web APIをなぜつくるのか
mikanichinose
0
1.8k
イベントをどう管理するか
mikanichinose
3
280
ライブラリでしかお目にかかれない珍しい実装
mikanichinose
2
400
Strong Skipping Mode によってrecompositionはどう変わったのか
mikanichinose
0
240
Modeling UiEvent
mikanichinose
0
50
UIの構成要素に関する考察
mikanichinose
0
52
再考: 監視可能オブジェクト
mikanichinose
0
65
マルチモジュール懐疑派だったかつての自分に送る マルチモジュールの効能
mikanichinose
0
210
Other Decks in Technology
See All in Technology
Two Blades, One Journey: Engineering While Managing
ohbarye
4
2k
php-conference-nagoya-2025
fuwasegu
0
150
Goで作って学ぶWebSocket
ryuichi1208
3
2.8k
1行のコードから社会課題の解決へ: EMの探究、事業・技術・組織を紡ぐ実践知 / EM Conf 2025
9ma3r
11
3.8k
Share my, our lessons from the road to re:Invent
naospon
0
140
実は強い 非ViTな画像認識モデル
tattaka
3
1.3k
AIエージェント元年@日本生成AIユーザ会
shukob
1
210
Cracking the Coding Interview 6th Edition
gdplabs
14
28k
AWSを活用したIoTにおけるセキュリティ対策のご紹介
kwskyk
0
350
ABWG2024採択者が語るエンジニアとしての自分自身の見つけ方〜発信して、つながって、世界を広げていく〜
maimyyym
1
180
4th place solution Eedi - Mining Misconceptions in Mathematics
rist
0
150
生成AI×財務経理:PoCで挑むSlack AI Bot開発と現場巻き込みのリアル
pohdccoe
1
730
Featured
See All Featured
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.6k
Side Projects
sachag
452
42k
Scaling GitHub
holman
459
140k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
114
50k
Agile that works and the tools we love
rasmusluckow
328
21k
A Modern Web Designer's Workflow
chriscoyier
693
190k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.3k
The World Runs on Bad Software
bkeepers
PRO
67
11k
GraphQLとの向き合い方2022年版
quramy
44
14k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.1k
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 つの性質を持っている リファクタリング耐性 リグレッションに対する保護 迅速なフィードバック 保守性 → どのようなバランスで持つべきなのかが解説してある
最後に
全員読みましょう