Ana içeriğe atla

Python'da Test Odaklı Geliştirme: Yeni Başlayanlar için Kılavuz

Kapsamlı Python eğitimimizle test odaklı geliştirmeye (TDD) dalın. Pratik örneklerle kodlamadan önce sağlam testler yazmayı öğrenin.
Güncel 3 Eki 2026  · 7 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Test etmek, kodunuzun beklediğiniz gibi çalıştığına dair güven verir. Bu eğitimde, Python kullanarak test odaklı geliştirme (TTD) temellerini öğreneceğiz. Başlamadan önce, test odaklı geliştirme hakkında – ne olduğu ve neden kod yazarken önce test yazmanın faydalı olduğu – kısa bir arka plan sunacağız. Uygulamak istediğimiz işlevsellik için önce başarısız testler yazıp ardından asıl fonksiyonları yazacağımız bir test-öncelikli yaklaşım izleyeceğiz.

Eğitim İçin Ön Koşullar

Bu eğitim için temel düzeyde Python bilgisine ihtiyacınız olacak; Python bilginizi tazelemeniz gerekiyorsa şu kursa göz atabilirsiniz: Introduction to Python for Developers.

Test-öncelikli bir yaklaşım, istenen davranışı ve beklenen çıktıları en baştan düşünmemizi sağlar. Python'da test yazmak için pytest ve unnitest gibi çeşitli kütüphaneleri kullanabilirsiniz. Ancak şimdilik, beklenen işlevselliğin beklenen çıktıyı ürettiğini doğrulayacak Yerel (Native) Python ile basit test vakalarının nasıl yazılacağına odaklanacağız.

Basit bir test vakasıyla başlayacak ve testleri kademeli olarak farklı senaryoları kapsayacak şekilde genişleteceğiz. Test vakalarımızı genişlettikçe, geliştirmemiz gereken hatalar veya ilk uygulama mantığımızdaki boşluklar ortaya çıkabilir. Daha gelişmiş test vakalarını yinelemeli olarak yazmak, başarısız olduklarını görmek ve ardından uygulamamızı geliştirmek üzere geri dönmek – Python ile test odaklı geliştirmenin özünde bu süreç vardır.

Bu eğitimde, hiçbir yerel kurulum yapmadan Python kodu yazıp çalıştırmanızı sağlayan, DataCamp'in bulut tabanlı veri defteri DataLab'i kullanacağız. Hadi başlayalım!

DataLab ile Başlarken

Test odaklı geliştirmeye başlamadan önce DataLab'i keşfedip nasıl kullanacağımızı anlamamız gerekiyor ki öğrenme yolculuğumuzda bize yardımcı olsun. DataLab'i açarsanız birçok seçenek olduğunu fark edeceksiniz. Şimdilik DataLab'de Python yazmaya odaklanacağız.

image5.png

Python'u seçerseniz, çalışma kitabı Python yazmanız için bir kod hücresi açar. Şuna benzer görünecektir:

image4.png

Burada bazı faydalı seçenekleriniz var. Örneğin, çıktıyı görmek için hücreyi çalıştırabilir, öğrenmenizi desteklemek üzere yorumlar ya da notlar ekleyebilir ve başlamanıza ya da takıldığınız yeri açmanıza yardımcı olması için yapay zekadan yararlanabilirsiniz. Ayrıca ihtiyaç duyduğunuz kadar hücre ekleyip silebilirsiniz. Biz "Run" seçeneği ile hücreyi çalıştırmaya odaklanacağız. Aşağıdaki kodda da görebileceğiniz gibi, hücreyi çalıştırdığınızda kodunuzun ürettiği her çıktı altta kaydedilir.

Kısa bir not: Birden fazla hücre kullandıysanız ve bir hücrede bir değişken tanımladıysanız ancak onu başka bir hücrede kullanmaya çalışıyorsanız, her hücreyi ayrı ayrı veya tüm çalışma kitabını (çalışma kitabınızın sağ üst kısmındaki "Run" düğmesinden) çalıştırmanız gerekir.

