トレーニング予約 お問い合わせ

テスト駆動開発に関する
おすすめのスクラム本

アジャイルやスクラムをはじめようと思ったとき、はじめたばかりのとき、実際にはじめてみて壁にぶつかったとき、さまざまなシーンで、インターネットの記事や資料、書籍を探して読んでいるでしょう。

今回は、スクラム開発でも特に「スクラムチームにおける開発者(エンジニア・技術者・プログラマ)」のみなさんにとってぜひお役立ていただきたい本をご紹介します。

特に、テスト駆動開発(TDD)、リファクタリング、オブジェクト指向設計、受け入れテスト駆動開発(A-TDD)、エクストリームプログラミング(XP)、自動化、デザインパターンなど、技術的事項をジャンルに区切り、また、「プログラマとしての姿勢」や「チームワーク」に至るまで、開発者のみなさんにぜひ一度は読んでいただきたい本を紹介いたします。

テスト駆動開発(TDD)に関するおすすめのスクラム本

テスト駆動開発 (test-driven development:TDD)とは、プログラム開発手法のひとつです。

製品のプログラムを書く前に、仕様をテストコードで定義し、そのテストが通るように製品のプログラムを書いていくテストファーストな開発手法です。実装前に書いたテストコードに適合するように実装とリファクタリングを進めていくこの開発手法は、答えを先につくり、その答えにたどり着くための方法を書いていくという、通常の概念とはまったく逆の発想から来る開発手法です。

テストコードの定義、実装、コードの洗練という短い工程を繰り返すこのスタイルは、多くのアジャイルソフトウェア開発手法、スクラム(Scrum)開発においても強く推奨されています。


Test Driven: TDD and Acceptance TDD for Java Developers Lasse Koskela (著)

テスト駆動開発 (TDD)の概要についてわかりやすく書かれた本書は、以下のような具体的手法を網羅しているため、TDDの初心者にとっても馴染みやすい1冊です。

TDDに慣れたエンジニアにとっても、あまり知られていない効果的な技術を会得するために役立つ内容となっています。

  • Javaでの実践方法(Learn hands-on to test drive Java code)
  • TDDの落とし穴の回避方法(How to avoid common TDD adoption pitfalls)
  • 受け入れテスト駆動開発とFitフレームワーク(Acceptance test driven development and the Fit framework)
  • Java EEコンポーネント、サーブレット、JSP、Springコントローラーをテストする方法(How to test Java EE components-Servlets, JSPs, and SpringControllers)
  • マルチスレッドプログラムやデータアクセスコードなどの難しい問題(Tough issues like multithreaded programs and data access code)

■ 著者

ラッセ・コスケラ(Lasse Koskela)

ラッセ・コスケラはフィンランドのアジャイルコミュニティの先駆者の一人で、国際的なカンファレンスに頻繁に登壇しています。

リアクター社(Reaktor)にて、ソフトウェア開発プログラマー、コンサルタント、コーチ、トレーナー、プラクティショナーとして、さまざまなソフトウェアプロジェクトに従事しています。TDDの草創期から活動してきたエンジニアの一人で、認定スクラムトレーナー(CST®)として研修を提供し、現場での指導を通じてパフォーマンスの向上や継続的な学習文化の確立を担っています。


実践テスト駆動開発 (Object Oriented SELECTION) Steve Freeman(著)、Nat Pryce(著)、和智 右桂(翻訳)、高木 正弘(翻訳)

「20年来の経験に裏打ちされた、実践的テスト駆動開発書」と銘打たれた本書は、

  • いかにしてテスト駆動開発をプロジェクトに適合させればよいか
  • どこから手を付けるか
  • ユニットテストとエンドツーエンドテストを両方とも書かねばならないのはなぜか
  • テストに開発を駆動させるとはどういう意味か

といった、プロジェクトで遭遇しがちな疑問に道筋を与え、ソフトウェアを肥大化させずに「育てる方法」が書かれています。

