Yazılım test faaliyetlerinin önemli noktalarından biri doğru ve etkin ölçümlemenin gerçekleştirilmesidir. Ölçümleme için ilk yapılması gereken, doğru göstergelerin/metriklerin (KPI) seçimi olmalıdır. Bu aşamada yapılan önemli hatalardan biri ürün veya süreçten ziyade kişilerin ölçümlenmesine odaklanmaktır.
Kişi bazlı ölçüm ve değerlendirmenin sonucunda kurum kültürüne ciddi boyutta hasar verilebilir. Kendini güvende hissetmeyen çalışanların kaliteli işe odaklanmak yerine pozisyonlarını korumak için onları ölçümleyen metriklere yönelik davranış geliştirmeleri söz konusu olacak, bu durum da ölçümlemenin oldukça yanlış sonuçlara ulaşmasına sebebiyet verecektir. Google’ın da dahil olduğu birçok firmada yapılan araştırmalarda benzer şekilde “Psikolojik Güvenlik Hissiyatının” başarı için en kritik unsurlardan biri olduğunun altı çizilmektedir.
Elbette, performans değerlendirmesi için metriklerden faydalanılması mümkün ve faydalıdır. Ancak bu metriklerin doğru şekilde seçimi, başarı kriterlerinin belirlenmesi, çeşitlenmesi ve değerlendirmenin oransal olarak en fazla belirli bir kısmını oluşturmasının, hatta kişi bazı olmak yerine ekibi değerlendirmenin doğru tercih olacağını söyleyebiliriz.
Yazılım Test Projelerinin Değerlendirilmesinde Kullanılabilecek Metrik Tipleri
Ölçümleme için kullanılabilecek metrikler amaçlarına göre üç kategoride gruplanabilir. Bunlar;
- Süreç Metrikleri: SDLC /STLC (Software Development/Testing Life Cycle) sürecinin etkinliğinin artırılması için kullanılabilecek metriklerdir.
- Ürün Metrikleri: Ürün kalitesine dair metriklerdir.
- Proje Metrikleri: Proje ekibi veya kullanılan bir aracın etkinliğinin ölçümlenmesi amacıyla kullanılan metriklerdir.
Bu üç kategoride belirtilen metriklerden en kritik olanlarını aşağıdaki gibi listeleyebiliriz.
1. Toplam Kalite Maliyeti / Total Cost of Quality
Bulunan, engellenen ve düzeltilen hataların toplam proje maliyetine oranı bize toplam kalite maliyetini vermektedir. Kalite Maliyeti hataların erken tespiti ve düzeltilmesi ile azalırken, canlı ortamda tespit edilenler ile üstel şekilde artmaktadır. Toplam Kalite Maliyetini hesaplamak için kullanılabilicek formül: [Hata saptama maliyeti + Hata engelleme maliyeti + Hata düzeltme maliyeti] / Toplam proje maliyeti
2. Test Eforu ve Verimliliği / Test Effort and Efficiency
Planlanan ile gerçekleşen test eforlarının sapmasının yani takvim ve takvimden sapmanın ölçümlenmesidir ölçümlenmesidir.
3. Toplam Test Senaryo Sayısı / Total Number of Test Cases
Test senaryo sayısı tek başına bir anlam ifade etmemektedir. Daha fazla sayıdaki testin hata fazla hata bulacağına dair bir çıkarım yapılamaz. Önemli olan test senaryolarının nasıl tasarlandıkları ve kapsama oranlarının ne olduğudur.
4. Test Koşum Metrikleri / Test Execution Metrics
Test koşum metrikleri (Passed/failed/in progress/blocked vb.), test sürecinin ilerlemesinin en önemli ölçütlerinden biridir. Test süreci ve ürün kalitesi hakkında bilgi sağlamaktadır.
5. Test Koşum Oranı / Test Execution Ratio
Test koşum oranı, test planında sapma yaşanıp yaşanmadığını gözlemleme ve düzeltici aksiyon alınması için yol gösterici olur. Bu sayede test faaliyetlerinin zamanında bitirilmesi kolaylaşır. Başarılı + başarısız senaryo sayısı/ toplam senaryo sayısı formülü ile hesaplanabilir.
6. Test Kalite Oranı / Test Quality Ratio
Test kalite oranı, o ana kadar koşulabilmiş test senaryolarının ne oranda başarılı, ne oranda başarısız olduğunun göstergesidir. Ürünün tümüne dair orantısal bağlantı kurulabileceği için test giriş kriteri olarak da kullanılabilir. Başarılı senaryo sayısı / Toplam koşulan senaryo sayısı formülü ile hesaplanabilir.
7. Test Etkinliği / Test Effectiveness
İlgili test fazında bulunan hataların tüm hatalara oranını ifade etmektedir. System, UAT gibi test seviyeleri için ayrı ayrı ölçümlenebileceği gibi tüm test fazı için bütün olarak da hesaplanabilir. Test fazlarında bulunan hataların tüm hatalara oranlanarak ölçülebilir.
8. Hata Sayı ve Dağılımları: Öncelik, Önem ve Kök Sebebe Göre / Defect Distribution by Priority, Severity and Root-cause
Bulunan hataların Geliştirme, Test ve Canlı ortamlardaki öncelik, önem ve kök sebebinin gösterilmesidir. Bu sayede doğru sıra ve sebeplere odaklanarak problemler daha etkin çözülebilir.
9. Hata Dönüm Süresi / Defect Turn-around Time
Hataların yazılımcı tarafından ortalama çözüm süresine işaret etmektedir. Kaydın oluşturulduğu tarihten, kontrol edilip kapatıldığı tarihe kadar geçen süredir.
10. Hata Reddedilme Oranı / Defect Rejection Ratio (Reddedilmiş, hatalı, mükerrer hata oranları)
Açılan hata kayıtlarının ne oranda kabul edildiğinin, ne oranda reddedildiğinin oranıdır. Bir hata kaydı daha önceden açılmış, mükerrer veya eksik olması gibi sebeplerle reddediliyor olabilir.
11. Hata Tekrar Açılma Oranı/ Defet Reopen Ratio
Öncesinde raporlanmış ve çözümlenmiş hataların daha sonra yapılan geliştirme veya farklı hata çözümleri sebebi ile tekrar oluşma oranıdır.
12. Hata Yoğunluğu / Defect Density
Satır başına veya geliştirme süresine göre ortalama ne kadar hata bulunduğunun ölçümüdür. Anlık değerlendirme yerine zamana bağlı değişimi daha anlamlı sonuçlar vermektedir.
13. Hata Saptama Oranı / Defect Detection Ratio
Harcanan efor (gün) bazında ne kadar hata bulunduğunun ölçümüdür. Anlık ölçümden ziyade zaman içerisindeki kümülatif değeri daha fazla anlam ifade eder. Ek olarak test çıkış kriteri olarak kullanılabilir.
14. Kod Kapsaması / Code Coverage
Test senaryolarının (manuel veya otomatize) kaynak kodu ne oranda çalıştırdığının ölçümlenmesidir. Line coverage, branch coverage, decision coverage gibi farklı kriterlere göre ölçümlenebilmektedir. Yüzde olarak ifade edilir.
15. İhtiyaç Kapsaması / Requirement Coverage
Test senaryolarının (manuel veya otomatize) requirement’ları ne oranda kapsadığının ölçülmesidir. Yüzde olarak ifade edilir.
Yazılım test projeleri yürütülürken bunlar ve çok daha fazlası için SLA’ler tanımlanması ve organizasyon genelinde ölçümlenmesi görece oldukça kolaydır. Ancak kritik olanın, kaliteli ve değer oluşturan çıktılar üretmek olduğunun hiçbir zaman unutulmaması gerekir.