Entegrasyon Testi
- İngilizcesi
- Integration Test
- Türkçe karşılığı
- tümleştirme testi
- Okunuşu
- intıgreyşın test
Günlük kullanımda iki ad da yaygın.
Kısaca
Entegrasyon testi, kod, veritabanı ve API gibi bir sistemin birkaç parçasının birlikte doğru çalışıp çalışmadığını kontrol eden otomatik bir testtir.
Entegrasyon testi nedir?
Entegrasyon testi, bir sistemin iki ya da daha fazla bileşeninin doğru biçimde iş birliği yaptığını doğrular. Tek bir fonksiyonu yalıtarak test etmek yerine uygulama kodunuz ile bir veritabanı gibi ya da HTTP üzerinden konuşan iki servis gibi gerçek parçaları birbirine bağlar ve ortaya çıkan sonucu kontrol eder.
Tipik bir entegrasyon testi, çoğunlukla bir konteyner içinde çalışan bir test veritabanı gibi gerçek bağımlılıkları başlatır, ardından bir istek gönderir ya da bir servisi çağırır; hem yanıtı hem de tabloya eklenen yeni bir satır gibi yan etkileri kontrol eder. Bu testler gerçek altyapı kullandığı için birim testlerinden daha yavaştır. Ayrıca bir testin verisinin diğerini etkilememesi için dikkatli bir hazırlık ve temizlik gerektirirler.
Bir araba yaptığınızı düşünün: birim testleri motorun ve vites kutusunun ayrı ayrı çalıştığını kontrol eder, entegrasyon testi ise her şey birbirine cıvatalandığında motorun tekerlekleri gerçekten döndürdüğünü kontrol eder. Entegrasyon testleri, bileşenler arasındaki sınırlarda yaşayan sorunları yakalar: yanlış SQL sorguları, uyumsuz veri biçimleri, hatalı yapılandırılmış middleware ya da bozulmuş API sözleşmeleri gibi.
Entegrasyon testleri, birim testleri ile uçtan uca testlerin arasında yer alır. Uçtan uca testin aksine entegrasyon testi genellikle uygulamanın tamamını kullanıcı arayüzü üzerinden çalıştırmaz. Birkaç bileşene ve aralarındaki bağlantılara odaklanır.
Önemli noktalar
- Entegrasyon testleri, birden fazla gerçek bileşenin birlikte çalıştığını kontrol eder.
- Veritabanı sorguları, API sözleşmeleri ve yapılandırma gibi sınırlardaki hataları yakalarlar.
- Gerçek bağımlılıklar kullandıkları için birim testlerinden yavaştırlar.
- Her test, bağımsız kalmak için kendi verisini hazırlamalı ve temizlemelidir.
Örnek
import sqlite3
def save_user(db, name):
db.execute("INSERT INTO users (name) VALUES (?)", (name,))
def find_user(db, name):
return db.execute("SELECT name FROM users WHERE name = ?", (name,)).fetchone()
def test_save_and_find_user():
db = sqlite3.connect(":memory:") # a real database, kept in memory
db.execute("CREATE TABLE users (name TEXT)")
save_user(db, "Ada")
assert find_user(db, "Ada") == ("Ada",)Sık sorulan sorular
Entegrasyon testi ile uçtan uca test arasındaki fark nedir?
Entegrasyon testi, bir servis ve veritabanı gibi birkaç bileşenin birlikte çalıştığını kontrol eder. Uçtan uca test ise tam bir kullanıcı yolculuğunu, genellikle gerçek bir kullanıcı gibi arayüz üzerinden, uygulamanın tamamında kontrol eder.
Entegrasyon testleri gerçek bir veritabanı kullanmalı mı?
Genellikle evet, çünkü amaç gerçek bağlantıyı test etmektir. Pek çok ekip, sonuçların gerçekçi olması ve verinin testler arasında sıfırlanması için her test çalıştırmasında bir konteynerde tek kullanımlık bir veritabanı başlatır.
Sık karşılaştırılanlar
İlgili sayfalar
- Birim TestiTest ve Kalite, s. 4Birim testi, bir fonksiyonun, metodun ya da sınıfın programın geri kalanından yalıtılmış olarak doğru davrandığını doğrulayan küçük ve otomatik bir kontroldür.
- Uçtan Uca TestTest ve Kalite, s. 35Uçtan uca test, kullanıcı arayüzünden veritabanına ve geri dönüşe kadar tam bir kullanıcı yolculuğunu uygulamanın tamamında çalıştıran otomatik bir testtir.
- MockingTest ve Kalite, s. 16Mocking, kodu yalıtılmış biçimde test etmek için veritabanı ya da API gibi gerçek bir bağımlılığı kontrol ettiğiniz bir sahteyle değiştiren test tekniğidir.
- VeritabanıVeritabanları, s. 37Veritabanı, bilgisayarda düzenli biçimde saklanan ve uygulamaların verimlice kaydedip arayıp güncelleyebildiği, bir yazılımla yönetilen veri topluluğudur.
- APIBackend ve API'ler, s. 2API, bir yazılımın başka bir yazılımdan veri ya da işlem talep etmesini sağlayan, belgelenmiş ve öngörülebilir kurallar bütünüdür.
- CI/CDDevOps ve Bulut, s. 9CI/CD, kod değişikliklerini sık sık derleyen, test eden ve yayınlayan otomatik pratikler bütünüdür; yazılım kullanıcılara hızlı ve güvenli biçimde ulaşır.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin