Yeni Başlayanlar İçin Pytest Eğitimi: Fikstürler, Parametrelendirme ve Gerçek Örnekler

  1. Ana sayfa
  2. Blog
  3. Test Otomasyonu

Test Otomasyonu

Yeni Başlayanlar İçin Pytest Eğitimi: Fikstürler, Parametrelendirme ve Gerçek Örnekler

Pytest, Python testlerini düz işlevler ve düz iddia ifadeleriyle yazmanıza olanak tanır. Adım adım küçük bir test paketi oluşturun, gerçek arıza çıktılarını okuyun ve her gün kullanacağınız özellikleri öğrenin.

10 dk okuma
Yeni başlayanlar için Pytest eğitimi: fikstürler, parametrelendirme ve gerçek örnekler

Önemli noktalar

  • Pytest, test_* isimli fonksiyonları bulur ve bunları düz assert ifadelerle kontrol eder.
  • Fikstürler, yalnızca bağımsız değişken olarak adlandırılarak talep edilen, yeniden kullanılabilir kurulum ve temizleme sağlar.
  • @pytest.mark.parametrize birçok girişi olan bir testi çalıştırır.
  • Paylaşılan fikstürleri conftest.py‘e koyun ve bunları içe aktarmanıza gerek kalmaz.

Size angarya gibi geldiği için test yazmaktan kaçındıysanız, bu pytest eğiticisi fikrinizi değiştirmelidir. Pytest törenin çoğunu kaldırır: devralınacak sınıflar ve hatırlanacak özel iddia yöntemleri yoktur. Bir test yalnızca iki satırdan oluşabilir.

Küçük bir alışveriş sepeti oluşturacağız ve onu adım adım test edeceğiz. Her şeyi Python 3.13’te pytest 9.2 ile çalıştırdık ve makinenizde farklılık gösterecek dosya yollarını ve zamanlama ayrıntılarını düzeltmiş olsak da gösterilen çıktı gerçektir.

Neden pytest?

Python, iyi çalışan unittest ile birlikte gelir, ancak pytest genellikle daha uygun seçimdir. İşte her birinde aynı kontrol:

Görev birim test pytest
Eşitliği kontrol edin self.assertEqual(a, b) a == b'yi iddia et
Bir istisnayı kontrol edin self.assertRaises(...) pytest.raises(...)
Test yapısı TestCase‘den miras alan bir sınıf Sade bir işlev
Kurulum ve temizleme setUp ve tearDown yöntemleri Yeniden kullanılabilir armatürler
Birçok giriş subTest döngüler parametrelendirmek

Pytest ayrıca mevcut unittest testlerinizi de çalıştırabilir, böylece kademeli olarak geçiş yapabilirsiniz. Kapsama için pytest-cov ve paralel çalışmalar için pytest-xdist dahil olmak üzere geniş bir eklenti ekosistemine de sahiptir.

Pytest’i yükle

Python sanal ortam eğitimimizde açıklandığı gibi önce bir sanal ortam oluşturun ve ardından yükleyin:

pip install pytest
pytest --version

# pytest 9.2.0

cart.py ve test_cart.py olmak üzere iki dosya içeren bir proje klasörü oluşturun. Pytest, aşağıdaki adlandırma kurallarına göre testleri otomatik olarak bulur: test_*.py veya *_test.py adlı dosyalar, test ile başlayan işlevler ve Test ile başlayan sınıflar. Bir test alınmıyorsa kontrol edilecek ilk şey bir adlandırma uyuşmazlığıdır.

Test edilecek kod

# cart.py
class Cart:
    def __init__(self):
        self.items = []

    def add(self, name, price, qty=1):
        if qty < 1:
            raise ValueError("qty must be at least 1")
        self.items.append((name, price, qty))

    def total(self, discount=0):
        subtotal = sum(price * qty for _, price, qty in self.items)
        return round(subtotal * (1 - discount / 100), 2)

İlk testleriniz

# test_cart.py
from cart import Cart

def test_empty_cart_is_free():
    assert Cart().total() == 0

Bu tam bir test. Proje klasöründen pytest‘i çalıştırın ve bir geçme testi rapor eder. Bir içe aktarma hatası alırsanız, geçerli klasörü içe aktarma yoluna ekleyen python -m pytest olarak çalıştırın.

