🛡️ Quality Assurance (QA) Nedir?

Quality Assurance (QA) Nedir?: QA ile QC arasındaki farkı şöyle düşün: bir ilaç fabrikasında QA, üretim hattının kendisini denetleyen ISO sertifikasyon sürecidir — malzeme raflar

QA ile QC arasındaki farkı şöyle düşün: bir ilaç fabrikasında QA, üretim hattının kendisini denetleyen ISO sertifikasyon sürecidir — malzeme raflarının etiketlenmesi, temiz oda prosedürü, çalışan eğitimi. QC ise band sonunda her kapsülün ağırlığını ölçerek kusurlu olanı banttan çıkaran son kontrol noktasıdır. Java'da JUnit testleri yazıyorsun; bu bir QC aktivitesidir. Peki neden ayrıca pull request şablonu, code review standartı ve test planlama süreci gibi QA pratiklerine de ihtiyaç var? Çünkü JUnit, hatalı tasarlanmış bir mimarinin veya belirsiz bir gereksinimin ürettiği bug'ı asla göremez — o bug hiç test edilemeyecek kadar erken bir kararın ürünüdür. QA açısından en kritik gerçek: QC olmadan hata production'a ulaşır; QA olmadan hata sürekli tekrar üretilir ve her release döngüsünde ekip aynı yangını söndürmek zorunda kalır.

Quality Assurance (QA) ne demektir?

Quality Assurance (Kalite Güvence), yazılım geliştirme sürecinin kalitesini artırmaya ve standartları belirlemeye odaklanan, süreç yönelimli (process-oriented) bir disiplindir. Amacı, geliştirme aşamasında hataların en başından ortaya çıkmasını önlemektir (Defect Prevention).

QA, QC ve Test Arasındaki Farklar

Yazılım Geliştirme Yaşam Döngüsünde (SDLC) QA'in Yeri

Modern yazılım dünyasında test uzmanları artık kod yazımı bittikten sonra devreye giren kişiler değildir. Çevik (Agile/Scrum) yöntemlerde QA mühendisleri gereksinimlerin yazıldığı ilk günden itibaren projededir. Yanlış veya eksik yazılmış bir gereksinimi analiz toplantısında fark edip düzeltmek, kod yazıldıktan sonra çıkacak onlarca hatayı daha doğmadan engeller.

Micro Lab: Test dongusunu tamamla

TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.

Adim Adim: Test dongusunu tamamla

Gereksinimi oku ve beklenen davranisi somutlastir (Kullanici X yapinca Y olmali)

Test senaryosunu yaz: giris, adimlar, beklenen sonuc — assertion once gelmeli

Testi calistir ve gercek ciktiyi beklenen ciktiyla karsilastir

Fark varsa defect raporla: hangi adim, ne beklendi, ne geldi

Duzeltme sonrasi testi tekrar kostu (retest), gectigini belgele ve kapat