テスト駆動開発を学ぶためにどの本を勧めますか?言語にとらわれないことが望ましい。
Growing Object-Oriented Software、Guided by Tests Addison-Wesley氏-フレームワークのモック-特にJMockとHamcrestについてです。
本の説明から:
Steve FreemanとNat Pryceは、彼らが使用するプロセス、彼らが達成しようと努める設計原則、そして彼らが仕事を成し遂げるのを助けるいくつかのツールについて説明しています。機能する拡張された例を通して、テストを使用して機能とコードのオブジェクト指向構造を駆動し、モックオブジェクトを使用してオブジェクト間の関係を発見して説明することで、TDDが複数のレベルでどのように機能するかを学びます。途中で、この本は、開発チームがTDDに遭遇する課題を体系的に扱います-TDDをプロセスに統合することから、最も難しい機能をテストすることまで。
編集:私は現在読んでいます レガシーコードで効果的に動作する Michael Feathersによるこれはかなり良いです。本の説明から:
- ソフトウェア変更のメカニズムの理解:機能の追加、
バグの修正、設計の改善、パフォーマンスの最適化- レガシーコードをテストハーネスに取り込む
- 新しい問題の発生を防ぐテストを書く
- この本には、プログラム要素を分離して操作し、より安全な変更を行うのに役立つ24の依存関係を破壊する手法のカタログも含まれています。
私はすでに読んでいますが、これは私が今まで読んだ中で最高のプログラミングの本の1つです(個人的には、リファクタリングをテスト容易性と呼ぶ必要があると思います。コードをテスト可能にするプロセスを説明しています)。テスト可能なコードは良いコードだからです。
私にとって、これは最高のものです:
かなり最近になって書かれた本 The Art of Unit Testing 。ここで言及されていないことに驚いています。
アステルスの本 は確かな導入であり、 ベックの本 は基礎となる概念に優れています Lasse Koskelaは新しいものを持っています(テスト駆動:TDDおよびAcceptance TDD for Java Developers) 。 Osheroveの本 は、彼が言うように、TDDではなく単体テストに関するものです。PragmaticsのTDDブックであるかどうかはわかりません元の本と同様に老化しています。
ほとんどすべてがJavaまたはC#ですが、自分で理解できるはずです。
私は Pragmatic Bookshelf からのほとんどすべての大ファンですが、これら2つは私にとってポイントを家に帰すのを本当に助けました:
実用的なプログラマ:ジャーニーマンからマスターへ 。これは本当に熟成します。どんな開発者にもお勧めします。
NUnitを使用したC#の実用的なユニットテスト、第2版 。タイトルを怖がらせないでください。概念は、C#の例でも、言語にとらわれないものです。
Dave Astels氏 テスト駆動開発:実践ガイド