Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
76 yazı bulundu
Tekniği Seçmek ve Birleştirmek: Requirement'tan Test Listesine, Acceptance Criteria ile Hizalamak ve AI ile Test Case Üretmenin Sınırları
Test ve Kalite SERİ 08

Tekniği Seçmek ve Birleştirmek: Requirement'tan Test Listesine, Acceptance Criteria ile Hizalamak ve AI ile Test Case Üretmenin Sınırları

Test tekniğini requirement'ın şekli seçer: aralıklar için equivalence partitioning ve boundary value analysis, koşul kombinasyonları için decision table, geçmişe bağlı sonuç için state transition; teknikler birleştirilip tekrarları atılınca tek bir test listesi kalır. Bookstore'un kurumsal kısmi sevkiyat story'sinde beş teknik 27 condition üretti, liste 19'a indi ve üç tekniğin buluştuğu satır sevkiyat hatasını yakaladı. AI'dan test case istemek için prompt ve review checklist'i.

15 Kas 2026 15 dk 9
White-box ve Experience-based Teknikler: Branch Coverage'ı Test Tasarımı için Kullanmak, Error Guessing, Checklist ve Exploratory Testing
Test ve Kalite SERİ 07

White-box ve Experience-based Teknikler: Branch Coverage'ı Test Tasarımı için Kullanmak, Error Guessing, Checklist ve Exploratory Testing

Branch coverage raporu test tasarımında hedef değil, hiç çalışmamış dalı gösterip yeni test case'ler çıkaran bir araçtır; ama yazılmamış kodu göremez, onu error guessing, checklist ve exploratory testing bulur. Bookstore'un kupon kodunda rapor story'de olmayan tavan dalındaki hatayı, error guessing Türkçe I hatasını, bir saatlik exploratory session de çift tıklamayla açılan iki siparişi ve negatif tutarlı siparişi buldu; hepsi regression testine döndü.

15 Kas 2026 14 dk 9
Kombinatoryal Test: Pairwise, Orthogonal Array ve PICT ile Konfigürasyon Patlamasını Yönetmek
Test ve Kalite SERİ 06

Kombinatoryal Test: Pairwise, Orthogonal Array ve PICT ile Konfigürasyon Patlamasını Yönetmek

Pairwise testing, her iki parametrenin her değer çiftini en az bir testte yan yana getirerek tam kombinasyonun maliyetini düşürür; hataların çoğunun bir ya da iki parametrenin etkileşiminden çıktığı varsayımına dayanır. Bookstore'un checkout'unda each choice'un üç testi eksik İngilizce mağazadan teslim template'ini kaçırdı; PICT'in constraint'li modelden ürettiği 11 satır yakaladı. t-wise, orthogonal array, seed, oracle ve Playwright project'leri.

15 Kas 2026 12 dk 8
State Transition Testing: Sipariş State Machine'inden Test Case Üretmek, Geçersiz Geçişler ve 0-switch/1-switch Coverage
Test ve Kalite SERİ 05

State Transition Testing: Sipariş State Machine'inden Test Case Üretmek, Geçersiz Geçişler ve 0-switch/1-switch Coverage

State transition testing, sistemin davranışı geçmişine bağlıysa test case'leri state diagram'ından ve state table'dan çıkarır: geçerli transition'lar (0-switch), state table'ın boş hücrelerindeki geçersiz transition'lar ve art arda iki transition'dan oluşan çiftler (1-switch). Bookstore'un siparişinde üç yeşil test, kargodaki siparişin iptal edilebilmesini ve beklemeden dönen siparişin kargoya verilememesini kaçırdı; 40 geçersiz geçiş ve 10 transition çifti ikisini de yakaladı.

15 Kas 2026 14 dk 8
Decision Table Testing: Kural Kombinasyonları, Tabloyu Sadeleştirmek ve Kural Tablosundan Teste
Test ve Kalite SERİ 04

Decision Table Testing: Kural Kombinasyonları, Tabloyu Sadeleştirmek ve Kural Tablosundan Teste

Decision table testing, sonucu birden fazla koşulun kombinasyonuna bağlı kurallar için bütün kombinasyonları tabloya döker, sadeleştirir ve her sütunu bir teste çevirir. Bookstore'un kargo ücretinde cümle başına yazılan dört yeşil test, Plus üyesinin yurt dışı kargosundaki çelişkiyi ve yedi tanımsız kupon durumunu kaçırdı; tablo hepsini test yazmadan gösterdi. Limited ve extended-entry tablo, "–" ve N/A, iade onayı ve testi koddaki tablodan kopyalamamak.

15 Kas 2026 14 dk 8
Boundary Value Analysis: 2-Value ve 3-Value BVA, Off-by-One, Tarih, Para ve Uzunluk Sınırları
Test ve Kalite SERİ 03

Boundary Value Analysis: 2-Value ve 3-Value BVA, Off-by-One, Tarih, Para ve Uzunluk Sınırları

Boundary value analysis, test değerini partition'ın ortasından değil sınırından ve komşusundan seçer; komşunun ne olduğunu tipin ve kuralın hassasiyeti belirler. Bookstore'da partition başına bir test yeşilken 500,00 TL ücretsiz kargo, UTC'ye kaymış Kasım kampanyası ve 23:59:59'da kapanan son saniye ancak sınır testleriyle yakalandı. 2-value ve 3-value BVA, FakeTimeProvider ile tarih sınırı, ISBN uzunluğu ve sepet boyutu.

