Tambahkan tes unit untuk setiap bug baru

35

Dalam pekerjaan saya, semua pengembang yang menyelesaikan bug harus menambahkan tes unit baru yang memperingatkan tentang jenis bug ini (jika terjadi lagi). Jika uji unit tidak memungkinkan (misalnya, masalah desain halaman web), maka departemen QA harus membuat kasus uji untuk memeriksanya secara manual.

Gagasan di balik ini adalah bahwa jika cacat belum terdeteksi sebelum rilis produk adalah karena tidak ada unit test yang tepat untuk mendeteksinya. Jadi pengembang harus menambahkannya.

Pertanyaannya adalah: apakah ini umum dalam metodologi pengembangan perangkat lunak? Teknik ini punya nama? Saya ingin belajar lebih banyak tentang itu, tetapi saya perlu beberapa informasi untuk memulainya.

Ivan
sumber
6
Ini disebut pengujian regresi dan sangat umum. Saya hanya dapat menautkan artikel wikipedia tetapi jauh dari sempurna.
devmiles.com
23
Ini adalah praktik terbaik untuk melakukan ini dan karena itu jarang terlihat dalam kenyataannya.
Sardathrion
1
Anda bahkan dapat berargumen bahwa setiap check-in harus memiliki perubahan tes unit yang cocok.
Carra
"Ini disebut pengujian regresi" - Kadang - kadang keliru disebut "pengujian regresi".
kirelagin

Jawaban:

28

Ini sangat umum. Kami menggunakan ini di tim kami. Untuk Setiap cacat produksi, pengembang harus menambahkan catatan pada akar penyebab masalah, menambahkan uji unit gagal dan menambahkan analisis dampak uji sebelum tiket dapat didorong ke status dev untuk memeriksa kode.

Uji unit gagal harus lulus sebelum kita dapat mendorong kode ke produksi.

Saya tidak berpikir ini memiliki nama khusus kecuali "pengujian regresi" umum. Ini sangat berguna dan kami mulai melihat peningkatan kualitas produk setelah kami mulai mengikuti proses ini.

java_mouse
sumber
14

Benar!

Jika Anda dapat setuju bahwa tes unit adalah hal yang baik, maka Anda akan menyadari bahwa jika ada bug maka ada tes unit yang hilang yang mencakup jalur kode itu.

Jadi yang harus terjadi adalah, Anda menulis unit test yang menunjukkan bug ada, memperbaiki bug yang sebenarnya, maka unit test akan lulus.

Jika Anda tidak memiliki tes unit sama sekali, maka ini bisa menjadi cara yang baik untuk mulai memperkenalkan tes unit ke proyek.

ozz
sumber
11

Teknik ini adalah pengembangan yang digerakkan oleh tes. Ini sebenarnya bukan tentang menemukan bug yang sama di lain waktu, meskipun rangkaian pengujian berulang selalu membantu. Intinya adalah bahwa Anda dapat menunjukkan bahwa Anda telah mengisolasi apa yang salah dengan kode tersebut, membuktikan bahwa itu salah, memperbaikinya, membuktikan bahwa perbaikannya benar.

Ada kutipan yang tidak bisa saya ingat atau temukan, tetapi secara kasar itu adalah: "Setiap bug adalah tes yang belum ditulis."

Mencoba menjualnya sebagai uji regresi adalah pertempuran yang hilang, IMHO. Mengingat betapa jarang hal-hal ini menangkap bug berulang, sebagian besar pengembang hanya akan berkata, "Mengapa repot-repot, ketika saya bisa memperbaikinya?"

pdr
sumber
0

Teknik ini sangat umum dan, menurut pendapat saya, nama terbaik untuk itu adalah "Pengujian Didorong Cacat" (Saya datang sendiri dan kemudian menemukannya dijelaskan di bawah nama ini lama ).


Anda kadang-kadang mungkin melihat beberapa orang menyebut tes ini "Tes Regresi", tetapi saya pribadi merasa agak sulit untuk membenarkan nama ini. Definisi yang agak lebih luas (dan salah satu yang, bisa dibilang, jauh lebih masuk akal untuk nama ini) dari "pengujian regresi" adalah "menjalankan tes setelah membuat perubahan pada kode untuk memastikan bahwa Anda tidak memperkenalkan regresi apa pun" dan CI Anda yang menguji setiap cabang saat push ke repositori akan memuaskannya.

Kiragagin
sumber