I am part of a developer team that works with many other teams to maintain and improve an application that has been in use for at least 15 years. When it was first built and designed, TDD was unheard of.

The application is fairly stable, and we rarely encounter a show stopping bug, but we do average about one or two bugs a week that seriously reduces the quality of service. These bugs take forever to find and fix, largely because of finger pointing, and the only testing we have is interface testing. Because there is a lot of wasted time hunting down where the bug is before it can be fixed, me and another developer plan to propose Test Driven Development. There is a new overhaul coming soon, and we would like to see near complete unit testing done on the new modules, we also plan to suggest building test units for any code we have to alter that is legacy (i.e., bug fix or feature implementation), but not to spend time developing test cases for code that hasn't caused problems.

To me, this seems reasonable. This month we had a bug that took over two weeks to fix, but could have been identified before deployed if unit testing had been done. But to our managers it just looks like they're going to spend more money.

How do I convince our clients that they want to spend the money for unit testing and test driven development? Are there any studies that show the ROI of unit testing?