Okuma hataları

Pytest’in gerçekten parladığı yer burası. İşte kasıtlı olarak yanlış beklenen değere sahip bir test:

def test_wrong_total():
    c = Cart()
    c.add("Keyboard", 1500)
    assert c.total() == 1400

Ve çalıştırdığımızda yazdırdığı şey bu:

    def test_wrong_total():
        c = Cart()
        c.add("Keyboard", 1500)
>       assert c.total() == 1400
E       assert 1500.0 == 1400
E        +  where 1500.0 = total()

FAILED fail_example.py::test_wrong_total - assert 1500.0 == 1400
============================== 1 failed in 0.12s ==============================

> arızalı satırı işaretler ve E satırları gerçek değerleri gösterir. Özel bir mesaj eklemenize gerek yoktu, çünkü pytest assert ifadelerini yeniden yazar, böylece karşılaştırdıklarını rapor edebilirler. Listeler ve sözlükler için de aynısını yapar ve hangi öğelerin farklı olduğunu tam olarak belirtir.

İstisnaları test etme

Hata yönetimi de bir davranıştır ve testleri hak eder. pytest.raises yalnızca blok beklenen istisnayı ortaya çıkarırsa geçer:

import pytest

def test_rejects_zero_qty():
    with pytest.raises(ValueError, match="at least 1"):
        Cart().add("Pen", 10, qty=0)

İsteğe bağlı match argümanı, mesajı normal bir ifade kullanarak kontrol eder, böylece kazara farklı bir ValueError geçmeyecektir. Bunun gibi hataların nasıl oluşturulacağını ve ele alınacağını öğrenmek için Python istisna işleme kılavuzumuzu okuyun.

Armatürler: yeniden kullanılabilir kurulum

Çoğu testin önce hazırlanmış bir şeye ihtiyacı vardır. Bir fikstür bunu sağlayan bir işlevdir. Bunu @pytest.fixture ile süsleyin ve onu argüman olarak adlandıran herhangi bir test sonucu alır:

@pytest.fixture
def cart():
    c = Cart()
    c.add("Keyboard", 1500)
    c.add("Mouse", 500, qty=2)
    return c

def test_total(cart):
    assert cart.total() == 2500

Her teste varsayılan olarak yeni bir sepet verilir, dolayısıyla testler birbirini etkileyemez. Pytest, argüman adını fikstürün adıyla eşleştirir ve fikstürü asla kendiniz çağırmazsınız. @pytest.fixture bir dekoratördür ve bunu Python dekoratörlerinin açıklaması bölümünde açıklıyoruz.

Verimli temizleme

Daha sonra temizlemeniz gerektiğinde return yerine yield kullanın. Test başarısız olsa bile test bittiğinde yield‘ten sonraki kod çalışır:

@pytest.fixture
def temp_db():
    print("\nopen db")
    yield {"users": []}
    print("close db")

def test_db(temp_db):
    assert temp_db["users"] == []

Yazdırılan çıktıyı göstermek için -s ile çalışmak siparişin açık olduğunu, test ettiğini ve ardından kapatıldığını doğruladı.

Fikstür kapsamı ve conftest.py

Varsayılan olarak bir fikstür test başına bir kez çalıştırılır. Veritabanı veya tarayıcı gibi pahalı kurulumlar için ömrünü scope ile değiştirin:

Kapsam Bir kez oluşturuldu
function (varsayılan) testi
sınıf Test sınıfı
modül Dosya
paket Paket
oturum Tüm test çalıştırması

Çeşitli dosyalar tarafından kullanılan fikstürleri conftest.py adlı bir dosyaya koyun. Pytest bunu otomatik olarak yükler, böylece testler herhangi bir içe aktarma işlemi yapmadan demirbaşlarını kullanabilir. Ancak paylaşılan kapsamlara dikkat edin çünkü bir testte yapılan değişiklik diğerine sızabilir.

Parametrelendirme: bir test, birçok giriş

Her değer için bir test kopyalamak yerine aşağıdaki durumları listeleyin:

@pytest.mark.parametrize("discount, expected", [
    (0, 2500),
    (10, 2250),
    (100, 0),
])
def test_discount(cart, discount, expected):
    assert cart.total(discount) == expected

