>621
>テストしやすい構造にするってのと
>テストのみにしか必要のない機能を追加するということは
>同じことだと思っている。

そうですか?
テストのみにしか必要のない機能ってのは、例えば

http://www-6.ibm.com/jp/developerworks/java/011109/j_j-diag0612.html

の記事の「全てのオブジェクトにRecorderを実装する」ってのが該当すると
思うのですが、このRecorder機能って完全にテストのためだけですよね。

自分だったら、全てのオブジェクトにRecorderを実装する変わりに、
全てのオブジェクトをRecorder機能を持つスタブと交換できるように
インタフェースを定義したくなります。

上の記事の例でいえば、Sender、 GreeterにRecorder機能を持たせる
変わりに、Sender、Greeterと交換可能なRecorder機能のみを持つ
SenderRecorder、GreeterRecorderを定義し、Coordinatorのユニットテストでは、
そっちの方を使用します。

SenderにRecorderを組み込むのと、SenderのかわりにSenderRecorderを使用
してテストするのでは、意味合いが異なると思います。
これは、自分が組み込み系のせいで、リリースコードにテストコードを入れてお
きたくないという想いが強いせいかもしれません。