İçeriğe geç
parazade

Birim Testi Nedir?

İngilizce: Unit Testing

Yayın: · Son güncelleme:

Birim Testi Nedir? Kısaca

Birim testi (unit test), bir yazılımın en küçük test edilebilir parçasının, genelde tek bir fonksiyon ya da metodun, diğer bileşenlerden bağımsız olarak doğru çalışıp çalışmadığını kontrol eden otomatik testtir.

Birim Testi nedir?
İçindekiler
  1. Birim testi nedir?
  2. Örnek bir birim testi
  3. İyi birim testinin kuralları

Birim testi nedir?

Birim testi, koddaki tek bir parçayı yalıtarak dener. Veritabanına, internete ya da başka servislere bağlanmaz. Yalnız "bu girdiyi verirsem bu çıktıyı alır mıyım" sorusunu sorar.

Hızlıdır. Yüzlerce birim testi birkaç saniyede çalışabilir, bu yüzden geliştiriciler onları her değişiklikten sonra çalıştırır.

Örnek bir birim testi

Bir fonksiyonun KDV dahil fiyat hesapladığını düşünün. Fonksiyon fiyatı ve oranı alıp toplamı döndürüyor. Varsayımsal olarak 100 TL ve yüzde 20 oranla çağrıldığında 120 TL dönmesi gerekir.

Python'da bunun testi şöyle olabilir:

def test_kdv_dahil_fiyat():
    assert kdv_dahil(100, 20) == 120

İyi bir test seti yalnız normal durumu değil, sınır durumlarını da dener: sıfır fiyat, negatif değer, çok büyük sayılar. Dış bir servise bağlanan bir kod parçası test edilecekse o servis yerine sahte bir nesne, yani mock kullanılır.

İyi birim testinin kuralları

Her test tek bir şeyi kontrol etsin. Testin adı neyi doğruladığını anlatsın; test1 yerine bos_sepette_toplam_sifirdir gibi.

Testler birbirine bağlı olmamalı. Hangi sırayla çalışırsa çalışsın aynı sonucu vermeli. Python için pytest, JavaScript için Jest, Java için JUnit yaygın araçlardır. Kodu yazarken test etmesi zor bir fonksiyonla karşılaşıyorsanız, bu genelde fonksiyonun çok fazla iş yaptığının işaretidir.

Sıkça Sorulan Sorular

Unit test ile entegrasyon testi arasındaki fark nedir?

Unit test tek bir parçayı diğerlerinden yalıtarak dener. Entegrasyon testi ise birden fazla parçanın, örneğin uygulama ile veritabanının, birlikte doğru çalışıp çalışmadığını kontrol eder.

Her fonksiyon için birim testi yazmak gerekir mi?

Şart değildir. Önce iş kuralı içeren, hesaplama yapan ve sık değişen kodlara öncelik verin. Yalnız bir değeri başka yere aktaran basit kodlar için test yazmak çoğu zaman az değer üretir.

İlgili terimler

Entegrasyon Testi(Integration Testing)Entegrasyon testi, bir yazılımın ayrı ayrı geliştirilmiş bileşenlerinin, örneğin uygulama kodu, veritabanı ve dış servislerin, bir araya geldiğinde doğru şekilde iletişim kurup çalıştığını doğrulayan test türüdür.MockMock, yazılım testlerinde gerçek bir bağımlılığın, örneğin veritabanı, ödeme servisi ya da e-posta sağlayıcısının yerine geçen ve davranışı önceden belirlenen sahte nesnedir. Testi hızlı, bağımsız ve tekrarlanabilir kılar.Yazılım Testi(Software Testing)Yazılım testi, bir programın beklendiği gibi çalışıp çalışmadığını kontrol etmek ve hataları kullanıcıya ulaşmadan bulmak için yapılan sistemli denemelerin bütünüdür. Elle ya da otomatik araçlarla yapılabilir.Test Otomasyonu(Test Automation)Test otomasyonu, yazılım testlerinin bir insan tarafından elle yapılması yerine önceden yazılmış betikler ve araçlar aracılığıyla otomatik olarak çalıştırılması ve sonuçların raporlanmasıdır.Fonksiyon(Function)Fonksiyon, programlamada belirli bir işi yapan, isim verilmiş ve gerektiğinde tekrar tekrar çağrılabilen kod bloğudur. Girdi olarak parametre alabilir ve geriye bir değer döndürebilir.PythonPython, okunabilir ve sade sözdizimiyle bilinen, genel amaçlı, açık kaynaklı bir programlama dilidir. Veri bilimi, yapay zekâ, otomasyon ve web geliştirmede en yaygın kullanılan dillerden biridir.Nesne(Object)Nesne (object), nesne yönelimli programlamada bir sınıftan üretilen, kendi verilerini (özellikler) ve davranışlarını (metotlar) taşıyan somut örnektir. Örneğin `Araba` sınıfından üretilen her araç ayrı bir nesnedir.

İlgili yazılar

Yapay Zeka ile Kazanç

Kendi Bilgisayarında Ücretsiz Yapay Zekâ Sistemi Kur: Ekran Kartı, İşlemci ve RAM ile Adım Adım

Kendi bilgisayarında ücretsiz ve limitsiz bir yapay zekâ sistemi kurmak mümkün: Ollama ya da LM Studio ile dil modeli, Continue ile kod asistanı, ComfyUI ya da Forge ile görsel üretim. Belirleyici olan ekran kartının belleğidir (VRAM); 8 GB'lık kartta 7-8B modeller rahat çalışır, kart yoksa işlemci ve RAM ile daha yavaş çalışır.

· 30 dk okuma