TDDの学習に最適なリソースは何ですか?[閉まっている]


27

TDDを学びたい(そしてマスターしたい)。最高のものは何ですか:

  • ウェブサイト
  • 動画
  • 演習のリスト
  • 知恵の個人的な言葉

TDDの学習、鑑賞、使用について


1
TDDを学ぶためのリソースの私のページに興味があるかもしれません。
xpmatteo

9
この質問が好きです。ここでこれを聞いてはいけない場合、プログラミング本の推奨事項についてどこで質問できますか
ゲットリ

回答:


18

個人的には、JUnitのエッセイを読んで、「コードを書く前にテストを書く」ということを強調すれば、始めるのに十分だとわかりました。

この技術を学習する上で最も重要な部分は、コードを書くことについて考える最も基本的な方法のいくつかを変更する必要があるため、大量のテストベースのコードを書くことです。次のようなもの:

  • コードの前にテストを記述すると、コードを呼び出して結果を取得する方法を事前に考えることができます。これは、使用方法に基づいて最初にAPIを設計することを意味します。これにより、より良いAPIが頻繁に得られます。
  • モジュラー化を考え、コード全体をテストするのではなく、コードの一部をテストできるようにする必要があるため、コーディングスタイルが変わります。
  • また、テストに合格するため、自信を持ってメジャーチャンクを引き出し、同じ動作をする代わりに新しいチャンクを挿入できるようになります。オリジナルは寛大すぎるため、最近、日付解析ライブラリを使用してこれを行いました。

小規模に始めるのに最適な場所は、ユーティリティルーチンを使用することです。次に必要な場合は、最初にテストを使用して設計し、すべての公式ユースケース(null値が渡された場合など)をカバーする多くのテストを作成し、すべてのユースケースが実装されたら使用できるようにする必要がありますコード内で直接、期待どおりに動作することを確信してください。

また、さまざまな状況でコードがどのように動作するかを正確に示す非常に簡潔なコードがたくさんあるため、優れたテストはドキュメントとして追加の作業を行うことができることも私の経験です(正しいバーであることが簡単に証明できます)。慎重なコメントを使用しても、それ以上の効果は得られません。

Javaの場合、jUnitバージョン4は本当に素晴らしいです。


8

私の意見では、TDDはテストを書くことよりもコードをテスト可能にすることの方が重要です。

コーディングする前にテストを作成することはできますが、テストを作成する全体的な理由は、コードを作成できるようにするためです。これにより、テストが困難なコードを作成するのを止めることはできません。

これを見て、私の意味を理解してください: バグの統一理論

コンセプトに興味があり、さらに詳しく知りたい場合は、コメントしてください。Googleのトピックに関する記録されたプレゼンテーションの方向性を示します。

更新:

クリーンでテスト可能なコードの書き方

MiškoHevery Presenting(by GoogleTechTalksNYCのGoogleで、GoogleのEngineering Productivity Group がスポンサー


先に進み、Googleプレゼンテーションリンクを追加します。Ericの担当者はまだコメントを許可していません。
オコド

+1 @Slomojo:確かに、質問に賛成票を投じてください...私が正しく思い出せば、15-repを超えるように彼を押してください。ビデオを見てみましょう。
失策

1
@blunders ...彼を11にした!
オコド

+1 @Slomojo:投票のために、答えにGoogle Tech Talkへのリンクを見つけて追加しました。乾杯!
失策

8

すでに言及した本のいくつかとは別に、私はテストによって導かれるオブジェクト指向ソフトウェアの成長をお勧めできます。まだ読み終えていませんが、単純なコード例だけでなく、実物そっくりのTDDプロジェクト全体のストーリーなど、読む価値のあるものです。


これは私のお気に入りの本であり、TDDだけでなくソフトウェア開発全般についても、私が最も仕事をする方法に影響を与えた本だと思います。また、TDDの本をあまり読んでいなかったことを認めなければなりません。
antonio.fornie

4

私は2冊の本を読みました。

テスト駆動開発: Kent Beckと

Paul Hamilによる単体テストフレームワーク

Beckの本は高く評価されていますが、「Unit Test Frameworks」を読むまでユニットテストを始めませんでした。私はいくつかのTDDを行いますが、(可能な場合)維持しなければならない古いコードにテストを追加します。

編集:また、一度ハンドルを取得したら、すぐに現在のプロジェクトで使用することをお勧めします。私にとってそれは本当の学習が起こったときであり、「ユニットテストフレームワーク」本はこの目的のためのより良い参考書だと思います。(C#でnunitを使用していました)。


4

主にTDDについてではありませんが(テストやテスタビリティのために設計しますが)、The Art of Unit Testingは良いテストの書き方を教えてくれるのでお勧めの本です。

より具体的には、信頼でき、保守可能で、読みやすいテストを作成する方法を教えます。これは、おそらく単体テストと分離フレームワークの基本以外の、本の最も重要なセクションだと思います。単体テストが問題になるか、開発者の仕事に摩擦が加わると、単体テストの成功または利益が制限されることは明らかです。テストを作成するために時間と労力を費やした場合、その投資から最大限の利益を得ることができるはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.