Yazılım kalite güvencesi, bilgisayar yazılımı tasarım ve uygulamasının test edilmesini ve asgari bir kalite standardını karşıladığından emin olmayı içerir. Kalite güvence sürecinin merkezinde test, yani geliştirme döngüsünün her aşamasının arıza veya güvenlik problemleri gibi kusurları bulmak için analiz edildiği yöntemdir. Yazılım kalite güvence işleminin en yaygın bilinen kısmı yazılım ve kod testidir; ancak, mühendislik döngüsünün diğer yönlerini de kapsar. Yazılım mühendisliğinin kalite analizine tabi tutulan diğer yönleri tasarım ve uygulama aşamalarını içerir.
Yazılım kalite güvencesinin genel konsepti, yazılım planlama aşamasında başlamasını gerektirir. Kötü planlanmış yazılımların, onu öngören kuruluşun beklentilerini karşılayacak şekilde yazması zor veya imkansız olabilir. Tasarım aşamasında kalite yönetimi, projenin spesifikasyonlarının veya amaçlarının sonuçlarının yanı sıra kuruluşun amaçlarına ulaşma planlarını da incelemeyi içerir. Tasarım aşamasında kalite analizinin faydası, tasarım problemlerinin çözülmesinin çok daha pahalı olduğu geliştirme döngüsünde değil, daha sonra hataları erken bulması ve ortadan kaldırmasıdır.
Aynı zamanda bir yazılım kalitesi analisti olarak da bilinen bir yazılım test mühendisi, test sürecinin yürütülmesinden sorumlu olan ilk kişidir. Bu kişi, bir kuruluşun, yazılımlarının kalitesini yükseltmesine yardımcı olacak test planlarını tasarlar ve uygular. İdeal olarak, bir programcı asla kendi ürününü test etmemelidir; bu, bir proje içinde bir programcı ve test mühendisinin iki farklı insan olduğu anlamına gelir.
Test planları kalite güvence sisteminin, özellikle yazılım test aşamasının kritik bir parçasıdır. Test planlarının amacı, yazılımın başarısını veya başarısızlığını gösteren koşulları belirlemektir. Tipik bir test planı, kapsamlı bir program ve alt program listesi veya test edilmesi gereken prosedürlerin yanı sıra teste dahil olan teknikleri içerecektir. Bir test planının bir diğer kritik işlevi, hangi kusurların kabul edilemez olduğunun belirlenmesidir. Test planları tipik olarak projenin gerçek yazılım kodu geliştirilmeden önce tasarlanmıştır.
Test mühendisleri test planlarını uygulamak için programlar yazdığında, bunlara test komut dosyaları denir. Test komut dosyaları, yazılım kalite güvence sürecinin önemli bir parçasıdır. Amaçları, hataları bulmak için bir programın mevcut kodunun testini otomatikleştirmektir. Ek olarak, test mühendisleri potansiyel sorunları aramak için tipik olarak ticari olarak tasarlanmış test araçlarını kullanır. Test geliştirme, yazılım geliştirmenin kodlama aşamasında uygulanır.
Yazılım kalite güvence sürecinin gerçek test aşamasında yer alan bir dizi önemli adım vardır. Bunlar, yazılım kodunun çeşitli bölümlerinin bütünlüğünü değerlendiren ünite testlerinin yanı sıra programların hatalı verilere nasıl tepki verdiğini araştırmak için tasarlanmış hata enjeksiyonlarını içerir. Ek adımlar arasında bir programın yoğun kullanım altında nasıl çalıştığını gören yük testi veya stres testi ve bir programın yetkisiz erişime karşı direncini test etmek için izinsiz giriş veya güvenlik testi yer almaktadır. Bir yazılım projesi de, sonuçta elde edilen programın başkalarının kullanımı için kolay olduğunu doğrulamak için genellikle kullanılabilirlik testine tabi tutulur.
Yazılım kodu testine katılan uzmanlar genellikle biri kara kutu test cihazı, diğeri beyaz kutu veya cam kutu test cihazı olarak bilinen iki gruba ayrılır. Kara kutu testi, yazılım kodlama aşamasında başlayan ve altta yatan herhangi bir bilgisayar kodunu incelemeyen daha yüzeysel bir işlemdir. Bir yazılımın kullanılabilirliğini, kozmetik tutarlılığını ve hata ve arıza oluşumunu araştırır.
Beyaz kutu testi, yazılım kalite güvence sürecinin en başında, tasarım aşamasında başlayan bir süreçtir. Test planları ve gelişmiş test komutları yazmanın yanı sıra, kodun gerçekten yazılmasından önce olası sorunların tahminini içerir. Kara kutu testinden farklı olarak, beyaz kutu testleri aynı zamanda temel bilgisayar kodunun çalışılmasını da içerir.
Kalite güvencesi, yazılımın tamamlanmaya yakın olduğu ve değerlendirme için bilgisayar sistemlerine kurulu olduğu yazılım uygulama aşaması için de geçerlidir. Bu aşamaya genellikle alfa testi denir ve neredeyse bitmiş ürün geliştirici personel tarafından kurulup test edildiğinde ortaya çıkar. Yazılım, şirket dışındaki potansiyel müşterilere sunulduğunda, beta testi olarak adlandırılır. Yazılım serbest bırakıldıktan ve bir düzeltme ekinin geliştirilmesinden sonra kusurlar ortaya çıkarsa, güncellemeler tarafından yeni hataların yaratılmadığından emin olmak için regresyon testi kullanılır.


