山田@メタボリックスです。
At 11:34 +0900 00.12.3, Kaoru Hosokawa wrote:
>ところで「どのように間違っているか」を見つけるテストとは、どのようなものでしょ
>うか?ちょっとイメージできません。
そのとおりで、「どのように間違っているか」を見付けるのはテストではないと
言いたかっただけです。
「プリント文をいれる」ことによってどのように間違っているかを見つけることも
できますけど、それをテストに持ってくるのはまずいよねって。
(ちなみにプリント文挿入のデバグに賛成しているわけではありません)
>デバッグはXPでも必要だと思います。開発環境をフルに活用してデバッグすることに
>も反対ではありません。ただ、デバッグの量と難しさをユニットテストによって、軽
>減することはできないかと言う事を考えています。
多分、デバグは結果として減るだろうし、楽にもなるでしょう。
だからXPするんですよね。
(XPに限らずちゃんとプロセスを入れればそうなるはず)
ただ、ホソカワさんの[XP-jp:01227]を読んで
At 19:06 +0900 00.12.2, Kaoru Hosokawa wrote:
>「Test First Debugging」ができるのではないかと思っていました。プリント文を使
>わずにテストを追加して、プログラムの状態を検出して、デバッグできるのではない
>かと思っていたのです。今回は、出来ませんでしたが、何か手法があるのではないか
>と思っています。
>私は(軽い)痛い目に会いましたが、今回のキャストの問題はテストだけ(プリント
>文なし)でデバッグできるのでしょうか?振り返って、テストだけで、プリント文と
>同等の情報を得る事ができるのか考えてみたいと思っています。
ちょっとびっくりしたんです。
テストとデバグを一つにするという方向もあるのかも知れませんが、
今のUnit Test(Test firstのプラクティス)はそれとは違って、むしろ
それらを分離する方向にある、そしてそれは「よい」方向であると
思うからです。
privateをUnit Testでテストするかどうかということに相似しているのかも知れませ
ん。
ちなみに僕は原則的にしないという方針です。
究極的にUnit Testで実装を一行ずつテストするとしたら、それはassertの入りまくった
ソース・コードと同じで、それならUnit Testではなくassertを入れる方がよいと。
リファクタリングしたらTestCaseが使えなくなるのは辛いし...
XPの世界では「privateをテストするかどうか」はflameですかね:-)
そこにはUnit Testを仕様と捉えるか、デバグと捉えるかという宗教があるのかも。
---
山田正樹, (有)メタボリックス
259-0111 神奈川県中郡大磯町国府本郷576-8
tel: 0463-60-2234 fax: 0463-60-2266
moblie: 090-8347-9605
http://www.metabolics.co.jp/