テスト駆動開発
テストクドウカイハツ
- 著者:
- Kent Beck / 和田 卓人(ケント ベック / ワダ タクト)
- 出版社:
- 株式会社オーム社
- 出版日:
- 2017年10月14日頃
- ISBN:
- 9784274217883
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
テスト駆動開発の原点が新訳で蘇る
本書は、自分たちのコードに自信を持って開発を続けたいプログラマ、チームリーダー向けに、テスト駆動開発 (TDD) の実践方法を解説した“Test-Driven Development By Example”の日本語版です。テスト駆動開発の考案者である Kent Beck 自身によって書かれた原典を、日本におけるテスト駆動開発の第一人者である和田卓人氏が訳しました。
テスト駆動開発とは単にテスト自動化を行うことではなく、ユニットテストとリファクタリングを両輪とした小さいサイクルを回すことで不確実性を制御し、不断の設計進化を可能にする手法であることを、実例を通して学ぶことができます。
まえがき
謝辞
はじめに
第 I 部 例題: 通貨オブジェクト
第 1 章 多国通貨オブジェクト
第 2 章 目標を手前に設定する
第 3 章 万人の平等
第 4 章 プライバシー
第 5 章 フランクに話すなら
第 6 章 万人の平等、再び
第 7 章 リンゴとオレンジ
第 8 章 オブジェクトを作る
第 9 章 times
第 10 章 times の実験
第 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 『テスト駆動開発』出版後の 15 年
参考文献
あとがき
訳者あとがき
著者・訳者について
技書の森解説
テストを先に書き、通るだけの実装を入れ、重複を取り除く。この小さなサイクルを考案者自身が一歩ずつ実演した原典が、『テスト駆動開発』 (Kent Beck 著、和田 卓人 訳、オーム社、2017 年 10 月刊) です。原書は Test-Driven Development By Example で、版元はこの本を、自分たちのコードに自信を持って開発を続けたいプログラマやチームリーダーに向けて、テスト駆動開発 (TDD) の実践方法を解説した日本語版と案内しています。単にテストを自動化する技法ではなく、ユニットテストとリファクタリングを両輪とした小さいサイクルで不確実性を制御し、設計を絶えず進化させる手法として学べるのが本書の位置づけです。
全 32 章、多国通貨と xUnit の 2 つの例題とパターン集
本文は 3 部 32 章です。第 I 部「多国通貨」 (1〜17 章) は、通貨の掛け算と足し算を扱うオブジェクトをテストから育てていく例題で、章題には「仮実装」「明白な実装」「三角測量」「歩幅の調整」といった、実装をどう進めるかの判断そのものが並びます。第 II 部「xUnit」 (18〜24 章) では、テストを動かすための仕組みである xUnit 型のテスティングフレームワークをテスト駆動で組み上げ、前準備と後片付け、失敗の扱い、スイートへのまとめ方を順に作ります。第 III 部「テスト駆動開発のパターン」 (25〜32 章) は、TODO リストやテストファースト、レッドバーとグリーンバーのパターン、Mock Object を含むテスティングのパターン、デザインパターン、リファクタリングの手法を項目ごとに整理した参照用のパートで、最終の 32 章「TDD を身につける」は一歩の大きさやテストを消すべき場面といった問いに答える形になっています。巻末には付録 A 因果ループ図、付録 B フィボナッチ、そして訳者による解説の付録 C が収められています。
「歩幅」を自分で調整できるようになる読みどころ
TDD の説明は「レッド、グリーン、リファクタリング」の 3 語で済んでしまいますが、実務で迷うのはその手前です。最初のテストに何を選ぶか、通すために定数を返すような仮実装で済ませてよいのか、いつ一般化に踏み込むのか。本書の第 I 部は、この判断を例題の中で一手ずつ見せる構成で、確信があるときは大股で明白な実装へ進み、不安なときは三角測量で小股に戻るという、歩幅を状況に応じて変える考え方が中心にあります。この感覚が身につくと、テストは品質確認の後工程ではなく、設計を少しずつ確かめる道具に変わります。第 III 部のパターン集は、例題で体験した判断に名前を与える役割を持つため、手を動かしたあとに読み返すと効き目が大きい部分です。
訳者による付録 C は、ユニットテストの普及と TDD の普及の関係、TDD から BDD への流れ、教条主義化と意味の希薄化といった論点を取り上げており、原著の刊行後に TDD がどう受け止められてきたかを日本語読者向けに整理しています。原典の主張と、その後の議論の両方を一冊で押さえられる点は、この日本語版ならではの価値です。
オブジェクト指向の基礎を前提に、例題を手で追う読み方
読み進めるには、クラスとオブジェクト、メソッドの呼び出し、等価性の比較といった オブジェクト指向 の基本が分かっていることが前提になります。例題は小さく、コードを自分の環境で一歩ずつ再現しながら読む形に向いています。逆に、テストの種類の使い分けやテスト戦略全体の設計、結合テストや E2E テストの比率を知りたい人には、本書は範囲が合いません。扱うのは開発者が手元で回す単位の小さなサイクルであり、組織としてのテスト計画は対象外です。テスト分野の本の中で位置づけを確かめたい場合は、テスト本の選び方 を先に眺めておくと、本書を読む目的がはっきりします。
テストを書いてはいるものの、後からまとめて書くせいで設計の役に立っていないと感じている人や、リファクタリングに踏み切れずコードが固まっていくことに悩んでいる人にとって、本書は考案者の判断の手順をそのまま追える一冊です。例題を自分の手で最後まで写し、第 III 部で判断に名前を付け直せば、日々のコードの書き方を変えるきっかけになります。
言及した記事 (92 件)
フロントエンドにおけるテスト駆動開発の実践と概説
♡ 268react, typescript, test, frontend, tdd十七人のアジャれる男
♡ 185TDD, アジャイル, XP, scrum, アジャイルソフトウェア開発宣言者初心者プログラマーの僕が、テスト駆動開発を愛する5つの理由
♡ 152TDD, 初心者, テスト駆動開発Pythonのunittestでハマったところと、もっと早くに知りたかったこと
♡ 113Python, テスト, unittest, Python3JUnitで学ぶ実践的で本質的なユニットテストの考え方
♡ 105Java, リファクタリング, JUnit, Mock, SpringBootメンタル向上特化型日記アプリ『3 Good Things!』をリリースしました!【個人開発】
♡ 95Firebase, React, 個人開発, PWA, Next.js壊れやすいテストとは? 「単体テストの考え方/使い方」(古典学派)と「実践テスト駆動開発」(ロンドン学派)を読んで考える
♡ 76test, mock, tdd, モック, noaiテスト駆動開発(TDD)でコードを書く
♡ 57typescript, jest, テスト駆動開発TDD(テスト駆動開発)をするぞという強い気持ちをもって新訳「テスト駆動開発」を読んでいるお話
♡ 57Rails, TDD, RSpec, ポエム, テスト駆動開発ドメインモデリングの1歩目としてテスト駆動開発(TDD)を導入してみた
♡ 51tdd, スタートアップ, ドメインモデリング, テスト駆動開発
この本は技書デッキのカードです (備え 4 / 流儀: 備えの持ち越し) 図鑑でこの本を見る
この本に興味がある方におすすめ
関連する本
関連記事
テスト本ガイド - テスト設計を学べる技術書の選び方
テストの書き方からテスト戦略まで学べる技術書の選び方を紹介。テストピラミッド、TDD の正しい読み方、テストの ROI の考え方を解説します。
「動くコード」と「良いコード」の間にある本
コードが動くようになった後、次に何を学べばよいのか。「動くコード」を「良いコード」に変えるために必要な知識と、それを効率的に学べる本の選び方を解説します。
バグを生むのは知識不足ではなく想像力不足である
バグの多くは、コードを書いた時点で「こういうケースもありうる」と想像できなかったことが原因です。想像力を鍛える読書法と、エッジケースへの感度を高める方法を解説します。