Ana Sayfa

TDD ve Birim Test Yanılgısı: 'Birim' Ne Anlama Geliyor?

1 dk okuma

Yazılım geliştirmede "birim test" terimindeki "birim"in ne anlama geldiği konusunda yaygın bir yanlış anlama bulunmaktadır. Kimileri bu terimin testin kendisini ifade ettiğini, yani bağımsız olarak çalışabilen bir test olduğunu öne sürerken, diğerleri test edilen sistemin bir sınıfı veya metodunu işaret ettiğini düşünür. Ancak, makale bu ikinci yaklaşımın, yani birimi bir sınıf veya metot olarak görmenin, geliştiricileri her sınıf veya metot için dogmatik bir şekilde bir birim test yazmaya ittiğini ve test ikilileri (mock) kullanarak birimleri aşırı derecede izole etmeye yönelttiğini belirtiyor. Bu durum, kod tabanında yapılan küçük bir değişiklikte bile çok sayıda "yanlış pozitif" test sonucuna yol açarak, geliştiricilerin günlerini bu testleri düzeltmekle geçirmesine neden olabiliyor. Yazar, bu yaklaşımın, hataları tespit etmeyi kolaylaştırdığı argümanına rağmen, ortaya çıkan yüksek bakım maliyeti nedeniyle faydalı olmadığını savunuyor. Yazar, birim test konusundaki katı algının bir tabu haline geldiğini ancak aslında iki ana ekolün bulunduğunu vurguluyor: mockist ve classicist. Makale, classicist yaklaşımdan ilham alarak "iyi" testler yazmak için ipuçları sunuyor. İlk ipucu, testleri "dışarıdan içeriye" yazmaktır; yani gerçekçi bir kullanıcı bakış açısıyla, uçtan uca (e2e) veya entegrasyon testlerine odaklanmaktır. Bu, geleneksel test piramidinin aksine, sistemin davranışını test etmeyi, yapısını değil, önceliklendirir. Yazar, test piramidinin sorgulanması ve "Honeycomb" veya "The Testing Trophy" gibi daha yeni alternatiflerin değerlendirilmesi gerektiğini belirtiyor. Önemli olanın, testlerin gereksinimleri karşılayıp karşılamadığıdır, iyi ya da kötü olmasından ziyade.

İçgörü

Birim testlerdeki "birim" kavramının yanlış anlaşılması, yazılım geliştirme süreçlerinde verimsizliğe ve yüksek bakım maliyetlerine yol açmaktadır.

Kaynak