Her satır kendi testi haline gelir ve bunu, dosyanın tamamını çalıştırmamızın ayrıntılı çıktısında görebilirsiniz:

test_cart.py::test_total PASSED                        [ 16%]
test_cart.py::test_discount[0-2500] PASSED             [ 33%]
test_cart.py::test_discount[10-2250] PASSED            [ 50%]
test_cart.py::test_discount[100-0] PASSED              [ 66%]
test_cart.py::test_rejects_zero_qty PASSED             [ 83%]
test_cart.py::test_empty_cart_is_free PASSED           [100%]

============================== 6 passed in 0.05s ==============================

Bir satır başarısız olursa diğerleri çalışmaya devam eder ve ad size tam olarak hangi değerlerin soruna neden olduğunu söyler. Parametrelendirmeyi cart fikstürüyle birleştirdiğimize dikkat edin. Hata bulma olasılığı yüksek değerleri seçmek için sınır değer analizini kullanın.

İpucu: Parametreleriniz uzun veya belirsiz olduğunda, raporda her duruma okunabilir bir ad vermek için ids=["none", "ten", "full"]‘yi iletin.

Kullanışlı yerleşik armatürler

Pytest birkaç hazır fikstür içerir. Bu ikisi özellikle kullanışlıdır ve her ikisi de bizim testimizde başarılı olmuştur:

def test_write_report(tmp_path):
    report = tmp_path / "report.txt"
    report.write_text("passed")
    assert report.read_text() == "passed"

def read_mode():
    return os.environ.get("APP_MODE", "dev")

def test_mode(monkeypatch):
    monkeypatch.setenv("APP_MODE", "staging")
    assert read_mode() == "staging"

tmp_path her teste benzersiz bir geçici klasör verir, böylece testler hiçbir zaman gerçek dosyalara dokunmaz. monkeypatch ortam değişkenlerini veya niteliklerini değiştirir ve test sona erdiğinde değişikliği geri alır. Bir diğer kullanışlı özellik ise, yazdırılan çıktıyı yakalayıp kontrol edebilmenizi sağlayan capsys‘tür.

İşaretçiler: atla ve xfail

İşaretleyiciler testlere etiketler ve davranışlar ekler:

@pytest.mark.skip(reason="payment sandbox is down")
def test_payment():
    assert False

@pytest.mark.xfail(reason="floating point")
def test_rounding():
    assert 0.1 + 0.2 == 0.3

skip testi hiç çalıştırmaz. xfail onu çalıştırıyor ancak başarısızlık bekliyor, bu nedenle bilinen bir sorun yapınızı bozmaz. Aynı dosyadaki diğer ekstra testlerle birlikte çalışmamız 3 passed, 1 skipped, 1 xfailed olarak özetlenmiştir. Bu arada yuvarlama testi gerçekten başarısız oluyor: kayan nokta aritmetiğinde 0,1 + 0,2 tam olarak 0,3 değil. Ondalık sayıları karşılaştırırken pytest.approx(0.3) kullanın.

Ayrıca @pytest.mark.slow gibi kendi işaretçilerinizi oluşturabilir ve yalnızca pytest -m slow ile bunları çalıştırabilir veya -m "not slow" ile bunları dışarıda bırakabilirsiniz. Uyarılardan kaçınmak için özel işaretçileri yapılandırma dosyanıza kaydedin.

Yararlı komut satırı bayrakları

Komut Ne işe yarar
pytest -v Her testin adını göster
pytest -q Daha kısa bir özet göster
pytest -x İlk başarısızlıkta dur
pytest -k indirim Adları bir kelimeyle eşleşen testleri çalıştırın
pytest -s print çıktısını göster
pytest --lf Yalnızca son hataları yeniden çalıştırın
pytest --pdb Arıza durumunda hata ayıklayıcıyı açın
pytest test_cart.py::test_total Belirli bir testi çalıştırın

CI’da pytest çalıştırılıyor

Testler, her değişiklikte otomatik olarak çalıştırıldığında çok değerlidir. Minimal bir GitHub Eylemleri işi şuna benzer:

steps:
  - uses: actions/checkout@v4
  - uses: actions/setup-python@v5
    with:
      python-version: "3.13"
  - run: pip install -r requirements.txt
  - run: python -m pytest

