$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
書評: 単体テストの考え方/使い方
Search
mikan
August 26, 2023
Technology
0
390
書評: 単体テストの考え方/使い方
HACK.BAR 8/26の発表資料です
https://hackbar.connpass.com/event/290968/
mikan
August 26, 2023
Tweet
Share
More Decks by mikan
See All by mikan
Navigation3でViewModelにデータを渡す方法
mikanichinose
0
520
「脳に収まるコードの書き方」を読んで学んだこと
mikanichinose
1
150
RepositoryのSSoT化
mikanichinose
0
64
Kotlin Multiplatform 始めました
mikanichinose
1
130
Web APIをなぜつくるのか
mikanichinose
0
3.2k
イベントをどう管理するか
mikanichinose
3
380
ライブラリでしかお目にかかれない珍しい実装
mikanichinose
2
470
Strong Skipping Mode によってrecompositionはどう変わったのか
mikanichinose
0
350
Modeling UiEvent
mikanichinose
0
100
Other Decks in Technology
See All in Technology
AI with TiDD
shiraji
1
270
MariaDB Connector/C のcaching_sha2_passwordプラグインの仕様について
boro1234
0
1k
たまに起きる外部サービスの障害に備えたり備えなかったりする話
egmc
0
400
『君の名は』と聞く君の名は。 / Your name, you who asks for mine.
nttcom
1
110
通勤手当申請チェックエージェント開発のリアル
whisaiyo
3
440
Building Serverless AI Memory with Mastra × AWS
vvatanabe
0
470
Connection-based OAuthから学ぶOAuth for AI Agents
flatt_security
0
350
"人"が頑張るAI駆動開発
yokomachi
1
120
AWSに革命を起こすかもしれない新サービス・アップデートについてのお話
yama3133
0
500
TED_modeki_共創ラボ_20251203.pdf
iotcomjpadmin
0
140
JEDAI認定プログラム JEDAI Order 2026 エントリーのご案内 / JEDAI Order 2026 Entry
databricksjapan
0
180
ハッカソンから社内プロダクトへ AIエージェント ko☆shi 開発で学んだ4つの重要要素
leveragestech
0
100
Featured
See All Featured
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
69
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
0
2.2k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
190
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
310
The Art of Programming - Codeland 2020
erikaheidi
56
14k
Into the Great Unknown - MozCon
thekraken
40
2.2k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
88
Mobile First: as difficult as doing things right
swwweet
225
10k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
0
100
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
120
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 つの性質を持っている リファクタリング耐性 リグレッションに対する保護 迅速なフィードバック 保守性 → どのようなバランスで持つべきなのかが解説してある
最後に
全員読みましょう