うちのプロジェクトは JUnit によるテストケース作成を強要してない。プロジェクト開始当初の開発面の知識不足もあるし、業務の知識不足もありそれどころじゃなかったのもある。加えて画面入力も javascript を駆使して複雑だし、DB を直に更新するものもあればバックグラウンドで処理するものもある。複雑の定義は難しいけどそれなりに複雑。
だから「JUnit 使ってテストケース書くなんて難しすぎる」ってのは違うと思う。テストケースを書けないようなソースを書いてしまっているところが問題じゃなかろうか。書けないと言うことはそれだけ疎になってない、悪く言えばゴリゴリやってるって事じゃないだろうか。
複雑だからテストケース書けませんじゃなくて、テストケースを書くことを前提でプログラムを書けばメソッドの分割や部品化といった拡張性のあるプログラムが書けるようになるんじゃないだろうか。加えて、実際にテストが書けて実行できればさらにお得。ちまちまテスト仕様書にそって動かしながらホントに確認できてるんだろうかってテストするよりも効果的。テストケースが漏れてたなら追加して品質を積み上げていくことができる。テスト仕様書を見ながらの手動によるテストって何回やっても品質を上げているとは思えないんだよなぁ。人間絶対手を抜くわけだし。
もちろんテストケースで網羅できないところや、最終的な確認をする際には手動のテストが必要。