15 Kas 2026 13 dk 8
Equivalence Partitioning: Girdiyi Sınıflara Bölmek, Geçerli ve Geçersiz Partition'lar, Coverage ve xUnit Theory'ye Dökmek
Test ve Kalite SERİ 02

Equivalence Partitioning: Girdiyi Sınıflara Bölmek, Geçerli ve Geçersiz Partition'lar, Coverage ve xUnit Theory'ye Dökmek

Equivalence partitioning, girdiyi kodun aynı davranması beklenen partition'lara böler ve her partition'ı bir testle kapsar; geçersiz partition'lar ise her biri ayrı testte denenir. Bookstore'un sipariş validator'ında iki geçersiz değeri birleştiren testler eksik misafir ödeme kuralını sakladı; partition tablosundan türetilen dokuz test hem onu hem tanımsız enum değeri hatasını yakaladı. Each Choice coverage, çıktı partition'ları ve TheoryData.

15 Kas 2026 12 dk 8
Test Case Tasarımı Nedir? Test Koşulu, Test Case, Coverage Hedefi ve Teknik Aileleri
Test ve Kalite SERİ 01

Test Case Tasarımı Nedir? Test Koşulu, Test Case, Coverage Hedefi ve Teknik Aileleri

Test case tasarımı, test case'leri sezgiyle değil requirement'tan türetmektir: test basis'ten test condition'a, coverage item'a, test case'e ve test verisine giden bir zincir. Bookstore'un kurumsal sipariş kuralında aynı senaryoyu deneyen beş yeşil test iki hatayı kaçırdı; kuraldan türetilen sekiz test ikisini de yakaladı. ISTQB CTFL v4.0.1'e göre black-box, white-box, experience-based teknikler ve collaboration-based yaklaşımlar.

15 Kas 2026 13 dk 5
MSTest 4 Rehberi: TestClass, DataRow/DynamicData, Assert API'si, TestContext, Paralellik, Analyzer'lar ve TUnit'e Kısa Bakış
Test ve Kalite SERİ 21

MSTest 4 Rehberi: TestClass, DataRow/DynamicData, Assert API'si, TestContext, Paralellik, Analyzer'lar ve TUnit'e Kısa Bakış

MSTest 4'te kaldırılan [ExpectedException], method'un herhangi bir satırındaki aynı tipte exception'ı başarı sayıyordu; yükseltmede Assert.ThrowsExactly ve ParamName kontrolü, yıllardır yanlış sebeple yeşil kalan bir testi ve hiç yazılmamış bir kuralı ortaya çıkardı. MSTest.Sdk ve MTP, DataRow'da decimal tuzağı, DynamicData, Assert API'si, TestContext, paralellik, analyzer'lar, TUnit'e kısa bakış ve serinin kapanışı.

15 Kas 2026 13 dk 5
NUnit 5 Rehberi: xUnit Bilen İçin Constraint Model, TestCase/TestCaseSource, SetUp/OneTimeSetUp, Paralellik ve 5.0 Breaking Change'leri
Test ve Kalite SERİ 20

NUnit 5 Rehberi: xUnit Bilen İçin Constraint Model, TestCase/TestCaseSource, SetUp/OneTimeSetUp, Paralellik ve 5.0 Breaking Change'leri

NUnit 5.0'da [Platform("NET")] artık .NET Framework değil modern .NET demek: NUnit 4'te .NET 10'da hep atlanan eski bir test, yükseltmeyle ilk kez çalıştı ve production'daki gerçek bir encoding hatasını gösterdi. xUnit karşılık tablosu, paylaşılan fixture instance'ı, Assert.That constraint'leri, TestCase/TestCaseSource, SetUpFixture, paralellik, MTP ve 4.6.1'den 5.0'a gerçek derleme hatalarıyla yükseltme.

15 Kas 2026 13 dk 5
Bogus ve AutoFixture Rehberi: Faker<T> Kuralları, Türkçe Locale, Seed, Strict Mode, AutoData ve Customization
Test ve Kalite SERİ 19

Bogus ve AutoFixture Rehberi: Faker<T> Kuralları, Türkçe Locale, Seed, Strict Mode, AutoData ve Customization

Bogus'ta seed veriyi değil rastgele sayı dizisini sabitler: Faker'ın ortasına eklenen tek bir RuleFor, ondan sonraki her değeri değiştirir; bu yüzden üretilen değerin kendisi değil, kurallara uyduğu assert edilir. RuleFor, CustomInstantiator, RuleSet, StrictMode, GenerateLazy, Türkçe locale ile bulunan gerçek bir arama hatası; AutoFixture'da DateOnly customization'ı, Build tuzağı, AutoData ve AutoNSubstitute.

15 Kas 2026 14 dk 5
HttpClient Kullanan Kodu Unit Test Etmek: HttpMessageHandler Stub'ı, MockHttp, IHttpClientFactory ve Typed Client
Test ve Kalite SERİ 18

HttpClient Kullanan Kodu Unit Test Etmek: HttpMessageHandler Stub'ı, MockHttp, IHttpClientFactory ve Typed Client

HttpClient'ın kendisi değil, altındaki HttpMessageHandler taklit edilir; URL'i de eşleştiren bir handler (RichardSzalay.MockHttp), BaseAddress'teki eksik bir slash'ın v2 segmentini sessizce silmesi gibi hataları yakalar. Kendi stub handler'ın, When/Expect ve matcher'lar, JSON body eşleştirme, typed client ve IHttpClientFactory kaydını test etmek; 429/Retry-After, 5xx, timeout, cancellation ve bozuk JSON senaryoları gerçek hata mesajlarıyla.

15 Kas 2026 13 dk 4
Blog Haritası