2.1. Giriş ve Yaşamdan Metafor

Özel bir gün için terziye gidip sıfırdan bir takım elbise diktirdiğini hayal et. Önünde çalışabileceğin iki farklı terzi yaklaşımı vardır:

Birinci Terzi: Testi En Sona Bırakan Geleneksel Usta (Klasik Şelale Modeli)

Bu terzi işini son derece ciddiye alır. Mezurasını çıkarır, yüzlerce detaylı ölçü alır, defterine sayfalarca not yazar. Kumaşı keser, biçer, astarları diker, düğmeleri tek tek işler. Aradan geçen bir koca ay boyunca seni dükkana hiç çağırmaz; çünkü onun kafasındaki kural şudur: “Önce iş tamamen bitsin, sonra bakarız.”

Bir ay sonra telefonun çalar: “Takımınız hazır, gelip teslim alabilirsiniz.”

Dükkana heyecanla gider, elbiseyi giyersin. O da ne? Omuzlar sırtına oturmamış, kollar bileklerini geçmiş, pantolonun beli ise nefes almana izin vermeyecek kadar dar dikilmiştir. Üstelik sen bu takımı sıcak bir yaz kır düğününde giyecektin; fakat terzi kalın yünlü bir astar kullanmıştır.

Şimdi ne olacak? Ceketi genişletmek için tüm dikişler tek tek sökülecek, kumaş delinecek, belki de astar yırtılacak ve terzi sıfırdan başlamak zorunda kalacaktır. Hem bir ay boşa gitmiş hem de maliyet iki katına çıkmıştır.

İşte bu senaryo; yazılım dünyasında testin en sona, yani geliştirme tamamen bittikten sonraya bırakıldığı geleneksel Şelale (Waterfall) yaklaşımının kaçınılmaz hüsranıdır.

İkinci Terzi: Her Adımı Provayla Güvenceye Alan Usta (V-Model Yaklaşımı)

İkinci terzi ise bir kalite mimarıdır. Masaya oturduğunuzda eline makası almadan önce ilk işi seninle konuşmaktır: “Bu takımı nerede giyeceksin? Yaz sıcağında açık havada mı, yoksa klimalı bir salonda mı?” İhtiyacı baştan tam olarak anlar.

Daha da önemlisi; inşa ettiği her adımın tam karşısına simetrik bir denetim (prova) adımı yerleştirir:

  • Kumaş Seçerken: Terletir mi diye kumaşı kontrol eder, rengi gün ışığında seninle teyit eder. (Gereksinim Analizi ↔ Kabul Testi Tasarımı)

  • Kalıbı Çıkarırken: Kağıt üzerindeki ölçüleri mezurayla tekrar karşılaştırır. (Sistem Mimarisi ↔ Sistem Testi Tasarımı)

  • Parçaları Birleştirirken: Kumaşı sadece gevşek bir teyelle tutturup seni ilk provaya çağırır; kol ve omuz birleşim yerlerine bakar. (Modül Birleştirme ↔ Entegrasyon Testi)

  • Düğmeleri Çakmadan Önce: İlik aralıklarını ve dikiş sağlamlığını tek tek kontrol eder. (Kodlama ↔ Birim Test)

Büyük gün gelip elbiseyi son kez giydiğinde hiçbir kötü sürprizle karşılaşmazsın. Çünkü elbise dikilirken bir kez bile şansa yer bırakılmamış; her üretim aşaması, kendi provasıyla el ele yürümüştür.

İnşa ve Güvence: SDLC ile STLC’nin Kusursuz Uyumu

Yazılım dünyasında da tam olarak bu iki olgu yan yana yaşar:

  1. SDLC (Software Development Life Cycle – Yazılım Geliştirme Yaşam Döngüsü): Bir fikrin projelendirilip kodlanarak canlıya alınmasına kadar geçen inşa etme sürecidir.

  2. STLC (Software Testing Life Cycle – Yazılım Test Yaşam Döngüsü): O inşanın her milimetresini, henüz kod yazılmadan başlayarak güvence altına alan denetim ve prova sürecidir.

Bu iki yaşam döngüsü; birbirini uzaktan izleyen iki yabancı ya da biri bitince diğeri başlayan iki ayrı vagon değildir.

Onlar; trenin ray üzerinde devrilmeden, son sürat ilerlemesini sağlayan sağ ve sol tekerlekleridir. Sol tekerlek (SDLC) yolu kat ederken, sağ tekerlek (STLC) o yolun sağlamlığını milisaniye milisaniye doğrular.

4. “Bir de Şöyle Düşün” (Kutu İçeriği)

💡 Bir de Şöyle Düşün: “Doğru Elbise mi?” vs. “Elbise Doğru mu?”

Kalite mühendisliğinin temel felsefesi iki soruya dayanır:

  • Doğrulama (Verification – Çizime Uygunluk): Terzinin elbiseyi mezurayla ölçüp, “Kolu tam istediğimiz gibi 65 cm diktik” demesidir. Kodun teknik şartnameye, tasarıma ve plana harfiyen uygun inşa edilmesidir.

  • Geçerleme (Validation – Amaca Uygunluk): Müşterinin elbiseyi giyip, “Harika, temmuz sıcağındaki düğünde hiç terlemeden rahatça dans edebiliyorum” demesidir. Yazılımın kullanıcının gerçek dünyadaki asıl ihtiyacını karşılayıp karşılamadığıdır.

V-Model, sol kanadında Doğrulamayı (çizim doğru mu yapılıyor?), sağ kanadında ise Geçerlemeyi (kullanıcıya gerçekten fayda sağlıyor mu?) adım adım garantiye alır.

5. Mini Alıştırma

Senaryo: Çalıştığın şirkette proje yöneticisi toplantıda şöyle diyor:

“Arkadaşlar, yazılımcılarımız kodlamayı tamamen bitirip sistemi yayına hazırlayana kadar test uzmanımızın boşuna beklemesine gerek yok. Test ekibi kodlama bittiğinde devreye girsin.”

Soru: V-Model ve modern STLC felsefesini öğrenmiş bir Kalite Mühendisi olarak, yöneticiye test ekibinin henüz tek satır kod yazılmadan (analiz aşamasında) projeye nasıl bir somut fayda sağlayacağını tek bir gerekçeyle açıkla.

“Test ekibi kodlama başlamadan önce devreye girerse; gereksinim dokümanlarındaki mantık hatalarını, çelişkileri ve unutulmuş sınır durumları henüz analiz aşamasındayken yakalar (Shift-Left). Böylece yazılımcıların yanlış kural üzerine haftalarca boşuna hatalı kod yazmasını ve projenin bütçesinin katlanmasını en baştan engellemiş oluruz.”