単体テストについて

m_pixyさんのところで、単体テストのさまざまな定義がなされています。

1.デバッガなどを使って行単位の動作を見ながらホワイトボックス

2.JUnitなどを使ってメソッド単位で入出力の確認

3.WEBシステムのレイヤーごとにドライバ・スタブを作成して確認

4.サーバを起動して画面の入出力(ブラウザから)

単体テストといえば、4番という人がやはり周りには多いです。これはWebシステムの短納期化が招いたモジュールレスの結果だと思うわけです。短い期間にたくさんの人を突っ込んで、ロクにモジュール分割を考えることの出来ない計画・体制を敷き、結果として質に大きなバラツキはでるものの、人海戦術で火事を消しまくる、というのが身の回りで起こっている実態です。
Javaを使っているからオブジェクト指向開発です」という思考が揶揄されて久しいですが、「Strutsを使っているから、ウチのシステムはよい設計です」というのも、かなり香ばしいものです。
Strutsを使っていても、駄作はたくさん生み出されるでしょう。ModelをHibernate等のO/Rマッピングを使って実装しなくても、楽さ度合は大して変わらず、巨大なActionクラスができてしまうのが問題なのでしょう。
Railsのもつ設計強制力とその簡易さは、この点で秀逸です。