プロフェッショナルを目指す開発者は、ぜひ手にとってみてください。

■ 著者

スティーブ・フリーマン(Steve Freeman)

アジャイルソフトウェア開発を専門とする独立コンサルタント。
ナット・プライスと共に、2006年にアジャイル・アライアンスのゴードンパスク賞を受賞している。
「London Extreme Tuesday Club」の設立メンバーであると同時に、「London XP Day」初回の議長を務めている。
国際会議を頻繁に主催したり、あるいは国際会議で登壇したりしている。
IBMのパッケージ開発から有名な研究所でのプロトタイプ開発に至るまで、実に幅広い組織で仕事をしてきている。

ナット・プライス(Nat Pryce)

インペリアル・カレッジの博士号取得。
プログラマ、アーキテクト、トレーナー、コンサルタントとして活動している。
学術的な研究プロジェクトにも従事し、時折大学で教鞭もとっている。XPは早くから採用しており、TDDをサポートするオープンソースライブラリにもいくつか貢献している。さらに「London XP Day」カンファレンスの設立メンバーの一人でもある。また、定期的に国際会議で登壇もしている。
ロンドンに拠点を置いている。


xUnit Test Patterns: Refactoring Test Code Gerard Meszaros(著)

近年最も有名なユニットテストのフレームワークであるxUnit。本書は、そのxUnitを用いた自動テストについて書かれたガイドの決定版と言えるでしょう。

アジャイルコーチであり、自動テストのエキスパートであるジェラルド・メーサーロシュは、本書の中で、コードを書く → 理解する → それらを維持するための68ものパターンを説明してくれます。さらに彼は、それらを繰り返しに耐えられる屈強かつ費用対効果の高いものとする方法を紹介しています。

本書は以下のようなトピックから構成されています。

  • より良いテストを書く - そしてより早く書く(Writing better tests--and writing them faster)
  • 自動テストの4つのフェーズ:セットアップ、実行、検証、解体(The four phases of automated tests: fixture setup, exercising the system under test, result verification, and fixture teardown)
  • テストスタブとモックオブジェクトを使用してソフトウェアを環境から分離し、テストカバレッジを向上させる方法(Improving test coverage by isolating software from its environment using Test Stubs and Mock Objects)
  • テスト容易性向上のためのソフトウェア設計(Designing software for greater testability)
  • 「テストスメル」を用いて問題を特定し、排除する方法(Using test "smells" to spot problems and know when and how to eliminate them)
  • シンプルさ、堅牢性、実行速度を向上させるためのリファクタリングテスト(Refactoring tests for greater simplicity, robustness, and execution speed)
■ 著者

ジェラルド・メーサーロシュ(Gerard Meszaros)

ジェラルド・メーサーロシュは、ClearStream Consulting社のチーフサイエンティスト兼シニアコンサルタントであり、カルガリーを拠点とするアジャイル開発のエキスパートです。
テスト駆動開発の長い経験を持ち、パターン、ソフトウェアリファクタリング、テスト設計の先駆者として知られています。


テスト駆動開発入門 ケント ベック(著)

本書では、エクストリーム・プログラミング(XP)の中で、ペアプログラミングと並んで重要であると言える「テストファースト」「リファクタリング」の2要素に焦点を当て、テスト駆動開発について具体的に解説をしています。

■ 著者

ケント・ベック (Kent Beck)

ケント・ベックはエクストリーム・プログラミング (XP) の考案者であり、アジャイルマニフェストの起草者の一人です。デザインパターン、テスト駆動開発、Smalltalkに関する著作で知られています。ウォード・カニンガムと共にCRCカードを普及させ、Smalltalk用ユニットテストフレームワーク「SUnit」を開発。さらにエーリヒ・ガンマと共同で「JUnit」を開発しました。オレゴン大学にてコンピュータサイエンスの修士号を取得しています。


Test-Driven Development: A Practical Guide David Astels(著)

