Kariyerimde karşılaştığım yinelenen bir tema, bir takıma ulaşacak yeni geliştirici olmak ve mevcut birim ve entegrasyon test süitlerinde doğal bir güvensizliğe sahip olmak.
Görüşme sırasında size yönetim tarafından "birim testini şiddetle destekledikleri" ve açıkça teşvik ettikleri söylenir. Yaparlar, ama testlerin kendileri hakkında her şey yanlıştır. % 100 entegrasyon test kapsamı varken,% 10 tekrarlanabilir birim test kapsamı olduğunda% 100 teminat talep ettikleri gibi. Bulduğum diğer bazı problemler:
Birim testi nedir ve bir entegrasyon testi nedir arasında net bir gösterge yoktur. Ünite ve entegrasyon testleri aynı sınıfta karıştırılır.
Belirli bir ortamın veritabanındaki çok özel dinamik verilere açık bağımlılıklar bildirilen entegrasyon testleri.
İşlemsel olmayan entegrasyon testleri, temelde kendilerinin ardından temizlemeye zahmet edebilen veya ayırmayacak testler, bazen testi tekrarlanabilir hale getirmek için manuel veri tabanı "temizleme" gerektirir.
Ne olursa olsun hiçbir alaycı ve uygulama kodu sadece alay mümkün olması için büyük bir revizyon gerektirir. Başka bir deyişle, akılda test etmeden tasarım.
Test adına hızlıca bakmak ve hangi testlerin yapıldığını kabaca belirlemek için açık bir adlandırma kuralları yoktur.
Bunların hepsi TÜM testlerin işe yaramaz ya da kötü olduğunu söylememekle birlikte, bunların birçoğu oldukça iyi ve korunmaya değer, ancak bazen altın için pan yapmak gibi hissettiriyor. Sadece kara kutu test durumlarım için veritabanını mahvetmekten korktuğum için test yapmaktan kasten uzak durdum.
Bu aslında bana şahsen yazmadığım ya da bir şekilde gözden geçirmediğim içsel bir birim güvensizlik ve entegrasyon testlerini verdi. Test süitinizin kalitesine inancınız yoksa bir seviyede, o zaman takıma veya projeye hiçbir önemi yoktur.
Kendini bu durumda bulduğunda ne yaparsın? Böyle bir şeyle başa çıkmak için en iyi saldırı planının ne olacağını düşünüyorsunuz?
Tüm testler, sürümler arasında uzanan anıtsal bir çabayla yeniden düzenlenmeli mi? Bu eski projenin bir günlük sağlam birim test kapsamı olabileceği fikrinden vazgeçmeli mi?