image7.png

Artık DataLab'in temelini öğrendiğimize göre, test odaklı geliştirmeye başlayalım.

Test Odaklı Geliştirme

Test odaklı geliştirme, kodunuzu yazmadan önce testlerini yazmanız anlamına gelir. TTD'yi açıklamak için, sayıları toplayan bir Python betiği yazmayı içeren basit bir örnekle başlayalım. Ancak fonksiyonu yazmadan önce, 1 + 1'in 2'ye eşit olup olmadığını kontrol edecek bir test yazacağız. Bunu aşağıda gösterildiği gibi yerel Python kullanarak yapabilirsiniz.

assert 1 + 1 == 2

Python'daki assert anahtar sözcüğü, test vakaları yazmak ve program koşullarının Doğru'ya (True) değerlendirdiğini teyit etmek için kullanılır. Kodunuzun davranışını ve çıktıları doğrulamanızı sağlar. Bir assert ifadesi başarısız olduğunda bir AssertionError fırlatır ve bu, kodda bir sorun olduğuna işaret eder. Bu durum DataLab çalışma kitabınızda şöyle görünür:

image1.png

Örnek 1: Basit Bir Fonksiyonun Testi

Test fonksiyonuyla başlayalım. Öncelikle, DataLab'de bir Python dosyası açın. Test odaklı geliştirme, önce başarısız olacak bir test yazmayı içerir. O halde, henüz tanımlanmamış olan add() fonksiyonunu çağırarak başarısız olacak bir test yazalım.

assert add(1, 1) == 2

Bu, bir uygulama olmadığını belirten bir NameError ile sonuçlanacaktır; bu aşama "kırmızı" adıyla bilinir. Tanımlanmamış bir fonksiyonu veya değişkeni çağırmaya çalıştığınızda NameError alırsınız.

image3.png

Şimdi fonksiyonu uygulama zamanı. Bunu fonksiyonu tanımlayarak yapabiliriz:

def add(num1, num2):
    return

add fonksiyonumuzu, num1 ve num2 olmak üzere iki parametre alacak şekilde tanımladık. Fonksiyonumuz henüz herhangi bir şey döndürmüyor. Bakalım fonksiyonumuzun bu uygulaması testlerimizden geçiyor mu!

image6.png

Artık bir NameError görmüyoruz. Ancak hücreyi çalıştırmak hâlâ bir hata üretiyor! Bu kez bir AssertionError. Yani testimiz yine başarısız oldu! Bu hatayı neden alıyor olabiliriz? Çünkü henüz hiçbir şey döndürmeyen bir fonksiyon tanımladık.

Testi çalıştırdığımızda, boş uygulamamızla 1 + 1, 2'ye eşit olmadığı için bir AssertionError alıyoruz. Son olarak, fonksiyonun içindeki mantığı doğru şekilde uygulayarak testi geçmesini sağlayabiliriz.

image9.png

Hücrenin köşesindeki yeşil noktayı fark edeceksiniz. Bu, kodunuzun geçerli olduğunu ve hücreyi çalıştırdığınızda testten geçtiğini gösterir. Önceden, bir çalışma hatasıyla kırmızıydı ve hücrenin altında hata türünü gösteriyordu. Bu özellik, DataLab'de kodunuzu hata ayıklamak için kullanışlıdır.

Artık test odaklı geliştirme kullanarak Python'da ilk testinizi yazdınız. Harika iş! Şimdi testlerimizi genişletmeye ve fonksiyonumuzun başarısız olmasına veya beklenen çıktıyı üretmemesine neden olabilecek olası hataları yakalamayı düşünmeye geçeceğiz.

Örnek 2: Birden Fazla Test Vakası

