Я являюсь частью команды разработчиков, которая работает со многими другими командами, чтобы поддерживать и улучшать приложение, которое использовалось не менее 15 лет. Когда это было впервые построено и спроектировано, TDD было неслыханно.
Приложение достаточно стабильное, и мы редко сталкиваемся с ошибками, вызывающими остановку шоу, но в среднем мы делаем примерно одну или две ошибки в неделю, которые серьезно снижают качество обслуживания. Эти ошибки занимают много времени, чтобы найти и исправить, в основном из-за указывания пальцем, и единственное тестирование, которое у нас есть, это тестирование интерфейса. Поскольку до того, как устранить ошибку, нужно потратить много времени, и я, и другой разработчик планируем предложить разработку через тестирование. Скоро будет новый пересмотр, и мы хотели бы видеть, что почти завершено модульное тестирование на новых модулях, мы также планируем предложить создание тестовых модулей для любого кода, который мы должны изменить, что является унаследованным (то есть исправление ошибки или реализация функции ), но не тратить время на разработку тестовых случаев для кода, который не вызвал проблем.
Мне это кажется разумным. В этом месяце у нас была ошибка, исправление которой заняло более двух недель, но ее можно было обнаружить до развертывания, если бы было выполнено модульное тестирование. Но нашим менеджерам просто кажется, что они собираются потратить больше денег.
Как мне убедить наших клиентов, что они хотят потратить деньги на модульное тестирование и разработку через тестирование? Есть ли какие-либо исследования, которые показывают окупаемость модульного тестирования?