Pytest, testler başarısız olduğunda sıfırdan farklı bir kodla çıkar; bu da boru hattının durmasına neden olur. Bu iş akışı dosyasını biz yürütmedik, dolayısıyla projenize uyarlayın. GitHub Actions CI/CD kılavuzumuz ayrıntıları açıklamaktadır. Pytest ayrıca, Selenium Python eğiticimiz ve Page Object Model eğiticimiz‘in gösterdiği gibi, tarayıcı testleri için de iyi çalışır.

Son sözler

Artık çoğu Python test paketi için ihtiyacınız olan şeye sahipsiniz: düz iddialar, kurulum için fikstürler, varyasyonlar için parametrelendirme ve hız için birkaç işaret. Küçük başlayın. Yakın zamanda bir hatayı düzelttiğiniz bir işlevi seçin ve önce bu hata için bir test yazın. Her düzeyde neyi test etmeniz gerektiğinden emin değilseniz birim ve entegrasyon testi hakkında bilgi edinin.

Sık sorulan sorular

Pytest ne için kullanılır?

Pytest bir Python test çerçevesidir. Birim, entegrasyon ve API testleri için kullanılır ve ayrıca Selenium ve Playwright gibi tarayıcı araçlarıyla da iyi çalışır.

Pytest, birim testten daha mı iyi?

Birçok takım daha basit sözdizimi, fikstürler ve daha net hatalar nedeniyle onu tercih ediyor. Unittest’in kuruluma ihtiyacı yoktur ve pytest mevcut Unittest testlerini de çalıştırabilir.

Pytest’te fikstür nedir?

Fikstür, veri veya bağlantı gibi testin ihtiyaç duyduğu şeyleri hazırlayan bir işlevdir. Testler bunu argüman olarak adlandırarak alırlar.

conftest.py nedir?

Test dosyaları arasında fikstür ve kancaları paylaşmak için özel bir dosyadır. Pytest bunu otomatik olarak yükler, dolayısıyla demirbaşlarının içe aktarma beyanına ihtiyacı yoktur.

Pytest neden testlerimi bulamıyor?

Genellikle bir adlandırma sorunudur. Dosyalar test_*.py veya *_test.py olarak adlandırılmalı ve işlevler test ile başlamalıdır. Ayrıca doğru klasörden çalıştırdığınızdan emin olun.

Öğrenmeye devam et

Stack Quora ile çalışın

Test, WordPress veya SEO konusunda yardıma mı ihtiyacınız var?

Ekiplerin daha iyi yazılımlar sunmasına ve sitelerini büyütmesine yardımcı oluyoruz. Bize ne üzerinde çalıştığınızı söyleyin, biz de bir sonraki adım için net bir öneride bulunalım.

Okumaya devam et

Daha fazla kılavuz test, yapay zeka ve modern geliştirme

Bu makaleyi beğendiniz mi? Bir konu seçin ve doğrudan en yeni eğitimlerimize geçin.

Yapay zekâ

Yapay Zeka Halüsinasyonları Açıklandı: Dil Modelleri Neden İşleri Düzeltiyor ve Nasıl Azaltılabilir?

Yapay zeka halüsinasyonları açıkladı: ne olduklarını, dil modellerinin bunları neden ürettiğini, yaygın türlerini, temellendirme ve yönlendirmelerle…

Makaleyi okuyun →
DevOps

Açıklanan Ortam Değişkenleri: .env Dosyaları, Sırlar ve Yapılandırma Doğru Yapıldı

Çalıştırdığımız Python örnekleriyle açıklanan ortam değişkenleri: bunları okumak ve ayarlamak, neden her değerin bir dize olduğu, .env dosyaları, sü…

Makaleyi okuyun →
Yazılım geliştirme

API Hız Sınırlamasının Açıklaması: Algoritmalar, Başlıklar ve 429 Hatalarının Ele Alınması

API hızı sınırlaması, çalıştırdığımız bir simülasyonla açıklanmıştır: belirteç kümesi, sabit pencere, kayan pencere, 429 yanıt, hız sınırı başlıklar…

Makaleyi okuyun →
Test otomasyonu

