Я є частиною команди розробників, яка співпрацює з багатьма іншими командами, щоб підтримувати та вдосконалювати додаток, яке використовується не менше 15 років. Коли він був вперше побудований та спроектований, TDD було нечувано.
Додаток досить стабільний, і ми рідко стикаємось із помилкою, що зупиняє показ, але в середньому ми робимо приблизно одну чи дві помилки на тиждень, що серйозно знижує якість обслуговування. Ці помилки знаходять назавжди, щоб знайти та виправити, багато в чому через вказівку пальцем, і єдине тестування, яке ми маємо, - це тестування інтерфейсу. Оскільки є багато витраченого часу на пошук місця, де помилка, перш ніж її можна буде виправити, я та інший розробник плануємо запропонувати тестову розробку. Незабаром відбудеться новий капітальний ремонт, і ми хотіли б побачити майже повне тестування блоку, виконане на нових модулях, ми також плануємо запропонувати побудувати тестові одиниці для будь-якого коду, який ми повинні змінити, який є застарілим (тобто виправлення помилок чи реалізація функції ), але не витрачати час на розробку тестових випадків для коду, який не викликав проблем.
Мені це здається розумним. У цьому місяці у нас виникла помилка, яка потребувала двох тижнів, щоб виправити її, але її можна було ідентифікувати до розгортання, якби було проведено тестування. Але для наших менеджерів це просто виглядає так, що вони збираються витратити більше грошей.
Як я переконаю наших клієнтів у тому, що вони хочуть витратити гроші на тестування одиниць та тестові розробки? Чи є дослідження, які показують рентабельність інвестиційного тестування?