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
14 yazı bulundu #kalite
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
Statik Analizde Neler Değişti: .NET 5–11 Analyzer'ları, TSLint'ten ESLint 10'a, TypeScript 7 ve Yeni Nesil Linter'lar
Test ve Kalite SERİ 06

Statik Analizde Neler Değişti: .NET 5–11 Analyzer'ları, TSLint'ten ESLint 10'a, TypeScript 7 ve Yeni Nesil Linter'lar

Analyzer'lar .NET 5'ten beri SDK'nın parçası ve her sürüm yeni kural getiriyor: aynı kod .NET 10 SDK'sıyla sıfır, .NET 11 SDK'sıyla dört uyarı verdi (CA2026, CA2027, CA1877, CA2028). Yazı .NET 6–11 kural tarihini, CA2028'in source-generated regex'i görmemesini, .eslintrc'den flat config'e otomatik taşımanın angular-eslint 22'de neden yetmediğini, TypeScript 7'nin typescript-eslint'i beklettiğini, Oxlint ve Biome'un Bookstore'daki sonuçlarını ve Sonar'ın yeni adlarını anlatıyor.

14 Kas 2026 12 dk 11
SonarQube ile Quality Gate: Community Build mi Server mı, Quality Profile, Yeni Kod Odaklı Gate ve CI Entegrasyonu
Test ve Kalite SERİ 05

SonarQube ile Quality Gate: Community Build mi Server mı, Quality Profile, Yeni Kod Odaklı Gate ve CI Entegrasyonu

SonarQube'un varsayılan gate'i yalnız yeni koda bakar: yeni issue sıfır, yeni kodda coverage en az %80. Bookstore'da build'i ve testleri temiz olan 'benzer kitaplar' endpoint'i gate'i %10,3 yeni kod coverage'ıyla kırdı, iki test sonrası geçti. Yazı Community Build'i Docker'da PostgreSQL ile kurmayı, SonarScanner for .NET'i, Sonar way core profilini, Roslyn ile çift raporlamayı, eski coverage raporu tuzağını ve Community Build'in PR analizi olmayışını gerçek çıktılarla anlatıyor.

14 Kas 2026 13 dk 12
Angular ve TypeScript'te ESLint: Flat Config, typescript-eslint Type-Aware Kurallar ve angular-eslint Template Kuralları
Test ve Kalite SERİ 04

Angular ve TypeScript'te ESLint: Flat Config, typescript-eslint Type-Aware Kurallar ve angular-eslint Template Kuralları

Promise'leri await etmeyen kodu ancak tip bilgisi kullanan kurallar yakalar: Bookstore'un Angular istemcisinde ng add angular-eslint'in config'i bir PR'da 2 sorun buldu, strictTypeChecked ve projectService ile bu sayı 12'ye çıktı. Yazı ESLint 10'un flat config zorunluluğunu, no-floating-promises ve no-misused-promises bug'larını, accessibility template kurallarını, type-aware lint'in maliyetini, cache'in eski sonuç vermesini ve TypeScript 7 ile uyumsuzluğu gerçek çıktılarla anlatıyor.

14 Kas 2026 13 dk 13
Third-Party Analyzer'lar ve Kendi Roslyn Analyzer'ını Yazmak: BannedApiAnalyzers, Popüler Paketler, DiagnosticAnalyzer ve CodeFix
Test ve Kalite SERİ 03

Third-Party Analyzer'lar ve Kendi Roslyn Analyzer'ını Yazmak: BannedApiAnalyzers, Popüler Paketler, DiagnosticAnalyzer ve CodeFix

Bir kural yalnız 'şu API'yi kullanma' diyorsa BannedApiAnalyzers yeter; code fix, ekibe özgü mantık ya da bağlama göre mesaj gerekiyorsa kendi Roslyn analyzer'ını yazarsın. Bookstore'da Meziantou, Roslynator ve SonarAnalyzer 87 uyarı ve 14 kat analiz süresi getirdi ama DateTime.UtcNow'ı varsayılan ayarlarla yakalamadı. Yazı TimeProvider kuralını operation callback'li bir analyzer, ayrı assembly'de code fix, Microsoft.CodeAnalysis.Testing testleri ve NuGet paketiyle yazıyor.

14 Kas 2026 14 dk 11
Blog Haritası