Python'da alay etme: Unittest.mock, patch ve Testleri Yalan Yapan Hatalar

Unittest.mock ile Python'da alay etme, test edildi: Sahte ve dönüş_değeri, yan_etki, bir adın kullanıldığı yerde yama uygulama, spesifikasyon ve oto…

Makaleyi okuyun →
Yazılım testi

Kod Kapsamının Açıklaması: Hat ve Şube Kapsamı ve %100'ün Gerçek Anlamı

Kod kapsamı gerçek bir kapsama.py çalışmasıyla açıklanmıştır: hat, şube ve durum kapsamı, bir raporun okunması, %100 kapsamın neden hâlâ hataları ka…

Makaleyi okuyun →
Veritabanları ve SQL

SQL'de DELETE vs TRUNCATE vs DROP: Farklılıklar, Geri Alma ve Her Biri Ne Zaman Kullanılmalı

DELETE vs TRUNCATE vs DROP test edilmiş SQL ile açıklandı: her birinin neyi kaldırdığı, geri aldığı, tetiklediği, kimlik sıfırlaması, hızı ve Postgr…

Makaleyi okuyun →
Veritabanları ve SQL

Açıklanan SQL Görünümleri: Örneklerle Tuzakları Oluşturun, Kullanın ve Önleyin

Çalıştırdığımız sorgularla açıklanan SQL görünümleri: görünüm oluşturma, canlı sonuçlar, sütunları gizleme, performans, güncellenebilir ve gerçekleş…

Makaleyi okuyun →
Yazılım geliştirme

TypeScript Arayüzü ve Tür: Gerçek Farklılıklar, Derleyiciyle Test Edildi

TypeScript arayüzü ve türü, gerçek derleyiciyle kontrol edildi: her ikisinin de yapabileceği, yalnızca birinin yapabileceği, bildirim birleştirme, g…

Makaleyi okuyun →
Yazılım geliştirme

Python *args ve **kwargs'ın Açıklaması: Açık Örneklerle Esnek Fonksiyonlar

Python *args ve **kwargs çalıştırdığımız kodla açıklanmıştır: paketleme ve paketten çıkarma, parametre sırası, yalnızca anahtar kelime ve yalnızca k…

Makaleyi okuyun →
Yazılım geliştirme

Python Lambda İşlevleri: Söz Dizimi, Gerçek Kullanımlar ve Ne Zaman Kullanılmaması Gerektiği

Çalıştırdığımız kodla açıklanan Python lambda işlevleri: sözdizimi, anahtarla sıralama, harita ve filtre, kapatmalar, geç bağlama tuzağı ve normal b…

Makaleyi okuyun →
Yapay zekâ

Yapay Zeka Ajanları Nelerdir? Çalıştırabileceğiniz Basit Bir Aracı Döngüsüyle Nasıl Çalışırlar?

Yapay zeka ajanları nedir? Aracı döngüsüne, araçlara, belleğe ve korkuluklara ilişkin basit bir kılavuz, çalıştırdığımız küçük bir Python döngüsü, g…

Makaleyi okuyun →
DevOps

İzleme ve Gözlemlenebilirlik: Günlükler, Metrikler ve İzlerle Gerçek Fark

İzleme ve gözlemlenebilirliğin açıklanması: bilinen ve bilinmeyen arızalar, günlükler, ölçümler ve izler, ödeme olayının gözden geçirilmesi, altın s…

Makaleyi okuyun →
DevOps

Docker Birimleri ve Bağlama Bağlantıları: Konteyner Verilerini Doğru Şekilde Kalıcılaştırın

Docker birimleri ile bağlama bağlamaları arasındaki karşılaştırma açıklandı: kapsayıcı verilerinin neden kaybolduğu, adlandırılmış birimler, bağlama…

Makaleyi okuyun →
Test otomasyonu

TDD ve BDD: Temel Farklılıklar, Her İki Şekilde Geliştirilmiş Bir Özellik ve Her Birinin Ne Zaman Kullanılacağı

TDD ve BDD, her iki yönde de oluşturulmuş bir indirim özelliğiyle açıklandı: çalıştırdığımız kodla kırmızı-yeşil-refactor, Verilen-Ne Zaman-O Zaman …

Makaleyi okuyun →
Yazılım testi