本書は、プログラマーのための真のプロジェクト、真のチャレンジ、真のソリューション、真のコードを実現するためのTDD実践書です。

JavaとJUnitを用いたTDDの1から10まで網羅されており、TDDを推し進めるために本当に役立つ、リファクタリングやモックオブジェクト、意図的なプログラミング(Intentional Programming)のためのツールやテクニックが紹介されています。

C++、C#/.NET、Python、VB6、RubyやSmalltalkのためのTDDフレームワークも紹介されており、より良いコードを書く楽しさを実感できることでしょう。

■ 著者

デイブ・アステルス(David Astels)

デイブ・アステルスは、ChannelFireball.comのテクノロジーディレクターを務める傍ら、ソフトウェア開発者として20年以上の経験を持ち、10年以上に渡ってオブジェクト技術に専従しています。XP(Extreme Programming)に特化した自身の会社を通じてJavaソリューションの普及に努めており、著書に『A Practical Guide to Extreme Programming』があります。


Effective Unit Testing: A guide for Java developers Lasse Koskela (著)

本書には、良いテストの書き方が紹介されています。
良いテストとは、ポイントが簡潔であり、表現力が豊かで、有用で、かつメンテナンスが可能であるテストのことを指します。

ロイ・オシェローブのベストセラー「The Art of Unit Testing」にインスパイアされた本書には、特にJavaの世界のツールやプラクティスにフォーカスしており、振る舞い駆動開発(BDD)のような新しいテクニックが例とともに書かれています。

■ 著者

ラッセ・コスケラ(Lasse Koskela)

ラッセ・コスケラはフィンランドのアジャイルコミュニティの先駆者の一人で、国際的なカンファレンスに頻繁に登壇しています。

リアクター社(Reaktor)にて、ソフトウェア開発プログラマー、コンサルタント、コーチ、トレーナー、プラクティショナーとして、さまざまなソフトウェアプロジェクトに従事しています。TDDの草創期から活動してきたエンジニアの一人で、認定スクラムトレーナー(CST®)として研修を提供し、現場での指導を通じてパフォーマンスの向上や継続的な学習文化の確立を担っています。


Odd-e Japanでは、
テスト駆動開発
(test-driven development:TDD)について
実践的に学んでいただける認定スクラムデベロッパー(CSD®)研修・トレーニングを開催しています。

認定スクラムデベロッパー(CSD®)研修・トレーニングとは

概要
スクラムの開発チームメンバーとして、正しくかつ効率的に恊働できる人材育成を目的として Scrum Alliance® により作られた、体系的ソフトウェア開発者の教育・認定プログラム。
スクラムの原理原則を理解して、実際に恊働できる能力が Scrum Alliance® が規定した水準を満たしている事を証明します。
学べること
実際に理想的なスクラム開発チームの1週間のスプリントを体験する過程で、小さなアプリケーションを構築しながら、適切な知識や技術、チームとして効率的に働く習慣を得るでしょう。
本コースでは、トレーニング中にアジャイルコーチからコーチングも受けられるので、実践での悩みも相談できます。
詳しくはこちら
Odd-e Japan トレーニング申込み
認定スクラムデベロッパー(CSD®)研修・トレーニングとは
Certified Scrum Developer®(CSD®)- Scrum Alliance®
研修・トレーニングプログラム
スクラム(Scrum)のプラクティス
− イントロダクション
− スクラムの概要
− チームとのコラボレーション
技術的なプラクティス
− 技術
− TDD (Test-Driven Development)
− CI (Continuous Integration)
− ATDD (Acceptance Test-Driven Development)
− Refactoring
− スクラムのスケーリング
認定スクラムデベロッパー(CSD®)資格取得
本資格の取得には、Scrum Alliance®が定めた5日間の研修・トレーニングを受講いただきます。2日間でスクラムの原理原則を理解いただき、残りの3日間でソフトウェア開発者として必要な技術的な教育を行います。

Get Your Certification

各種トレーニングについては
以下のリンク先よりお申し込みください。