コードを書く際にテストを書く時間があるなら、
その時間を(コーディング前の)設計に費やほうが前向きだと思う
たとえばUMLクラス図や状態遷移図/表を描いてみるとかね
特に最近は Alloy Analyzer や SPIN のように、
設計そのもののバグ摘出を支援するツールが手軽に使える訳だから

テストは:
・設計に対して正しく実装(コード化)されているか?
・改造やバグ対策時にデグレードしていないか?(リグレッション)
の為に必要であって、設計時には不要な存在