Kullanıcı Kabul Testi (UAT): Süreç, Kontrol Listesi ve Gerçek Örnekler

Kullanıcı kabul testi açıklandı: bunu kimin yürüttüğü, QA'dan farkı, yedi adımlı bir süreç, bir UAT test senaryosu şablonu, bir kontrol listesi, otu…

Makaleyi okuyun →
Veritabanları ve SQL

Açıklanan SQL NULL Değerleri: IS NULL, COALESCE, NULLIF ve Kaçınılması Gereken Tuzaklar

SQL NULL değerleri, çalıştırdığımız sorgularla açıklandı: üç değerli mantık, IS NULL, COALESCE, NULLIF, toplamaların, birleştirmelerin ve sıralamanı…

Makaleyi okuyun →
Veritabanları ve SQL

SQL CASE WHEN İfadesi: Sözdizimi, Gerçek Örnekler ve Yaygın Hatalar

SQL CASE WHEN çalıştırdığımız sorgularla açıkladı: basit ve aranmış formlar, koşul sırası, SUM'lu pivotlar, COUNT hileleri, özel sıralama, güncellem…

Makaleyi okuyun →
Yazılım geliştirme

JWT Nedir? JSON Web Belirteçleri Bir Çalışma Örneğiyle Açıklanıyor

JWT nedir? JSON Web Tokens açıkladı: üç bölüm, çalıştırdığımız kodda oluşturulan ve üzerinde değişiklik yapılan bir token, JWT ile oturumlar, depola…

Makaleyi okuyun →
Yazılım geliştirme

JavaScript Olay Döngüsü Açıklaması: Örneklerle Çağrı Yığını, Mikro Görevler ve Zamanlayıcılar

JavaScript olay döngüsü çalıştırdığımız kodla açıklandı: çağrı yığını, görev ve mikro görev kuyrukları, setTimeout 0'ın neden anında olmadığı, engel…

Makaleyi okuyun →
Yazılım geliştirme

Python Jeneratörleri ve Verim Açıklaması: Gerçek Örneklerle Bellekten Tasarruf Edin

Python üreteçleri ve verim, çalıştırdığımız kodla açıklandı: nasıl duraklatılır ve devam ettirilir, ölçülen bellek tasarrufları, işlem hatları, sons…

Makaleyi okuyun →
Yapay zekâ

Gömmeler Nelerdir? Vektörler ve Kosinüs Benzerliği Basitçe Açıklandı

Gömmeler nedir? Vektörler, kosinüs benzerliği ve anlamsal aramaya ilişkin sade dilli bir kılavuz; çalıştırdığımız küçük bir örnek, yaygın kullanımla…

Makaleyi okuyun →
DevOps

Mavi-Yeşil ve Kanarya Konuşlandırılması: Farklılıklar, Takaslar ve Nasıl Seçilir

Mavi-yeşil ve kanarya konuşlandırması açıklandı: her birinin nasıl çalıştığı, maliyet, risk ve geri alma, test ettiğimiz istikrarlı kullanıcı grubu,…

Makaleyi okuyun →
Test otomasyonu

Kesintili Testler: Bunların Sebepleri ve Nasıl Düzeltileceği

Yaptığımız demolarla açıklanan hatalı testler: ana nedenler, birinin nasıl doğrulanacağı ve teşhis edileceği, zamanlama için uygun düzeltmeler, payl…

Makaleyi okuyun →
Yazılım testi

Yük Testi ve Stres Testi: Farklılıklar, Metrikler ve k6 Örnekleri

Yük testi ve stres testinin açıklaması: her birinin neyi kanıtladığı, ani yükselme ve soğuma testleri, önemli ölçümler, ortalamaların neden yanıltıc…

Makaleyi okuyun →
Yazılım testi

Test Senaryosu ve Test Senaryosu: Temel Farklılıklar, Örnekler ve Her Biri Ne Zaman Kullanılmalı?

Test senaryosu ve test senaryosunun açıklaması: net tanımlar, yan yana tablo, senaryolardan vakalara, şablonlara ve her birinin ne zaman kullanılaca…

Makaleyi okuyun →
Veritabanları ve SQL

