# Birim Testi vs Entegrasyon Testi

Adres: https://softwaredictionary.org/tr/karsilastirma/unit-test-vs-integration-test
Son güncelleme: 2026-09-30

Kısaca: Birim testi, bir fonksiyon gibi küçük bir parçayı tek başına, milisaniyelerde denetler; entegrasyon testi ise birkaç parçanın birlikte çalıştığını denetler.

## Birim testi ile entegrasyon testi arasındaki fark nedir?

Birim testi, test edilebilen en küçük kod parçasını, genellikle bir fonksiyonu ya da sınıfı, bağımlılıkları sahte nesneler (fake) ya da mock'larla değiştirilmiş olarak doğrular. Entegrasyon testi ise birkaç bileşenin birlikte çalıştığını doğrular; örneğin bir API rotasının gerçek veritabanıyla ya da ağ üzerinden konuşan iki servisin çalışmasını.

Fark kapsamdadır ve kapsam ödünleşimleri belirler. Birim testleri hızlı, kesin ve kararlıdır; bir hata doğrudan bozuk fonksiyonu gösterir, ama parçalar arasındaki bağlantılardaki sorunları yakalayamaz. Entegrasyon testleri yanlış sorguları, uyuşmayan veri biçimlerini ve yapılandırma hatalarını yakalar, ama daha yavaştır, daha fazla kurulum gerektirir ve hata ayıklaması daha zor olabilir.

Sağlıklı bir test paketi ikisini de kullanır; bu çoğu zaman bir test piramidi olarak gösterilir: tabanda çok sayıda birim testi, ortada daha az entegrasyon testi ve tepede az sayıda uçtan uca test. Birim testleri kod yazarken hızlı geri bildirim verir, entegrasyon testleri ise parçaların gerçekten birbirine uyduğunu doğrular.

Sık yapılan bir yanlış, yüksek birim testi kapsamının sistemin çalıştığı anlamına geldiği düşüncesidir. Her birim testlerinden geçerken bütün yine başarısız olabilir; örneğin bir fonksiyon tarihleri, bir sonraki bileşenin beklemediği bir biçimde döndürdüğünde.

| Özellik | Birim Testi | Entegrasyon Testi |
| --- | --- | --- |
| Kapsam | Tek bir fonksiyon, metot ya da sınıf | Birlikte çalışan birkaç bileşen |
| Bağımlılıklar | Mock, stub ya da sahte nesnelerle değiştirilir | Gerçek ya da gerçeğe yakın, örneğin bir test veritabanı |
| Hız | Milisaniyeler; binlercesi saniyeler içinde çalışır | G/Ç, ağ ve kurulum nedeniyle daha yavaş |
| Bir hata neyi gösterir | Bozulan fonksiyonu tam olarak | Etkileşimin bir yerindeki sorunu |
| Neyi yakalar | Birimin içindeki mantık hataları ve uç durumlar | Bağlantı, veri biçimi, sorgu ve yapılandırma hataları |
| Kurulum | Asgari: kodu girdilerle çağırmak yeter | Veritabanları, servisler ya da konteynerler çalışıyor olmalı |
| Pakette payı | Testlerin çoğu, test piramidinin tabanında | Daha az test, piramidin ortasında |

## Birim Testi şu durumlarda doğru seçim

- Saf mantığı, hesaplamaları ya da uç durumları test ediyorsunuz.
- Kod yazarken saniyeler içinde geri bildirim istiyorsunuz.
- Hangi fonksiyonun bozulduğunu tam olarak belirlemeniz gerekiyor.

## Entegrasyon Testi şu durumlarda doğru seçim

- Kodunuzun bir veritabanıyla ya da API ile doğru konuştuğunu doğrulamanız gerekiyor.
- Hatalar genellikle modüllerin birleştiği yerlerde çıkıyor.
- Yapılandırmayı, sorguları ya da serileştirmeyi doğruluyorsunuz.

## Sık sorulan sorular

**Kaç birim testi, kaç entegrasyon testi yazmalıyım?**

Yaygın bir kılavuz test piramididir: çoğunlukla birim testleri, daha az entegrasyon testi ve yalnızca bir avuç uçtan uca test. Doğru karışım, hatalarınızın genellikle nereden geldiğine bağlıdır.

**Entegrasyon testi, uçtan uca test ile aynı şey mi?**

Hayır. Entegrasyon testi birkaç bileşeni birlikte denetler; uçtan uca test ise tüm uygulamayı bir kullanıcının yapacağı gibi, çoğu zaman gerçek bir tarayıcı üzerinden sürer.

**Entegrasyon testlerinde mock kullanılmalı mı?**

Entegre edilen parçalar için çoğunlukla hayır, çünkü amaç gerçek etkileşimi denetlemektir. Bir ödeme sağlayıcısı gibi denetlemediğiniz dış servisleri mock'lamak yine de yaygındır.

---

Software Dictionary: https://softwaredictionary.org/tr · https://softwaredictionary.org/tr/llms.txt
