Yazılım Kalite Güvencesi Testi herhangibir yazılım geliştirme projesinin ayrılmaz bir parçası ve önemli bir aşamasıdır.Geliştiriciler ve test ediciler aşağıdakilerden emin olmalıdırlar:
- yeni geliştirilmiş ürünlerin veya ürün geliştirmelerinin işlevsel ve performans gereksinimlerini karşıladığından
- ürünlerin güvenilir ve her şartta sürekli olarak işlem görebilecek olduğundan
Son kullanıcıların beklentilerdeki ve isteklerlerindeki değişimlerden dolayı hazır olmayan bir ürünü piyasaya sürmenin riski daha önce hiç olmadığı kadar büyüktür.
Proje Başarısızlığı ve Başarısı üzerine Standish grubu’nun araştırma raporuna göre,yaklaşık dört yazılım projesinden üçü ya geç ya bütçeyi aşan ya da tamamlanmadan önce iptal edilmiş olarak teslim edilmiştir.Projedeki deneyimli yöneticilere, geliştiricilere ve de test edicilere rağmen bu gerçek bir durumdur.Bu, son tarihe kadar süren bir problemdir.”Piyasaya sürmeye hazır mıyız?” sorusundan çıkan endişe, takımdaki her bireyi etkiler.Yönetim yetersiz bir “ Hayır” ya da daha kötüsünü duymaktan korktuğundan sormaktan çekinir.
Neden Kalite Güvenceyi Test Etmeli?
Baskıyı arttıran iki büyük sektör trendi bulunmaktadır.Birincisi piyasa sürüm döngüleridir. Business Week’in dediği gibi, “Bir senenin değişim değeri ‘İnternet Zamanı’ ile birkaç ayda olmaktadır.Ve sorun da budur.Bütün sektör İnternet Zamanında işlemektedir..”
İkinicisi, piyasaya sürümler sıkken ve döngüler kısayken, başarısızlığın maliyeti dramatik olarak artmış bulunmaktadır.Sadece birkaç yıl önce piyasaya sürümler, genelde, yıllıktı ve beklenen kullanıcı sayıları önceden bilinirdi çünkü tüm kullanıcılar çalışanlardı.Bir organizasyon sistem başarısızlığını işgücü desteğiyle azaltabilirdi;örneğin sistem bozuluğunda komutlar el ile alınabilirdi.
Fakat işin bu sistemler daha geniş kitlelerce kullanıldıkça, piyasaya sürümler daha sık olmaya başladı ve sistem başarısızlıkları neredeyse hiçbir sipariş alınamayacağı anlamına geldi.Günümüzde e-ticaret uygulamaları ile, piyasaya sürümler ayda iki veya üç kez gerçekleşebiliyor.Artık, kullanıcı tabanı, geniş, işçi olmayan bilinmeyen sayıdaki müşterilerden oluşuyor.Sistem başarısızlıkları yüksek derecede görülebilir ve de müşterilerin rakipleri tercih etmelerine neden olabilir.
Bu eğilimlerin proje yöneticileri için birçok ciddi sonucu vardır.Başarısızlığın yüksek maliyeti, test edilmemiş yazılım sürmenin bir seçenek olmadığı anlamına gelir.Ek olarak,kalitenin sadece bir ya da iki tane değil her yönünü onaylama gerektirir. Hızlandırılmış piyasaya sürüm döngüsü, testlerin kolay yaratıldığı, sürdürüldüğü ve yeniden kullanılabildiği otomatik test gereksinimini oluşturur. Yapılacak bu kadar çok şey olduğu durumlardaelden metodlara güvenmek doğru değildir.
Yazılım yaşam döngüsünün ilk zamanlarında başlayan devamlı kalite odaklı yaklaşım, yazılımın tamamlanmasında ve bakımında maliyeti önemli derecede düşürebilir.Bu durum düşük kaliteli yazılım dağıtma riskini büyük ölçüde azaltır.
Yazılım Testi Nasıl Yapılır?
Yazılımın işlevsellik testi en iyi şu sorulara cevap verir:
- Bu yazılım nasıl bozulur ?
- Hangi olası durumlarda bu yazılımın bozulması tahmin edilebilir?
Yazılım testi, özellikle ürün kalitesini belirlemeye ya da değerlendirmeye odaklanır; bu, aşağıdaki meslek uygulamaları ile anlaşılır:
- Yazılım kalitesindeki kusurları bulmak ve belgelemek
- Görülen (perceived) yazılım kalitesi üzerine öneride bulunmak
- Tasarımda ve gerekli özelliklerde yapılan varsayımları onaylamak ve kanıtlamak
- Yazılımın tasarlandığı şekilde çalıştığını onaylamak
- İhtiyaçların düzgün bir şekilde tamamlandığını onaylamak
Yazılımda Kalite Güvence Testinin Avantajları
Riski azaltmanın en etkili yolu, geliştirme döngüsünde test etmeye erken başlamak ve her aşamasında tekrar test etmektir.Bu yaklaşım ile, özellikler tamamlandıkça kusurlar kaldırılır.Uygulamanın testi, son özellikler kodlandıktan kısa bir süre sonra tamamlanır ve sonuç olarak da ürün piyasaya sürümünden önce hazır olmuş olur.
Ek olarak, hangi özelliklerin tamamlandığının bilgisi (örneğin,hem kodlanmış hem de test edilmiş) tüm süreç boyunca kontrolde daha büyük yönetim sağlar ve iş stratejisinin verimli yürütülmesini arttırır.Her test tekrarı, geliştiriciler ve test ediciler adına belirgin bir ek planlama ve daha fazla çaba gerektirir; fakat bunlar pozitif girişimlerdir ve ödülleri büyüktür.
Kalite açığını hızlıca kapamak için erken ve her aşamada yapılan test ile kazanılan birçok avantaj vardır:
- Geliştirmenin son aşamalarındansa ilk aşamalarında riskin bulunması ve azaltılması
- Problemleri daha az maliyet ile onarma
- Piyasaya sürüm tarihi daha doğru bir şekilde tahmin edilebilir
- İhtiyaçlar sayesinde sonuçlar verilir
- Ürün kısa zaman içinde hazır hale gelir
- İş stratejisi daha verimli bir şekilde yürütülür
- Saydamlık oluşturulur
- Geri çekilme testi için yapay olgular yeniden kullanılabilir.g
- Herhangibir özel şirkete yada satıcıya bağlı değildir.
Yazılımda Kalite Güvence Testinin Ölçüleri
Bir testin temel ölçüleri Kapsam ve Kalite içerir.Test Kapsamı, test tamamlılığının ölçüsüdür. Bu, test gereksinimlerinin kapsamı ve test durumları tarafından ya da yürütülen kod kapsamı tarafından ifade edilen test kapsamına dayanır.Test kapsamı, kapsam tabanlı ve kod tabanlı kapsam gereksinimlerini içerir.Kalite; güvenirliliğin, sağlamlılığın ve test hedefinin performansının (teste dahil sistem veya uygulama)ölçüsüdür.Kalite; test sonuçlarını değerlendirmeye ve test sırasında saptanan değişiklik önerilerini (kusurları) analiz etmeye dayanır.
Yazılım Kalite Güvencesi Testinin Farklı Düzeyleri
Test, iş gayretinin farklı aşamaları ya da düzeylerindeki farklı hedeflere uygulanır.Bu düzeyler; tipik olarak, testi tasarlamada ve yürütmede en yetenekli olan roller ve her düzeyi test etmede tekniklerin en uygun olduğu yerler olarak ayrılır.Bu farklı iş gayretleri boyunca odak dengesini sağlamak önemlidir.
Geliştiricinin Testi
Geliştiricinin test, test tasarımını ve uygulamasını geliştirici ekibin üstlenmesi için en uygun yönleri belirtir.Çoğu durumlarda, test uygulaması ilk olarak, testi tasarlayan ve uygulayan geliştirici grubuyla oluşur .
Bağımsız Test
Bağımsız test; test tasarımını ve uygulamasını, geliştirici ekipten bağımsız biri tarafından en uygun şekilde uygulanmasını belirtir.Çoğu durumlarda, test uygulaması ilk olarak, testi tasarlayan ve uygulayan bağımsız test grubuyla oluşur .Fakat bağımsız test edicilerin kendi testlerini yaratmaları, geliştirici gruplarına, ürünü test etmeleri içiin gerekir.
Diğer düzeyler aşağıdakilerin içerir:
- Bağımsız Müşteri Testi (IST) - Müşterinin gereksinim ve endişelerini baz alan bir testtir.
- Birim Testi- yazılımın test edilebilir en küçük elementlerinin doğrulanmasına odaklanır.
- Entegrasyon Testi- uygulama modelinin bileşenlerinin birleştiğinde doğru bir şekilde çalıştığından emin olmaktır.
- Sistem Testi- Hedef, genellikle sistemin baştan sona fonksiyonel elementlerinin test edilmesidir.
- Onaylama Testi- Yazılımın hazır olduğunu ve yazılım için yapılan bu fonksiyonları ve görevleri gerçekleştirmek için yazılımın son kullanıcılar tarafından kullanılabileceğini doğrulamaktır.