Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
書評 : 単体テストの考え方 / 使い方 HACK.BAR 福岡 08/26 mikan( 一瀬喜弘)
Slide 2
Slide 2 text
自己紹介 object Mikan { val name = " 一瀬喜弘" val company = "karabiner.tech" val hobby = listOf( " 漫画", " アニメ", " ゲーム", " 折り紙", "OSS 開発・コントリビュート", ) }
Slide 3
Slide 3 text
今日は この本の 紹介をします
Slide 4
Slide 4 text
まず始めに
Slide 5
Slide 5 text
エンジニア 全員 読んだほうがいい
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
t_wada さんもニッコリ 「この本を読めば私が言いそうなことが結構 載っている」 「失職の危機その1 」
Slide 8
Slide 8 text
この本を読むと以下のような疑問を解決してくれます " 単体" テストってどういう粒度なんだ? テストメソッドの命名ってなにが正しいんだ? " 良い" 単体テストを書くためには何を意識すればいいのか? モックとかスタブの使って良いとき/ 悪いときっていつだ?
Slide 9
Slide 9 text
前提認識 プロダクションコードもテストコードも全て 負債 書けば書くほど保守性は下がる = 次の開発はより時間がかかる確立が高くなる
Slide 10
Slide 10 text
テストの必要性
Slide 11
Slide 11 text
テストの必要性 開発を持続可能にする
Slide 12
Slide 12 text
持続可能とは?
Slide 13
Slide 13 text
持続不可能な状態 = 次の開発に 掛かるコストが無限大
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
無限大に発散しないようにする 戦略が 自動 テスト ` `
Slide 16
Slide 16 text
単体テストとは ?
Slide 17
Slide 17 text
単体と呼ばれる少量のコードを検証する 実行時間が短い 隔離された状態で実行可能
Slide 18
Slide 18 text
" 隔離された状態 " ?
Slide 19
Slide 19 text
" 単体 " ?
Slide 20
Slide 20 text
古典学派 vs ロンドン学派
Slide 21
Slide 21 text
古典学派
Slide 22
Slide 22 text
隔離 = 他のテストケースが影響 を与えないように隔離する 順番を変えても結果が同じ 依存はテストケース実行前に毎回作る
Slide 23
Slide 23 text
単体 = 振る舞い あるインプットを与えたときに期待したアウ トプットが出てくることを検証する 戻り値 or 状態 を検証
Slide 24
Slide 24 text
ロンドン学派
Slide 25
Slide 25 text
隔離 = テスト対象をそれ以外の 依存から隔離する 依存はすべてモックにする
Slide 26
Slide 26 text
単体 = クラス アウトプットが期待通りか 協力者オブジェクトのメソッドを決った回数 実行したか
Slide 27
Slide 27 text
この本は古典学派の立場を取っています → 理由は読んだら書いてあります
Slide 28
Slide 28 text
良いテストコードは 4 つの性質を持っている リファクタリング耐性 リグレッションに対する保護 迅速なフィードバック 保守性 → どのようなバランスで持つべきなのかが解説してある
Slide 29
Slide 29 text
最後に
Slide 30
Slide 30 text
全員読みましょう