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

  1. Ana sayfa
  2. Blog
  3. Yazılım Testi

Yazılım Testi

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

Olası her girişi test edemezsiniz; o halde hangi değerleri seçmelisiniz? Eşdeğerlik bölümleme size net bir cevap verir. Yöntemi adım adım öğrenin, gerçek örnekler üzerinde çalışın ve nerede yardıma ihtiyacı olduğunu görün.

8 dk okuma
Denklik bölümleme testi tasarım tekniğinin çalışılmış örneklerle açıklanması

Önemli noktalar

  • Eşdeğerlik bölümleme, girdileri aynı şekilde davranması gereken gruplara ayırır.
  • Her değer yerine her gruptan bir temsili değeri test edersiniz.
  • Hata işleme birçok hatanın gizlendiği yer olduğundan her zaman geçersiz bölümler ekleyin.
  • Hatalar genellikle bir grubun kenarlarında yer aldığından, sınır değer analiziyle birlikte en iyi sonucu verir.

Negatifleri, büyük sayıları, metinleri ve boşlukları saydığınızda, 18 ile 60 arasındaki yaş aralığını kabul eden bir yaş alanında çok sayıda olası girdi bulunur. Hiç kimse hepsini deneyemez. Eşdeğerlik bölümleme, yazılımın aynı şekilde işlemesi gereken girdileri gruplandırıp ardından her gruptan bir değeri test ederek bu sorunu çözer.

Her test uzmanının öğrenmesi gereken ilk test tasarım tekniklerinden biridir. Bu kılavuzda bunu adım adım inceleyeceğiz ve Python’da bir örneği test edeceğiz. Bu kodu Python 3.13’te çalıştırdık ve çıktısı dahil edildi. Aşağıdaki şifre ve kupon kuralları açıklayıcı örneklerdir, gerçek bir sistemden alınmamıştır.

Denklik paylaştırma nedir?

Eşdeğerlik sınıfı bölümleme (ECP) olarak da adlandırılan eşdeğerlik bölümleme, bir kara kutu test tasarım tekniğidir. Bir özelliğin olası girişlerini bölümlere veya sınıflara ayırır. Bir bölümün içindeki her değerin aynı tür davranışı üretmesi beklenir.

Kodu görmenize gerek olmadığından doğrudan bir gereksinimden uygulayabilirsiniz. Bu test tarzı hakkında daha fazla bilgi edinmek için kara kutu ve beyaz kutu testi konusunu okuyun.

Neden işe yarıyor?

Teknik tek bir varsayıma dayanmaktadır: Bir bölümdeki bir değer bir hata bulursa, o bölümdeki diğer değerler de muhtemelen onu bulacaktır. Ve eğer bir değer geçerse muhtemelen diğerleri de geçer. Yetişkin yaş alanında 25, 26 ve 27 yaşını test etmek muhtemelen size tek başına 25 yaşını test etmenin anlatamayacağı hiçbir şey söylemeyecektir.

Yaklaşım Bir yaş alanı için testler Sonuç
Kapsamlı Mümkün olan her değer Pratikte imkansız
Rastgele tahmin Aklıma ne gelirse Kopyalar ve boşluklar
Denklik bölümleme Bölüm başına bir tane Küçük, kasıtlı kapsama alanıyla

Ancak bu bir varsayımdır ve bir garanti değildir. Yazılımın bir bölümün içinde gizlenmiş özel durumları olabilir; bu sınırlamaya daha sonra döneceğiz.

Beş adımda nasıl yapılır?

  1. Gereksinimi okuyun ve girişi ve kurallarını tanımlayın.
  2. Kabul edilmesi gereken değer grupları olan geçerli bölümleri bulun ve farklı aralıkların farklı davranıp davranmadığını not edin.
  3. Çok düşük, çok yüksek değerler, yanlış tür ve boş değerler de dahil olmak üzere geçersiz bölümleri bulun.
  4. Her bölümden, genellikle ortada bir yerden bir temsili değer seçin.
  5. Herhangi bir iyi test senaryosunda olduğu gibi, her biri için beklenen sonucu yazın.

Çözümlü örnek: yaş alanı

Gereksinim: 18 ila 60 yaş arası kullanıcılar kayıt olabilir.

Bölüm Tür Test değeri Beklenen sonuç
18’in altında Geçersiz 10 Reddedildi
18 ila 60 Geçerli 35 Kabul edildi
60’ın üstü Geçersiz 75 Reddedildi
Bir sayı değil Geçersiz “abc” Hata
Boş Geçersiz (empty) “Gerekli” mesajı

Beş test, gereksinimdeki her davranışın kapsamını sağlar. Pek çok eğitim ilk üç satırda durur, ancak son ikisi gerçek kullanıcıların kazara tetiklediği satırlardır. Mantıklı olarak farklı şekilde ele alınabilecekse, negatif sayılar veya ondalık sayılar için de satırlar ekleyebilirsiniz.

Kodda test etme

Python’un yerleşik unittest özelliğini kullanan, bölüm başına bir birim testi olan bir fonksiyon olarak bu kural şöyledir:

import unittest

def can_register(age):
    if not isinstance(age, int) or isinstance(age, bool):
        raise TypeError("age must be a whole number")
    return 18 <= age <= 60

class EquivalenceTests(unittest.TestCase):
    def test_valid_partition(self):
        self.assertTrue(can_register(35))

    def test_too_young_partition(self):
        self.assertFalse(can_register(10))

    def test_too_old_partition(self):
        self.assertFalse(can_register(75))

    def test_wrong_type_partition(self):
        with self.assertRaises(TypeError):
            can_register("abc")

Koşumuz geçti:

test_too_old_partition ... ok
test_too_young_partition ... ok
test_valid_partition ... ok
test_wrong_type_partition ... ok

Gerçek bir projede, pytest’in parametrelendirme özelliği tek bir test aracılığıyla bölüm değerleri tablosunu çalıştırmanın güzel bir yoludur.

Çözümlü örnek: bir parola

Gereksinim: Şifre 8 ila 20 karakter uzunluğunda olmalı ve en az bir rakam içermelidir.

Bunun iki kuralı vardır: uzunluk ve içerik, bu nedenle her ikisi için de bölümleri dikkate alıyoruz:

Bölüm Tür Test değeri Beklenen sonuç
Geçerli uzunluk, bir rakam var Geçerli gündoğumu42 Kabul edildi
Çok kısa Geçersiz abc1 Hata: çok kısa
Çok uzun Geçersiz Rakamlı 30 karakterlik bir değer Hata: çok uzun
Geçerli uzunluk, rakam yok Geçersiz gün doğumu Hata: rakam gerekli
Boş Geçersiz (empty) Hata: gerekli

Her geçersiz testin yalnızca bir kuralı ihlal ettiğine dikkat edin. Bir değer hem çok kısaysa hem de bir rakamı eksikse, başarılı bir test size hangi kontrolün işe yaradığını söyleyemez. Çeklerden biri bozulabilirken diğeri gerçeği gizleyebilir.

Çözümlü örnek: sayısal olmayan girişler

Teknik sayı aralıklarıyla sınırlı değildir. Ayrık seçenekler, kategoriler ve durumlar da bölümler oluşturur. Bir mağazanın şu kurala sahip olduğunu varsayalım:

Gereksinim: Teslimat Gold üyelere ücretsizdir, Silver üyelere 50 ve diğer herkese 100. Bilinmeyen katman değerleri hatadır.

Bölüm Test değeri Beklenen ücret
Altın altın 0
Gümüş gümüş 50
Üyelik yok (none) 100
Bilinmeyen seviye platin Hata

Burada her seçenek kendi bölümüdür, çünkü her birinin farklı davranması gerekir. Diğer yaygın bölümler, geçerli ve geçersiz yüklemeler gibi dosya türlerini ve onaylanan veya reddedilen bir kredi gibi çıktıya dayalı grupları içerir.

İpucu: Girdiler kadar çıktıları da düşünün. Bir hesaplama indirim sağlıyorsa, indirim yoksa veya uyarı vermiyorsa bu sonuçların her birine en az bir testin ulaştığından emin olun.

Aynı anda birden fazla giriş

Birden fazla alanda kombinasyon sayısı hızla artar. Dört bölümden oluşan üç alanın her biri 64 kombinasyon verir. İki strateji yardımcı olur:

  • Zayıf kapsam: her bölümün en az bir testte göründüğünden ve test başına birkaç geçerli değerin birleştirildiğinden emin olun. Hataların birbirini maskelememesi için geçersiz değerleri teker teker test edin.
  • Kural tabanlı kapsam: Birleşimler, üye durumu ve sipariş değeri gibi sonuçları gerçekten değiştirdiğinde, bunları doğru şekilde listelemek için karar tablosu testini kullanın.

Sınır değeri analiziyle eşleştirme

Bölümleme size hangi grupların test edileceğini söyler. Bir gruptaki böceklerin nerede saklanmayı sevdiği hakkında çok az şey söyler ve birçoğu tam kenarlarda saklanır. Bunu göstermek için klasik birer birer hata içeren hatalı bir versiyon yazdık:

def buggy(age):
    return 18 < age <= 60     # should be 18 <= age

[buggy(a) for a in (35, 10, 75)]   # [True, False, False]
buggy(18)                          # False

Bölüm değerlerimiz olan 35, 10 ve 75’in hepsi doğru yanıtları verdi, yani bu testler başarılı olacaktı. Ancak 18 yaşındaki bir genç yanlışlıkla reddedilir. Bu nedenle iki teknik birbirine aittir:

Teknik Seçer 18 ila 60 yaş arası değerler
Denklik bölümleme Her grubun içinde bir değer 10, 35, 75
Sınır değer analizi Her grubun kenarlarındaki değerler 17, 18, 60, 61

Grupları bulmak için bölümlendirmeyi, ardından grupların nerede buluştuğunu test etmek için sınırları kullanın. Kodumuzda 17, 18, 60 ve 61 için ayrı bir test doğru işlevi geçti ve bu hatayı yakalayacaktı. Sınır değer analizi kılavuzumuz bunu tam olarak kapsamaktadır.

Avantajlar ve sınırlamalar

Avantajları Sınırlamalar
Test sayısını büyük ölçüde azaltır Bölümlerin doğru olmasına dayanır
Açık ve açıklanabilir kapsam sağlar Sınırlardaki hataları gözden kaçırabilir
Koda erişim gerektirmez Gizli özel durumları kaçırabilir
Gereksinimlerden bile erken uygulanır Dizileri veya kombinasyonları iyi modellemiyor

En büyük risk yanlış varsayımdır. Kodun belirli bir değer için gizli bir kuralı varsa, seçtiğiniz test buna ulaşamayabilir. Keşif testleri ve kod kapsamı, bölümlerin kaçırdığı şeyleri bulmanıza yardımcı olur.

Yaygın hatalar

  • Geçersiz bölümleri unutma. Yalnızca mutlu yolları test etmek, hata işlemeyi kontrolsüz bırakır.
  • Bir bölümden birden fazla değerin test edilmesi. Bu, yeni bilgi olmadan maliyeti artırır.
  • Birden fazla geçersiz değerin tek bir testte birleştirilmesi. Bir hata diğerini gizleyebilir.
  • Sınırları atlamak. Bölümleme testleri tek başına çoğu zaman tek tek hataları gözden kaçırır.
  • Kuralları tahmin etmek. Bir gereklilik net değilse sorun. 60, 60 buçuk yaşındaki insanları da içermeli mi?

Son sözler

Eşdeğerlik bölümleme “kaç test yazmalıyım?” sorusunun yerine geçer. çok daha iyi bir soruyla: “hangi davranışlar var ve her birini ele aldım?” Bunu denemek için, bugün test ettiğiniz bir formu alın ve geçersiz olanlar da dahil olmak üzere bölümlerini kağıt üzerinde listeleyin. Daha sonra sınırları ekleyin. Genellikle daha fazla hata bulan daha az sayıda testle karşılaşırsınız.

Sık sorulan sorular

Testte eşdeğerlik bölümleme nedir?

Girdileri benzer davranması beklenen gruplara ayıran bir kara kutu tekniğidir. Daha sonra her değeri değil, her gruptan bir temsili değeri test edersiniz.

Eşdeğerlik bölümleme ile sınır değer analizi arasındaki fark nedir?

Bölümleme her grubun içinden bir değer seçer. Sınır değer analizi bu grupların kenarlarındaki değerleri test eder. Genellikle birlikte kullanılırlar.

Eşdeğerlik bölümlemenin kaç tane test senaryosuna ihtiyacı vardır?

Genellikle bölüm başına en az bir tane, hem geçerli hem de geçersiz. Bir yaş aralığı alanı genellikle yaklaşık üç ila beş teste ihtiyaç duyar.

Eşdeğerlik bölümleme kara kutu mu yoksa beyaz kutu mu?

Bölümler gereksinimlerden geldiğinden ve koda ihtiyaç duymadığından bu bir kara kutu tekniğidir. Ancak geliştiriciler bunu birim testlerine de uygulayabilirler.

Geçerli ve geçersiz bölümler nelerdir?

Geçerli bölümler sistemin kabul etmesi gereken değerleri içerir. Geçersiz bölümler, aralık dışı sayılar, yanlış türler ve boşluklar gibi reddetmesi gereken değerleri içerir.

Öğ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 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 →