SQL Sorgu Optimizasyonu: Zamanlamalarla Yürütme Planlarını Okuyun ve Yavaş Sorguları Düzeltin

SQL sorgu optimizasyonu bir milyon satırda test edilmiştir: yürütme planlarını okuyun, doğru dizinleri ekleyin, değiştirilemeyen filtreleri düzeltin…

Makaleyi okuyun →
Veritabanları ve SQL

SQL UNION ve UNION ALL: Farklılıklar, Örnekler ve Test Edilmiş Performans

SQL UNION ve UNION ALL, yürüttüğümüz sorgularla açıklandı: kopyalar, her ikisinin de takip ettiği kurallar, gerçek bir veri hatası, ölçülen performa…

Makaleyi okuyun →
Yazılım geliştirme

JavaScript Fetch API Eğitimi: GET, POST, Hata İşleme ve Zaman Aşımları

Yerel bir sunucuya karşı test edilen bir JavaScript Fetch API öğreticisi: GET ve POST, 404'ün neden atmadığı, yeniden kullanılabilir bir yardımcı, s…

Makaleyi okuyun →
Yazılım geliştirme

Python Dosya İşleme: Örneklerle Okuma, Yazma, CSV, JSON ve pathlib

Python dosya işleme, çalıştırdığımız kodla açıklanmıştır: açık modlar, büyük dosyaları okuma, CSV, JSON, pathlib, ikili dosyalar, güvenli yazma, hat…

Makaleyi okuyun →
Yazılım geliştirme

Python Sınıfları ve Nesneleri: Gerçek Örneklerle OOP Eğitimi

Çalıştırdığımız kodla açıklanan Python sınıfları ve nesneleri: __init__, yöntemler, sınıf ve örnek nitelikleri, kalıtım, özellikler, dunder yöntemle…

Makaleyi okuyun →
Yapay zekâ

Büyük Dil Modeli Nedir? Yüksek Lisans'ların Nasıl Çalıştığı, Abartmadan Açıklanıyor

Büyük dil modeli nedir? LLM'ler sade bir dille açıklandı: belirteçler, yerleştirmeler, dikkat, eğitim, sıcaklık ve bağlam pencereleri, küçük bir son…

Makaleyi okuyun →
DevOps

Yeni Başlayanlar İçin Linux Komutları: Örneklerle Temel Terminal Kılavuzu

Yeni başlayanlar için göreve göre gruplandırılmış Linux komutları: pratik bir günlük analizi örneğiyle gezinme, dosyalar, günlükleri görüntüleme, gr…

Makaleyi okuyun →
Test otomasyonu

Selenyum ve Oyun Yazarı: Temel Farklılıklar, Karşılaştırılan Kod ve Hangisinin Seçileceği

Selenium ve Playwright karşılaştırması: mimari, bekleme, tarayıcı ve dil desteği, hata ayıklama, her iki araçta da aynı test, geçiş tavsiyesi ve nas…

Makaleyi okuyun →
Yazılım testi

Eşdeğerlik Bölümleme: Test Tasarımı Tekniğinin Çalışılmış Örneklerle Açıklanması

Eşdeğerlik bölümlemenin açıklaması: geçerli ve geçersiz bölümlerin nasıl bulunacağı, yaşlara yönelik çalışılmış örnekler, şifreler ve kuponlar, yürü…

Makaleyi okuyun →
Yazılım testi

Yazılım Testinde Şiddet ve Öncelik: Farklılıklar, Matris ve Gerçek Örnekler

Yazılım testinde önem ve önceliğin açıklanması: net tanımlar, örnekler içeren dört yönlü bir matris, seviye ölçekleri, her birini kimin belirlediği …

Makaleyi okuyun →
Veritabanları ve SQL

SQL Alt Sorguları Eğitimi: Türler, İlişkili Alt Sorgular ve Örneklerle EXISTS

Çalıştırdığımız sorguları içeren bir SQL alt sorgu eğitimi: skaler, IN, FROM ve SELECT alt sorguları, ilişkili alt sorgular, EXISTS, NOT IN NULL tuz…

Makaleyi okuyun →
Veritabanları ve SQL

SQL İşlemleri ve ACID Açıklaması: COMMIT, ROLLBACK ve İzolasyon Seviyeleri

