Apakah ada studi ilmiah yang dilakukan pada TDD yang menggunakan total biaya kepemilikan untuk suatu produk sebagai pengukuran?

11

Ketika saya membaca ringkasan karya sebelumnya di Dogsa T, Batic D. Efektivitas pengembangan yang digerakkan oleh tes: studi kasus industri. Jurnal Kualitas Perangkat Lunak. 2011; 19 (4): 643-661. saya terkejut bahwa pengukuran yang digunakan dalam banyak penelitian di sekitar TDD didasarkan pada hal-hal seperti garis kode, cacat, dan waktu yang dihabiskan untuk pengembangan.

Apakah ada penelitian di luar sana yang berfokus pada total biaya kepemilikan untuk produk yang telah dikembangkan menggunakan TDD vs pengembangan tradisional atau ujian terakhir?

Saya terutama tertarik pada total biaya perolehan dan biaya operasi.

Patrik Björklund
sumber

Jawaban:

3

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.

Augusto
sumber
slide n50 sangat menyesatkan. "Semakin banyak cakupan, semakin banyak bug" kemungkinan besar berarti "semakin banyak cakupan, semakin banyak bug ... Anda akan menemukan." Itu mungkin, tapi saya ragu bahwa lebih banyak cakupan akan menyebabkan lebih banyak cacat yang disuntikkan. Ini hanya menyatakan bahwa semakin banyak cakupan semakin tinggi hasil cacat dari fase pengembangan. Dan ya, ada banyak metrik yang dapat mengukur kualitas dan biaya kepemilikan - # cacat yang disuntikkan secara bertahap, cacat hasil demi tahap, dan pengerjaan ulang semua hal yang terukur dengan dampak langsung pada kualitas dan biaya. Lihat PSP / TSP untuk beberapa contoh bagus dari metrik ini.
Michael
Michael, dalam konteks slide itu, presenter menunjukkan apa yang berkorelasi dengan kepadatan bug yang lebih tinggi. Salah satu metrik adalah kasus uji, jadi semakin banyak kasus tes yang dimiliki kelas, semakin tinggi akan ada bug di kelas. Apa yang presenter coba katakan adalah bahwa tidak ada metrik yang berkorelasi dengan kepadatan bug yang lebih kecil.
Augusto
0

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.

Bob The Janitor
sumber