Ada beberapa penelitian tentang implikasi dan manfaat dari melakukan TDD, tetapi hasilnya bertentangan. Beberapa proyek (ini menurut pengalaman saya) memiliki tingkat bug dan biaya kepemilikan yang lebih rendah akibat penggunaan TDD, karena biaya untuk mengubah fitur berkurang secara drastis. Beberapa yang lain dihentikan untuk berhenti.
Beberapa studi ( di sini adalah salah satu - cek geser N50) menunjukkan bahwa jumlah bug meningkat dengan cakupan tersebut. Saya berasumsi bahwa cakupan yang lebih besar menyiratkan TDD dan bahwa jumlah bug yang lebih tinggi menyiratkan biaya kepemilikan yang lebih tinggi.
Dari sudut pandang saya, tidak ada metrik atau praktik sendiri yang dapat dikaitkan dengan kualitas yang lebih baik atau biaya kepemilikan yang lebih rendah. Ada kombinasi faktor yang dapat menyebabkan beberapa korelasi. Dan faktor-faktor itu berubah antara tim dan proyek.
Saya pikir kita semua pernah mendengar cerita tim, yang baru saja mulai melakukan TDD, menulis metode tes 100-line, yang (menurut saya) meningkatkan biaya kepemilikan, karena memperbarui tes itu akan mahal.
Aturan pragmatis saya adalah bahwa orang yang peduli dan bersemangat untuk belajar , bekerja di lingkungan yang mendukung mereka dan ide-ide mereka memiliki kualitas dan biaya kepemilikan yang lebih baik.
Saya tidak memiliki studi khusus tetapi saya dapat memberi tahu Anda dari pengalaman pribadi, dan dari pengalaman pengembang lain, saya tahu bahwa ketika diterapkan dengan benar untuk proyek-proyek menengah dan besar, TDD mengurangi waktu untuk memasarkan, mengurangi bug dan cacat, dan meningkatkan kualitas kode .
Setelah mengatakan bahwa mereka bukan peluru perak, dapatkah Anda menulis kode yang baik tanpa TDD? ya, bisakah Anda menulis kode buruk menggunakan TDD ya. Juga tergantung pada proyek Anda, TDD dapat sangat meningkatkan biaya kepemilikan kode, contoh yang baik adalah NASA, di mana biaya per baris kode sangat besar, tetapi biaya kepemilikan bukan fokusnya, kekurangan cacat.
Ketika diterapkan dengan benar, TDD akan meningkatkan biaya awal Anda, dan basis kode Anda, tetapi Anda mendapatkan manfaat jangka panjang dari pengujian regresi, deteksi bug awal, dan desain kode yang lebih baik yang akan mengurangi cacat dan menguji biaya dan waktu perawatan, sehingga mengurangi keseluruhan biaya kepemilikan.
sumber