Katakanlah saya ingin memulai proyek sumber terbuka yang saya harap / harapkan memiliki banyak orang mengirimkan tambalan dan yang lainnya. Apakah layak untuk mengambil pendekatan TDD yang ketat? Bisakah / haruskah saya berharap / percaya kolaborator untuk menulis tes kualitas setiap kali mereka mengirimkan tambalan?
Satu hal yang saya pikirkan adalah menulis suite pengujian untuk laporan bug individual dan permintaan fitur dan mengharuskan semua tambalan / permintaan tarik membuat tes lulus, tetapi pada saat itu sepertinya akan lebih baik hanya menulis fitur / perbaikan bug diri.
Sejauh yang saya tahu, sebagian besar proyek open source utama yang menggunakan TDD (atau setidaknya menulis tes) tampaknya sebagian besar ditulis murni oleh individu atau tim, di mana mudah untuk menegakkan praktik seperti TDD.
sumber
Jawaban:
Anda tidak dapat benar-benar menerapkan pendekatan TDD (tes pertama) pada proyek sumber terbuka di mana tambalan dapat diajukan oleh masyarakat umum.
Apa yang dapat Anda terapkan adalah bahwa semua tambalan harus memiliki satu set uji kasus untuk perbaikan yang disertakan dalam tambalan dan bahwa uji kasus tersebut, serta semua kasus uji yang ada, harus lulus. Anda dapat menegakkan ini dengan hanya memberikan hak komitmen kepada beberapa pengembang tepercaya yang diketahui menggunakan dan menyetujui kebijakan proyek dan dengan menyatakan secara terbuka bahwa pengiriman / permintaan tarik hanya akan dimasukkan jika mereka datang dengan melewati kasus uji (dengan cakupan yang memadai).
Ini tidak memastikan bahwa tes ditulis terlebih dahulu , tetapi memastikan bahwa tes itu ditulis .
sumber
Anda dapat meminta orang-orang untuk mengirimkan tambalan hanya tes sebelum diizinkan untuk mengerjakan kode; ini akan memberikan kesempatan tambahan untuk meninjau desain yang direncanakan sebelum kode itu sendiri ditulis.
Dalam praktiknya, ini dapat membunuh antusiasme apa pun yang dimiliki orang untuk berkontribusi pada proyek - atau mungkin menyalakan api pada mereka yang setuju dengan metodologi Anda.
Namun, para pengulas harus sangat baik tentang membalikkan ulasan desain dengan cepat, agar tidak menghentikan pengembangan.
sumber