Otomasyon, Teknoloji

Unit Test ve Entegrasyon Testi Nedir, Farkları Nelerdir?

Bir yazılım uygulaması birçok kişiden oluşan bir ekip tarafından geliştirilir.

Yani bir uygulama geliştirirken farklı modüllere ve bu modüller takımın farklı geliştiricilerine ayrılır.
Tek bir geliştirici kod yazdığında, ortak bir fonksiyon yazmış olduğunu düşünelim ve bu yazmış olduğu fonksiyonu test etmesine Birim Testi (Unit Test) )denir. 

 

Tüm farklı modüller geliştirilip entegre edildiğinde, tüm uygulamanın farklı modülleri entegre edildikten sonra düzgün çalışıp çalışmadığını kontrol etmek için test gereklidir, bu test türüne de Entegrasyon Testi denir.

 

Birim Testi ve Entegrasyon Testi arasındaki fark:

 

Birim Testi

 

 

Birim testi, küçük kod parçasının veya tek bir işlevin beklentiye göre yapılıp yapılmadığını kontrol etmek için kullanılan bir test türüdür.

 

Test Driven Development (Testin yönlendirdiği geliştirme diyebiliriz) Bu iki manaya geliyor. Kod yazarken devamlı test yazmak, diğeri ise kodu yazmadan önce testleri yazmak ve kodu yazma, yazdıkça test etme ve testleri geçiyorsa yazılan kod “güvenilir” demek.

Unit bir parça, bir birim iş demek, Unit testin önemli özelliği SQL, Nwtwork ya da herhangi bir io çağrısı yapmaz. Yaızlan kodun sadece ve saece logic’,i, alogirotması, yani küçük fonksiyonları test edilir.

Bir test class’ından public, internal gibi ulaşılabilen metodları test etmek demektir.Yani mantığı kodun algoritmasını test etmek dolayısıyla unit test küçük ve hızlı olmalıdır. Bu yüzden io test içermez, küçük parçayı test eder, diğer dependency’ler fake edilir.
Küçük ve hızlı olması ve bir pattern’i olması gerekir. Aksi halde büyük karmaşalara sebep olabilir ve yanlış test sonuçları verebilir.

 


Entegrasyon Testi;

 

Unit test’e göre daha yavaş çalışır, SQL’e ya da network’e bağlanabilir, network’den belli bir veri getirebilir, sql’den veri getirebilir, validasyonunu sağlayabilir, her bir entegrasyon test altındaki sınıfları, fonksiyonlar ve 

altındaki network, io işlemlerini yapar ve unit test’e göre daha yavaştır.

 

Tavsiye edilen bu testi development aşamasında değil, bir CI server üzerinde

 

çalıştırmaktır. Günün belirli saatlerinde ya da build sonrası entegrasyon testlerinin çalışması yapılabilir.

 

 

 

Unit testlerin bir pattern’de gayet makul ve düzgün bir şekilde yazılması ancak entegrasyon testlerinin yapılmamasına bir örnek;

 

Author


Baris