Saya adalah bagian dari tim pengembang yang bekerja dengan banyak tim lain untuk memelihara dan meningkatkan aplikasi yang telah digunakan selama minimal 15 tahun. Ketika pertama kali dibangun dan dirancang, TDD tidak pernah terdengar.
Aplikasi ini cukup stabil, dan kami jarang menemukan bug penghentian acara, tetapi kami melakukan rata-rata satu atau dua bug dalam seminggu yang secara serius mengurangi kualitas layanan. Bug ini membutuhkan waktu lama untuk menemukan dan memperbaiki, sebagian besar karena penunjuk jari, dan satu-satunya pengujian yang kami miliki adalah pengujian antarmuka. Karena ada banyak waktu yang terbuang untuk mencari tahu di mana bug itu dapat diperbaiki, saya dan pengembang lain berencana untuk mengusulkan Pengembangan yang Didorong Uji. Ada perombakan baru yang akan segera hadir, dan kami ingin melihat hampir seluruh pengujian unit dilakukan pada modul baru, kami juga berencana untuk menyarankan membangun unit uji untuk setiap kode yang harus kami ubah yang sudah lama (yaitu, perbaikan bug atau implementasi fitur) ), tetapi tidak menghabiskan waktu mengembangkan kasus uji untuk kode yang tidak menyebabkan masalah.
Bagi saya, ini masuk akal. Bulan ini kami memiliki bug yang membutuhkan waktu dua minggu untuk memperbaikinya, tetapi bisa diidentifikasi sebelum dikerahkan jika pengujian unit telah dilakukan. Tetapi bagi para manajer kami, sepertinya mereka akan menghabiskan lebih banyak uang.
Bagaimana cara meyakinkan klien kami bahwa mereka ingin menghabiskan uang untuk pengujian unit dan pengembangan yang didorong oleh tes? Apakah ada studi yang menunjukkan ROI unit testing?