ユニットテストの下でレガシーアプリケーションを取得することを任されています。アプリケーションに関する最初の背景:これらの主要な問題を伴う600k LOC Java RCPコードベースです。
- 大規模なコードの複製
- カプセル化なし、ほとんどのプライベートデータは外部からアクセスできます。ビジネスデータの一部はシングルトンにもなっているため、外部からだけでなくどこからでも変更できます。
- 抽象化なし(たとえば、ビジネスモデルなし、ビジネスデータはObject []およびdouble [] []に格納されます)。したがって、OOはありません。
優れた回帰テストスイートがあり、効率的なQAチームがバグのテストと発見を行っています。マイケル・フェザーズなどの古典的な本からテストする方法を知っていますが、それは遅すぎます。実用的なリグレッションテストシステムがあるので、ユニットテストを作成できるようにシステムを積極的にリファクタリングすることを恐れていません。
迅速にカバレッジを得るために、どのように問題を攻撃し始める必要がありますか?そうすれば、経営陣に進捗を示すことができます(実際には、JUnitテストのセーフティネットから収益を上げることができます)?AgitarOneなどの回帰テストスイートを生成するツールを使用したくないのは、これらのテストは何かが正しいかどうかをテストしないためです。