テスト駆動開発入門

前表紙
ピアソンエデュケーション, 2003 - 217 ページ

レビュー - レビューを書く

ユーザー レビュー - 違反コンテンツを報告

***本全体はどういうことを扱っていますか?
テスト駆動開発を具体的な例を通して紹介しています。
Part1ではJUnitというOSSテスティング・フレームワークを使って、具体的なプログラムをテスト駆動開発で開発します。Part2でPythonでテスティン・グフレームワークをテスト駆動開発の方法を使って開発します。完成には至りませんが、最初の第一歩にはなります。Part3ではテスト駆動開発のためのパターンが紹介されています。Part3に関しては理解できない、あるいは同意できない部分もあるかもしれません(ぼくはそうでした)。
***本を読むのに必要な知識は何ですか?
Part1ではJavaを、Part2ではPythonでコードが書かれていますが他の言語、例えばC++, Ruby, JavaScriptなどオブジェクト指向プログラミングをサポートする言語を使う人が驚くようなテクニックは使われていないと思います。読んだら、素直にそれぞれの言語に翻訳できるでしょう。ということで、オブジェクト指向が知識として必要だということになると思います。
あると望ましい知識としては、デザイン・パターンなど、設計に関する知識だと思います。テストを書く前に、設計するフェーズがあるのですが、そこで語られている言葉の意味を理解するには必要な知識になります。ですが、これも理解しなくても読むことはできます。
***本のプログラムを実行するのに必要な環境は何ですか?
オブジェクト指向をサポートしている言語と、JUnitに対応するテスティング・フレームワークを使えるような環境が必要です。しかし、テスティング・フレームワークについて言えばPart2で開発するので、Part1を読んでからPart2でフレームワークを開発し、Part1のプログラムを書いてみるということもできます。
開発手法について書かれていることは、場合によっては個人では実践できないこともありますが、ここに書かれていることは個人でできます。
***本を読んで、自分のプログラミングに何か影響を与えましたか?
プログラムを書く前にテストを書くようになりました。リファクタリングは毎回やる、ということはしていません。
最近は、テストを先に書くのがコストの高いコードではテスト無しでも書きます。試行錯誤しているときはテストは書きません。
***本に書かれていることを実践してみて、何か生活に影響を受けたことはありますか?
外部からの割り込みによってプログラミングをできるだけ早く中断すべきとき、ほぼ即座に中断できるようになりました。
テストの結果が、自分のコードの状態を教えてくれるからです。
***本に影響されて、さらに何か自分でやってみましたか?
Pythonで書かれたテスティング・フレームワークは不完全なものでした。なので、JUnitのソースコードを読んでみました。後でPythonの標準ライブラリであるunittestも読みました。そして、自分でも書いてみました。テスティング・フレームワークを書くのに、基本的な構文、例外機構、メソッドの動的呼出し、モジュールの動的なロードの仕方などを学ぶことができることも分かりました。
***本では扱っていないけれども、今後必要なことは何かありますか?
良いテストコードの書き方について書いてありません。この本に登場するテストコードはわかりやすいのですが、むしろ悪いと言えると思います。
 

書誌情報