SQL işlemleri ve ACID, yürüttüğümüz bir banka transferiyle açıklandı: COMMIT, ROLLBACK, kayıt noktaları, kilitler, izolasyon seviyeleri, kirli okuma…

Makaleyi okuyun →
Yazılım geliştirme

Git Komutları Hile Sayfası: Gerçekte Kullandığınız Komutlar, Örneklerle

Git komutları göreve göre gruplandırılmış kısa bilgiler sayfası: kurulum, aşamalandırma, dallar, uzaktan kumandalar, saklama, geçmiş ve gerçek bir d…

Makaleyi okuyun →
Yazılım geliştirme

JavaScript Vaatlerinin Açıklaması: ardından, catch, Promise.all ve Yaygın Hatalar

Çalıştırdığımız kodla açıklanan JavaScript vaatleri: durumlar, ardından ve yakalama zincirleri, hata yönetimi, Promise.all, allSettled, yarış ve her…

Makaleyi okuyun →
Yazılım geliştirme

Python Sözlüğü Eğitimi: Yöntemler, Örnekler ve Ortak Kalıplar

Çalıştırdığımız kodları içeren bir Python sözlüğü eğitimi: dikteler oluşturma, okuma ve güncelleme, temel yöntemler, birleştirme, kavramalar, sayma …

Makaleyi okuyun →
Yapay zekâ

RAG Nedir? Geri Almayla Artırılmış Üretim Bir Çalışma Örneğiyle Açıklanıyor

RAG nedir? Almayla artırılmış oluşturma adım adım açıklanmıştır: indeksleme, parçalama, yerleştirmeler, alma, çalışan küçük bir Python örneği, değer…

Makaleyi okuyun →
DevOps

Yeni Başlayanlar İçin Terraform Eğitimi: İlk Dosyadan Modüllere Kod Olarak Altyapı

Yeni başlayanlar için bir Terraform eğitimi: Bulut hesabı olmadan başlayın, başlatmayı öğrenin, planlayın ve uygulayın, ardından değişkenler, çıktıl…

Makaleyi okuyun →
DevOps

Docker ve Kubernetes: Temel Farklılıklar, Birlikte Nasıl Çalıştıkları ve İhtiyacınız Olanlar

Docker ve Kubernetes şöyle açıkladı: Her birinin ne yaptığı, her ikisinde de aynı uygulamanın çalıştırılması, Docker Compose ve Swarm'ın karşılaştır…

Makaleyi okuyun →
Test otomasyonu

Yeni Başlayanlar İçin Pytest Eğitimi: Fikstürler, Parametrelendirme ve Gerçek Örnekler

Yeni başlayanlar için pytest 9.2'de yürüttüğümüz testleri içeren bir pytest öğreticisi: iddialar, fikstürler, parametrelendirme, yarışma, işaretleyi…

Makaleyi okuyun →
Yazılım testi

Yazılım Test Yaşam Döngüsü (STLC): 6 Aşama, Giriş ve Çıkış Kriterleri, Örnek

Yazılım testi yaşam döngüsü şunları açıkladı: giriş ve çıkış kriterleri, teslimatlar, çalışılmış bir oturum açma özelliği örneği, Agile'da STLC ve S…

Makaleyi okuyun →
Yazılım geliştirme

Git merge vs rebase: farklar, örnekler ve hangisi ne zaman kullanılır

Git merge vs rebase; gerçek log çıktısı, karşılaştırma tablosu, rebase'in altın kuralı ve güvenli bir ekip iş akışıyla anlatılıyor.

Makaleyi okuyun →
Yazılım geliştirme

Python Liste Üreteci (List Comprehension): Sözdizimi, Örnekler ve Kaçınılacak Durumlar

Python list comprehension anlatımı: sözdizimi, filtreleme, if-else, iç içe döngüler, ölçülmüş süreler ve düz for döngüsünün daha iyi olduğu durumlar.

Makaleyi okuyun →
Veritabanları ve SQL

SQL JOIN Örneklerle Açıklama (Inner, Left, Right, Full)

SQL JOIN'leri örnek tablolar ve sorgularla adım adım öğrenin: INNER, LEFT, RIGHT, FULL, CROSS ve SELF; yaygın hatalar ve performans ipuçları.

Makaleyi okuyun →