Yalnızca tek bir girdi değeriyle test yapmak, potansiyel hataları ortaya çıkaramayabilir. Özellikle fonksiyonunuz değişken kullanıcı girdisine veya harici mantığa dayanıyorsa hatalar kolayca gizlenebilir. Peki bir fonksiyonu birden çok değere karşı kapsamlı şekilde nasıl test edebiliriz?

Örneğin, fonksiyona yanlış bir veri tipi iletilirse ne olur? Python test çatılarını kullanabilirsiniz, ancak bunun yerine temel Python kullanalım. Önce, farklı kullanım senaryolarını simüle etmek için bir girdi sözlükleri listesi tanımlayacağım:

test_cases = [
    {"num1": 1, "num2": 3, "expected": 4},
    {"num1": 1, "num2": "invalid", "expected": "Error: num2 must be a number"}, 
    {"num1": [1,2,3], "num2": 2, "expected": "Error: num1 must be a number"},
    {"num1": -1, "num2": 1, "expected": 0},
    {"num1": 3.5, "num2": 2.5, "expected": 6.0}, 
    {"num1": 100, "num2": 200, "expected": 300}
]

Yukarıdaki kod, fonksiyon için girdileri ve beklenen çıktıları gösterir. Ancak testimizi bu vakaları dolaşacak şekilde güncellemeliyiz. For döngüsü içinde assert kullanarak listedeki her sözlüğü doğrulayabiliriz.

for test in test_cases:
    assert add(test["num1"], test["num2"]) == test["expected"]

Fonksiyon değişmediğine göre, bu testin geçmesini mi yoksa başarısız olmasını mı bekleriz? Ve hangi hata oluşabilir?

image8.png

Test, sayı olmayan girdileri ele almadığımız için bir TypeError hatası fırlatıyor; peki bir int yerine string veya boolean iletilirse ne olur? Bu durumları yakalayacak şekilde fonksiyonu güncelleyebiliriz! Girdi değişkeninin tamsayı veya float olduğunu kontrol ederek geçersiz tiplerde özel bir mesaj döndürebiliriz.

def add(num1, num2):
    if type(num1) is not int and type(num1) is not float:
        return "Error: num1 must be a number"
    elif type(num2) is not int and type(num2) is not float:
        return "Error: num2 must be a number"
    else:
        return num1 + num2

Testleri yeniden çalıştırdığımızda artık hata almıyoruz; yani testlerimiz geçti. Şimdi yeşil dairenin, geçmekte olan bazı testler uyguladığımızı gösterdiğini görebiliriz. Tebrikler!

image2.png

Son Düşünceler

Bu eğitimde, DataLab kullanarak Python'da test odaklı geliştirmenin temellerini ele aldık. DataLab, yerel kurulum gerektirmeden Python kodu yazıp çalıştırmanızı sağlayan bir bulut IDE sunar. Testler, kod davranışını doğrular ve hataları erken yakalar. Assert ifadeleri koşulları kontrol eder ve başarısızlıklarda istisna fırlatır.

Daha fazla test vakasını keşfedebilir ve kendi testlerinizi DataLab'de yazmaya başlayabilirsiniz! Python'da test etmeyi daha fazla öğrenmek isterseniz DataCamp kursumuza göz atın - Introduction to Testing in Python.


Amina Edmunds's photo
Author
Amina Edmunds
LinkedIn

Amina, Datacamp'te içerik geliştirme stajyeridir. Mimarlık ve Eğitim geçmişine sahipken kariyer değiştirerek yazılım geliştirmeye yöneldi; JavaScript ile başlayıp şimdi Python'a odaklanıyor.

Konular
Python

Test Yolculuğunuza Bugün Başlayın!

Kurs

Python'da Teste Giriş

4 sa
26.6K
Python testlerini ustaca kullanın: Pytest ve unittest ile yöntemleri öğrenin, kontroller oluşturun ve hatasız kod yazın.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör