Di perusahaan saya, saya mencoba membuat alasan mengapa kita harus melakukan TDD. Saat ini sebagian besar pengembang hanya melakukan apa pun yang mereka bisa untuk menyelesaikan proyek, kemudian pergi menambahkan unit test setelah fakta untuk memenuhi metrik manajer. Setiap contoh dari perusahaan terkemuka yang melakukan TDD dan melihat manfaatnya akan sangat dihargai.
14
Jawaban:
Studi tentang 4 proyek di IBM dan Microsoft. Diterbitkan dalam jurnal Rekayasa Perangkat Lunak Emperical .
Studi Empiris Menunjukkan Pengembangan Berbasis Tes Meningkatkan Kualitas
sumber
Ada bab tentang TDD dengan studi kasus dalam buku baru-baru ini, "Pembuatan Perangkat Lunak: Apa yang berhasil dan mengapa kami mempercayainya". Tetapi Anda mungkin kecewa, karena jika saya ingat dengan benar, penelitian ini tidak mengungkap manfaat nyata apa pun bagi TDD. Studi kasus tetap menarik, dan buku itu secara umum adalah salah satu buku perangkat lunak terbaik yang pernah saya baca baru-baru ini. Ini berisi banyak studi kasus tentang hal-hal seperti pemrograman pasangan, ulasan kode, dll.
sumber
Coba lihat ini: TDD Terbukti Efektif! Atau itu?
Penulis memiliki banyak poin bagus tentang TDD yang tidak terlalu efektif (imo walaupun hyped to death)
sumber
lihat berapa banyak waktu yang Anda dan klien habiskan untuk menguji perangkat lunak secara manual; bandingkan dengan perkiraan berapa lama tes otomatis gaya TDD akan diambil. Singkirkan perbedaannya
menurut pengalaman saya, tes otomatis TDD adalah emas karena memberikan asuransi dan menghilangkan sejumlah besar pengujian manual
seperti yang ditunjukkan oleh Andres F, Anda dapat memperoleh manfaat ini hanya dari pengujian otomatis, tidak harus TDD - namun, TDD memerlukan tes otomatis alih-alih menjadi hal yang baru saja dipikirkan atau menyenangkan.
Terpaksa untuk berpikir tentang pengujian terlebih dahulu juga memaksa Anda untuk berpikir tentang masalah terkait kualitas - seperti modularitas, desain antarmuka, dan sebagainya - sebelum Anda mulai menulis kode.
Secara pribadi, saya percaya salah satu manfaat terbesar dari TDD adalah bahwa menulis tes terlebih dahulu menjaga spesifikasi apa yang sebenarnya harus dilakukan oleh kode saat Anda menulis kode, daripada mengurutkannya. -sebagai kode Anda.
sumber
Anda ingin membuat kasus untuk itu: sarankan Anda melakukannya untuk proyek berikutnya, dan kemudian belajar darinya. Jika ternyata itu bekerja dengan baik untuk Anda, maka saya harap Anda akan terus menggunakannya dan jika perlu waktu lebih lama untuk mengerjakan proyek dan / atau menghabiskan seluruh waktu Anda menulis tes alih-alih mengkode, maka Anda pasti akan membuangnya sebagai sebuah kegagalan.
Saya pikir solusi dunia nyata adalah (seperti banyak hal) di tengah jalan, Anda ingin tes tetapi Anda tidak ingin tes lebih penting daripada proyek.
(secara pribadi saya pikir TDD adalah mode, kedengarannya bagus dalam teori, tetapi dalam praktiknya ... tidak begitu baik. Saya menemukan pengujian integrasi jauh lebih penting, tetapi itu bisa saja jenis proyek kompleks yang saya kerjakan).
sumber
Saya telah bekerja menggunakan TDD selama 2 tahun dan di mana saya bekerja pada saat itu, kami semua enggan untuk menggunakan termasuk manajer. Namun itu segera berubah menjadi hal yang benar juga. Manfaat yang segera kami perhatikan adalah
Para manajer tidak akan tahu karena mereka semua tertarik pada satu hal "Sudahkah Anda selesai". Tetapi kemudian mereka mengeluh ketika perangkat lunak terus rusak tanpa disadari. Dengan cakupan yang baik dan tes yang masuk akal. Ini bukan kuantitas tetapi kualitas yang Anda dapat benar-benar melihat ketika seseorang merusak suatu fungsi. Sayangnya juga sulit jika Anda sendirian. Saya memiliki masalah yang sama, karena Anda mungkin perlu mengubah kode misalnya kelas dasar dll sehingga Anda dapat membuat bagian dari perangkat lunak dapat diuji.
Saya memberi Anda sebuah contoh. Saya ingin mengejek repositori tetapi tidak ada antarmuka dan saya perlu menyuntikkan repositori ke dalam lapisan layanan saya dan karenanya menambahkan / memodifikasi konstruktor di seluruh toko, ini ternyata menjadi masalah besar tetapi dalam akhirnya saya memiliki lebih dari 200 tes hanya menguji satu area sistem dan mereka terkesan.
Saya biasanya melakukan hal berikut:
Mengenai studi kasus saya takut, saya tidak yakin saya pernah melihat. Anda perlu membangun proyek Anda dan menjadi studi kasus Anda. Mereka mungkin terkesan juga.
Saya harap ini membantu
sumber