Başarısızlık testinin eklenmesi gerektiğini, ancak açıkça “başarısızlık testi” olarak nitelendirilmemesi gerektiğini savunuyorum.
@ BenVoigt'ın cevabında işaret ettiği gibi , başarısız bir test mutlaka " yapıyı bozmaz " anlamına gelmez. Sanırım terminoloji takımdan takıma değişebilir, ancak kod hala derlenir ve ürün hala başarısız bir testle gönderilebilir.
Bu durumda kendinize sormanız gereken şey,
Başarılması gereken testler nelerdir?
Testler yalnızca herkesin kod hakkında iyi hissetmesini sağlamak için varsa, o zaman herkesin kod hakkında kötü hissetmesini sağlamak için başarısız bir test eklemek verimli olmaz. Fakat o zaman, ilk etapta testler ne kadar verimli?
Benim iddiam, testlerin işletme gereksinimlerinin bir yansıması olması gerektiğidir . Bu nedenle, bir gereksinimin gerektiği gibi karşılanmadığını gösteren bir "hata" bulunursa , testlerin işletme gereksinimlerini doğru veya tam olarak yansıtmadığının da bir göstergesidir.
İlk önce düzeltilmesi gereken böcek budur . "Başarısız bir sınav ekleyemezsin". Sen ediyoruz düzelten iş gereksinimlerine daha doğru bir yansıması için testler. Kod o zaman bu testleri geçemezse, bu iyi bir şeydir. Testlerin işlerini yaptığını gösterir.
Kodu düzeltmenin önceliği işletme tarafından belirlenecektir. Ancak testler düzeltilinceye kadar, bu öncelik gerçekten belirlenebilir mi? İş, tam olarak neyin başarısız olduğu, neyin başarısız olduğu ve kararlarını öncelikli olarak almak için niçin başarısız olduğu bilgisi ile donanmış olmalıdır. Testler bunu belirtmelidir.
Tamamen geçmeyen testleri yaptırmak kötü bir şey değil. Önceliklendirilmesi ve buna göre ele alınması bilinen sorunların büyük bir eseridir. Ancak, tamamen test edilmeyen testlere sahip olmak bir problemdir. Testlerin değerini sorgulamaya çağırıyor.
Başka bir şekilde söylemek gerekirse ... Yapı zaten bozuldu. Karar verdiğiniz tek şey, bu gerçeğe dikkat edip etmemek.