Meskipun ada beberapa cara untuk mencegah pengujian unit agar tidak dieksekusi, berapakah nilai pemeriksaan pada pengujian unit yang gagal?
Saya akan menggunakan contoh sederhana: Sensitivitas Kasus. Kode saat ini peka terhadap huruf besar-kecil. Input yang valid ke dalam metode adalah "Cat" dan itu akan mengembalikan enum dari Animal.Cat. Namun, fungsionalitas yang diinginkan dari metode ini tidak boleh peka huruf besar-kecil. Jadi, jika metode yang dijelaskan lulus "kucing" itu mungkin bisa mengembalikan sesuatu seperti Animal.Null bukan Animal.Cat dan unit test akan gagal. Meskipun perubahan kode sederhana akan berhasil, masalah yang lebih kompleks mungkin memerlukan waktu berminggu-minggu untuk diperbaiki, tetapi mengidentifikasi bug dengan unit test bisa menjadi tugas yang tidak terlalu rumit.
Aplikasi saat ini sedang dianalisis memiliki kode 4 tahun yang "berfungsi". Namun, diskusi terbaru tentang unit test telah menemukan kekurangan dalam kode. Beberapa hanya perlu dokumentasi implementasi eksplisit (mis. Case sensitif atau tidak), atau kode yang tidak mengeksekusi bug berdasarkan bagaimana itu disebut. Tetapi unit test dapat dibuat dengan menjalankan skenario tertentu yang akan menyebabkan bug dilihat dan merupakan input yang valid.
Apa nilai memeriksa unit test yang menjalankan bug sampai seseorang dapat memperbaiki kode?
Haruskah pengujian unit ini ditandai dengan pengabaian, prioritas, kategori dll, untuk menentukan apakah membangun berhasil berdasarkan tes yang dilaksanakan? Akhirnya tes unit harus dibuat untuk mengeksekusi kode begitu seseorang memperbaikinya.
Di satu sisi itu menunjukkan bahwa bug yang diidentifikasi belum diperbaiki. Di sisi lain, mungkin ada ratusan unit test gagal muncul di log dan menyaring yang gagal vs kegagalan karena kode check-in akan sulit ditemukan.