関連サイト
本書の関連ページが用意されています。
内容紹介
本書は、自分たちのコードに自信を持って開発を続けたいプログラマ、チームリーダー向けに、テスト駆動開発(TDD)の実践方法を解説した“Test-Driven Development By Example”の日本語版です。テスト駆動開発の考案者であるKent Beck自身によって書かれた原典を、日本におけるテスト駆動開発の第一人者である和田卓人氏が訳しました。
テスト駆動開発とは単にテスト自動化を行うことではなく、ユニットテストとリファクタリングを両輪とした小さいサイクルを回すことで不確実性を制御し、不断の設計進化を可能にする手法であることを、実例を通して学ぶことができます。
書誌情報
- 著者: Kent Beck(著), 和田卓人(訳)
- 発行日: 2017-10-20 (紙書籍版発行日: 2017-10-20)
- 最終更新日: 2017-10-20
- バージョン: 1.0.0
- ページ数: 344ページ(PDF版換算)
- 対応フォーマット: PDF, EPUB
- 出版社: オーム社
対象読者
テスト駆動開発に興味があるプログラマ、アジャイルソフトウェア開発手法に興味があるソフトウェア開発者
著者について
Kent Beck
ソフトウェア産業において最も創造的で称賛されているリーダーのひとりであり、パターン、エクストリームプログラミング、テスト駆動開発を、情熱をもって実践している。著書に次のようなベストセラーがある:Smalltalk Best Practice Patterns [Be97]、Extreme Programming Explained [Be00]、Planning Extreme Programming [BF01]。Refactoring [FB99] にも貢献している。
和田卓人
タワーズ・クエスト株式会社取締役社長、プログラマ、テスト駆動開発者。学生時代にソフトウェア工学を学び、オブジェクト指向分析・設計に傾倒する。その後さまざまな縁に導かれソフトウェアパターンやXP を実践する人たちと出会い、後のテスト駆動開発の誕生を知る。テスト駆動開発に「完璧主義の呪い(完璧な設計を得るまではコードを書けないし良いシステムも出来ないという強迫観念)」を解いてもらってからは、文章や講演、ハンズオンイベントなどを通じてテスト駆動開発の啓蒙に努める。今日もグリーンバンド(テスト駆動開発者の証)を左手に着け、テストと共にコードを書いている。『プログラマが知るべき97 のこと』(オライリー・ジャパン、2010)監修、『SQL アンチパターン』(オライリー・ジャパン、2013)監訳。
目次
まえがき
- 勇気
謝辞
はじめに
第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へ
- 教条主義化と意味の希薄化
- これから