- TDD の価値に気付くのが遅すぎたとしましょう。プロジェクトはすでに成熟しており、多くの顧客が使用を開始しています。
- 使用される自動テストは、ほとんどが機能/システム テストであり、自動化された GUI テストがかなりあるとします。
- 新しい機能のリクエストと新しいバグ レポート (!) があるとします。そのため、かなりの開発がまだ続いています。
- 単体テストがない、またはほとんどないビジネスオブジェクトがすでにたくさんあることに注意してください。
- それらの間のコラボレーション/関係が多すぎます。これも、より高いレベルの機能/システム テストによってのみテストされます。統合テスト自体はありません。
- 多数のテーブル、ビューなどを備えた大規模なデータベースが配置されています。単一のビジネス オブジェクトをインスタンス化するだけでも、すでにかなりの量のデータベース ラウンド トリップが行われています。
この段階でTDDをどのように導入できますか?
嘲笑するのが道のようです。しかし、ここで行う必要がある嘲笑の量は多すぎるように思えます。既存のもの (BO、データベースなど) で動作するモッキング システムのために、精巧なインフラストラクチャを開発する必要があるように思えます。
つまり、TDD はゼロから始める場合にのみ適切な方法論であるということですか? すでに成熟した製品に TDD を導入するための実現可能な戦略について知りたいです。