本書は、自分たちのコードに自信を持って開発を続けたいプログラマ、チームリーダー向けに、テスト駆動開発(TDD)の実践方法を解説した“Test-Driven Development By Example”の日本語版です。テスト駆動開発の考案者であるKent Beck自身によって書かれた原典を、日本におけるテスト駆動開発の第一人者である和田卓人氏が訳しました。
テスト駆動開発とは単にテスト自動化を行うことではなく、ユニットテストとリファクタリングを両輪とした小さいサイクルを回すことで不確実性を制御し、不断の設計進化を可能にする手法であることを、実例を通して学ぶことができます。
https://www.ohmsha.co.jp/book/9784274217883/
正誤表やDLデータ等がある場合はこちらに掲載しています
まえがき
謝辞
はじめに
第I部 多国通貨
第1章 仮実装
第2章 明白な実装
第3章 三角測量
第4章 意図を語るテスト
第5章 原則をあえて破るとき
第6章 テスト不足に気づいたら
第7章 疑念をテストに翻訳する
第8章 実装を隠す
第9章 歩幅の調整
第10章 テストに聞いてみる
第11章 不要になったら消す
第12章 設計とメタファー
第13章 実装を導くテスト
第14章 学習用テストと回帰テスト
第15章 テスト任せとコンパイラ任せ
第16章 将来の読み手を考えたテスト
第17章 多国通貨の全体ふりかえり
第II部 xUnit
第18章 xUnitへ向かう小さな一歩
第19章 前準備
第20章 後片付け
第21章 数え上げ
第22章 失敗の扱い
第23章 スイートにまとめる
第24章 xUnitの全体ふりかえり
第III部 テスト駆動開発のパターン
第25章 テスト駆動開発のパターン
第26章 レッドバーのパターン
第27章 テスティングのパターン
第28章 グリーンバーのパターン
第29章 xUnitのパターン
第30章 デザインパターン
第31章 リファクタリング
第32章 TDDを身につける
付録A 因果ループ図
付録B フィボナッチ
付録C 訳者解説:テスト駆動開発の現在
参考文献
あとがき
訳者あとがき
索引
著者・訳者について
まえがき
勇気
謝辞
はじめに
第I部 多国通貨
第1章 仮実装
第2章 明白な実装
第3章 三角測量
第4章 意図を語るテスト
第5章 原則をあえて破るとき
第6章 テスト不足に気づいたら
第7章 疑念をテストに翻訳する
第8章 実装を隠す
第9章 歩幅の調整
第10章 テストに聞いてみる
第11章 不要になったら消す
第12章 設計とメタファー
第13章 実装を導くテスト
第14章 学習用テストと回帰テスト
第15章 テスト任せとコンパイラ任せ
第16章 将来の読み手を考えたテスト
第17章 多国通貨の全体ふりかえり
ここから先はどうなるのか
メタファー
JUnitの使用状況
コードメトリクス
プロセス
テスト品質
最後のふりかえり
第II部 xUnit
第18章 xUnitへ向かう小さな一歩
第19章 前準備
第20章 後片付け
第21章 数え上げ
第22章 失敗の扱い
第23章 スイートにまとめる
第24章 xUnitの全体ふりかえり
第III部 テスト駆動開発のパターン
第25章 テスト駆動開発のパターン
テスト(名詞)
独立したテスト
TODOリスト
テストファースト
アサートファースト
テストデータ
明示的なデータ
第26章 レッドバーのパターン
一歩を示すテスト
はじめのテスト
説明的なテスト
学習用テスト
脱線はTODOリストへ
回帰テスト
休憩
やり直す
安い机に良い椅子
第27章 テスティングのパターン
小さいテスト
Mock Object(擬装オブジェクト)パターン
Self Shunt(自己接続)パターン
Log String(記録用文字列)パターン
Crash Test Dummy(衝突実験ダミー人形)パターン
失敗させたままのテスト
きれいなチェックイン
第28章 グリーンバーのパターン
仮実装を経て本実装へ
三角測量
明白な実装
一から多へ
第29章 xUnitのパターン
アサーション
フィクスチャー
外部フィクスチャー
テストメソッド
例外のテスト
まとめてテスト
第30章 デザインパターン
Commandパターン
Value Objectパターン
Null Objectパターン
Template Methodパターン
Pluggable Objectパターン
Pluggable Selectorパターン
Factory Methodパターン
Imposterパターン
Compositeパターン
Collecting Parameterパターン
Singletonパターン
第31章 リファクタリング
差異をなくす
変更の分離
データ構造の変更
メソッドの抽出
メソッドのインライン化
インタフェースの抽出
メソッドの移動
メソッドオブジェクト
パラメータの追加
メソッドからコンストラクタへのパラメータの移動
第32章 TDDを身につける
一歩の大きさはどのくらいか
テストしなくてよいものはあるか
良いテストを見分けることができるか
TDDはどのようにフレームワークを導くか
どのくらいのフィードバックが必要か
どのようなときにテストを消すべきか
プログラミング言語や環境はTDDに影響するか
巨大なシステムをテスト駆動できるか
アプリケーションレベルのテストで開発を駆動できるか
途中からTDDに乗り換えるにはどうすればよいか
TDDは誰のためのものか
TDDは初期状況に左右されるか
TDDとパターンの関係
なぜTDDは機能するのか
名前の由来は
TDDとXP(eXtreme Programming)のプラクティスとの関係
Darachの挑戦
付録A 因果ループ図
フィードバック
付録B フィボナッチ
付録C 訳者解説:テスト駆動開発の現在
ユニットテストの普及とテスト駆動開発の普及
ユニットテスト周辺の知識の整理とTDD拡張の試み
TDDのTは「テスト」の一部に過ぎない
TDDからBDDへ
教条主義化と意味の希薄化
これから
参考文献
あとがき
訳者あとがき
索引
著者・訳者について