PR:この記事にはアフィリエイトリンクが含まれます。
テスト駆動開発の本を探すなら、まず考えたいのは原則から読むか、使っている言語の実例から読むかです。TDDではテストを先に書き、その結果を手掛かりに実装を進めます。
テストを小さく書き、通すためのコードを加えたら設計を整える。このサイクルを繰り返すと、変更の影響を確かめながらソフトウェア開発を進められます。
ここではTDDの原典、Pythonとpytest、JavaとJUnit、既存コードの改善を扱う4冊を紹介します。仕事の課題に近い本から読むと、学んだ内容を試しやすいですよ。
4冊の概要
4冊が扱う技術と開発場面を先に一覧にしました。TDDの考え方を知りたい人と、特定の言語でテストを書きたい人では、読み始めやすい本も変わります。
| 書名 | 主な内容 | 参考価格(税込) |
|---|---|---|
テスト駆動開発 | TDDの原則、多国通貨の例、xUnit、開発パターン | 3,080円 |
テスト駆動Python 第2版 | Python、pytest、モック、CI、プラグイン | 3,300円 |
実践 JUnit 達人プログラマーのユニットテスト技法 | Java、JUnit、テスト設計、リファクタリング | 3,080円 |
レガシーコード改善ガイド | 既存コードの分析、テスト追加、安全な変更 | 4,620円 |
価格は税込の希望小売価格を目安にしています。販売価格は時期や店舗によって変わるため、購入時に各書店で確認してください。
4冊はテストという共通点を持ちながら、中心に据える内容は異なります。開発手法の原則、言語別のツール、既存コードの変更。知りたいテーマに応じて内容をつかめます。
TDDの基本
TDDでは、期待する振る舞いを小さなテストに書き、そのテストが通るよう実装を進めます。機能ができあがる前から、テストを繰り返して動作を確かめる方法です。
失敗を確かめた後、テストを通す最小限のコードを書き、成功したら重複や読みにくさを整理します。失敗、成功、整理の反復がTDDの基本です。
料金計算なら、通常の金額に加え、割引の適用や境界の値もテストできます。期待する結果を先に書くことで、コードを書き始める前に仕様の曖昧さが見えることもあります。
テストがあればバグがなくなる、というわけではありません。確認する観点が偏れば見落としも残ります。何を守るテストなのかを意識してください。
原典で学ぶ
オーム社の『テスト駆動開発』は、TDDの考案者Kent Beckの著作を和田卓人が訳した本です。2017年10月14日発売、344頁。特定の言語より、開発の考え方に軸を置いています。
多国通貨の例を追い、振る舞いをテストに表しながら実装を育てます。小さな変更を重ねる手順から、TDDの開発サイクルをつかめるでしょう。
次にxUnitの実装、さらにTDDのパターンへと進みます。テストフレームワークの操作手順に加えて、なぜこの順序で開発するのかを考えたい人に合います。
希望小売価格は税込3,080円です。特定の言語に寄らないTDDの考え方を学ぶ本なので、テストツールの操作を詳しく習得したい人には言語別の本が適しています。
Pythonで進める
翔泳社の『テスト駆動Python 第2版』は、Pythonとpytestを使う開発者向けです。Brian Okkenの著作を株式会社クイープが翻訳・監修し、安井力が監修しています。2022年8月30日発売、312ページです。
pytestの導入から、テストを準備するフィクスチャ、複数の入力を試すパラメータ化、外部依存を置き換えるモックへと進みます。テストコードへの組み込み方まで学べる実用的な内容です。
CIやプラグイン開発も扱います。CIはコードの変更をきっかけに、テストなどを自動実行する仕組みです。個人やチームでテストを回す場面を考えられます。
希望小売価格は税込3,300円です。Pythonでアプリやライブラリを開発し、pytestを仕事に取り入れたい人には実務へつなげやすい本。pytestの機能とテスト設計を学べます。
Javaで磨く
オライリー・ジャパンの『実践 JUnit 達人プログラマーのユニットテスト技法』は、JavaとJUnitを使う人向けです。Jeff Langr、Andy Hunt、Dave Thomasの著作を牧野聡が訳しています。2015年9月2日発売、272頁です。
ユニットテストの基礎から、FIRSTの考え方、境界条件、リファクタリングまで扱います。境界条件は値が切り替わる端の部分。たとえば「10件まで無料」なら、10件と11件を分けて確かめます。
Hamcrestによる検証やモックも登場します。実装の細部に結び付いたテストは、コードを整理するたびに多くの修正が必要になりがちです。テストが何を確かめるかを明確にすると、読みやすさを保てます。
希望小売価格は税込3,080円。JUnitの基礎に加え、テスト設計やTDDまで学びたいJavaプログラマにおすすめです。チームでテストの指針を共有するときにも、具体的な項目を話し合えます。
既存コードを守る
翔泳社の『レガシーコード改善ガイド』は、変更しにくい既存システムの保守や改修に携わる人に役立ちます。著者はMichael C. Feathers。2009年7月13日発売の472ページで、テストのないコードに変更の足場を作る視点が中心です。
複雑なコードを分析し、テストを追加して、機能変更やリファクタリングにつなげる技法を扱います。仕様書が古く、振る舞いがコードにしか残っていない現場では、現在の動きを確かめるテストが手掛かりになります。
TDDは第8章で取り上げられています。新しい機能をテストから開発する考え方に加え、テストを追加しづらい構造への向き合い方も学べます。保守担当者の仕事に近い内容です。
希望小売価格は税込4,620円で、4冊の中では最も高めです。既存コードの保守や改修が日常業務なら、TDDの入門書だけでは届きにくい課題にも役立ちます。古いシステムの変更を任された人におすすめします。
結論
TDDの原則を学ぶなら、Kent Beckの『テスト駆動開発』が第一候補です。Pythonならpytestを幅広く扱う『テスト駆動Python 第2版』、JavaならJUnitとテスト設計を学べる『実践 JUnit』が実務につながる一冊です。
既存システムの改修が中心なら、『レガシーコード改善ガイド』を読むと、テストを加える段階から考えられます。担当する言語や仕事の悩みに内容が重なる本ほど、読後に試す場面を思い描きやすいでしょう。
価格は希望小売価格を目安にし、購入時点の販売価格を確認してください。迷ったら、自分の開発で解決したいことを一つ挙げ、そのテーマを扱う本から読むのがおすすめです。
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。





