私は、他の多くのチームと協力して、少なくとも15年間使用されているアプリケーションを維持および改善する開発者チームの一員です。それが最初に構築および設計されたとき、TDDは前代未聞でした。
アプリケーションはかなり安定しており、番組停止のバグに遭遇することはほとんどありませんが、平均して週に1〜2件のバグがあり、サービスの品質が大幅に低下しています。これらのバグの発見と修正には、主に指差しのために永遠にかかります。私たちが行っている唯一のテストは、インターフェイステストです。バグが修正される前にバグがどこにあるかを探すのに多くの時間を費やしているため、私と別の開発者はテスト駆動開発を提案する予定です。近々新しいオーバーホールが予定されており、新しいモジュールでほぼ完全なユニットテストを実施したいと考えています。また、レガシーである変更が必要なコード(バグ修正や機能の実装など)のテストユニットの構築を提案する予定です。 )、ただし、問題を引き起こしていないコードのテストケースの開発に時間を費やすことはできません。
私には、これは理にかなっているようです。今月は、修正に2週間以上かかるバグがありましたが、ユニットテストが行われていれば、導入前に特定できた可能性があります。しかし、私たちのマネージャーにとっては、彼らはより多くのお金を使うように見えるだけです。
ユニットテストとテスト駆動開発にお金を使うことをクライアントにどのように説得しますか?単体テストのROIを示す研究はありますか?