Pareto Prensibi ve Yazılım Testi
Pareto Prensibi nedir?
Pareto prensibi istatistiksel bir karar verme tekniğidir ve “80/20 kuralı”, “asgari çaba ilkesi” veya “dengesizlik ilkesi” olarak da bilinir. Prensip %20’lik efor ile %80’lik bir sonuç üretilebileceğini söyler. İtalyan bir ekonomist olan Vilfredo Pareto tarafından keşfedilmiştir. Vilfredo Pareto İtalya’daki gelirin %80’inin nüfusun %20’sine gittiğini fark etmiştir ve bu yaptığı araştırmayı diğer ülkelere de yaptığında benzer bir dağılım olduğunu görmüştür.
Bu prensibin daha sonra diğer alanlara da uygulanabildiği görülmüştür. Bunların yazılım dünyası ile ilgili olanları hakkında birkaç örnek aşağıda verilmiştir:
Yazılım proje yönetiminde temel işlerden %20’si tamamlandığında aslında toplamda %80’lik bir iş yapıldığı söylenir.
Yazılım testinin 7 prensibinden biri de hataların belirli modüllerde toplanmasıdır (Defect Clustering). Buna göre yazılım hatalarının %80’i toplam modüllerin %20’sinde bulunur.
2002 yılında Microsoft ürettikleri yazılımları güvenlik, güvenilirlik ve gizlilik yönlerinden geliştirmek amacıyla bir girişim başlatmıştır. Bu girişimin başladığı yıl, Microsoft birçok arızanın aslında bugların küçük bir kısmından kaynaklandığını hemen fark etmiştir ve ileri bir analiz yapıldıktan sonra çökmelerin ve arızaların %80’inin bugların %20’sinden kaynaklandığı ortaya çıkmıştır.
Dolayısıyla işlerin/modüllerin/bugların bu %20’lik bir kısmı belirlenip gerekli işlemler yapılırsa %80’lik bir etki oluşturacaktır.
Pareto prensibi birçok alanda olduğu gibi test planlaması içinde kullanılmakta ve zaman/efor yönetimi gibi yönlerden ciddi faydalar sağlamaktadır. Tabi işin %80’lik kısmı da ihmal edilmemektedir. Pareto Analizi yapılarak %20’lik kısım belirlendikten sonra öncelikli olarak bu kısım için efor ayrılmaktadır. Örneğin, Microsoft Windows XP ilk servis paketinde çözeceği bugları belirlemek için bu yöntemi kullanmıştır. Benzer şekilde Office XP ikinci servis paketi ve Visual Studio.Net beta versiyonu için de bu yöntemi seçmiştir.
Pareto prensibini yazılım testinde uygulamanın birkaç yolu bulunmaktadır:
- Hataları sebeplerine/kök nedenlerine göre gruplandırmaya çalışın.
- Oluşabilecek problemleri gruplamak için Yazılım mühendislerinden yardım alın. Mesela, çok fazla hata bulduğunuz modüllerde aynı yazılım kütüphanesini kullanmış olabilirler.
- Zamanınızı ve eforunuzu rastgele hatalar bulmak yerine problemli olan bölümler için harcayın.
- Test caselerinizi en kritik olanlardan başlayarak önceliklendirin.
- Kullanıcı geribildirimlerini analiz edin. Bu sizin riskli alanları belirlemenize de yardımcı olacaktır.
Pareto Analizi
Pareto analizini kullanarak odaklanmanız gereken alanları belirlemek için aşağıda 8 adım verilmiştir:
- X ekseninde nedenler, y ekseninde hata sayıları olacak şekilde bir dikey bar chart oluşturun.
- Bar chart’ı hata sayıları en yüksekten başlayacak şekilde düzenleyin.
- Her hata nedeni için yukarıdan aşağıya doğru toplayarak kümülatif hata sayısını hesaplayın.
- Her hata nedeni için kümülatif hata yüzdesini hesaplayın. Yüzde Hesaplaması: {Kümülatif Hata Sayısı} / {Toplam Hata Sayısı}*100
- Onar onar artacak şekilde %0’dan %100’a kadar giden farklı bir y ekseni oluşturun.
- X ekseninde bulunan her neden için hesaplanan kümülatif hata yüzdesi değerlerini y ekseninde bulunan yüzdelere göre işaretleyin.
- İşaretlediğiniz noktaları bir eğri oluşturacak şekilde birleştirin.
- %80’e denk gelecek şekilde x eksenine paralel bir çizgi çizin ve eğri ile birleştiği yerden x eksenine kadar bir çizgi daha çizin. X ekseni üzerine geldiğinizde odaklanmanız gereken önemli maddeler ile (sol taraftakiler) önemi düşük olan maddeleri (sağ taraftakiler) ayırmış olacaksınız. (Şekil 1’de kırmızı kesik çizgiler ile gösterilmiştir)
Aşağıda bir web sitesindeki hata sebepleri ve sayıları ile oluşturulmuş tablo ve Pareto diyagramı verilmiştir. Şekil 1’de görüldüğü gibi bu web sitesi için kırık linkler, yazım yanlışları ve eksik başlık etiketleri önemli hata sebeplerindendir.
Hata Sebepleri | Hata Sayısı | Kümülatif Hata Sayısı | Kümülatif Hata Yüzdesi % |
Kırık Linkler | 349 | 349 | 43,7 |
Yazım Yanlışları | 169 | 518 | 64,8 |
Eksik Başlık Etiketleri | 79 | 597 | 74,7 |
Eksik Açıklama Etiketleri | 77 | 674 | 84,4 |
Kırık Resimler | 45 | 719 | 90,0 |
Script Hataları | 30 | 749 | 93,7 |
Headinglerin yanlış kullanılması | 15 | 764 | 95,6 |
Eksik ALT Etiketleri | 14 | 778 | 97,4 |
Browser Uyumluluğu | 12 | 790 | 98,9 |
Güvenlik Uyarıları | 9 | 799 | 100,0 |
Şekil 1 Pareto Diyagramı
Proven Test Hizmetleri ekipleri, Entegre Test Yönetimi Yaklaşımı, Bağımsız Test ve Dış kaynak Hizmetleri ile müşterilerinin yazılım ve bilişim alanındaki ürün ve hizmetlerinin kalitesini arttırmak için alternatif çözümler sağlamaktadır. Konuyla ilgili daha detaylı bilgiye www.proven.com.tr üzerinden veya [email protected] adresine e-posta atarak ulaşabilirsiniz.
Barış KÜÇÜK
Kaynaklar
[1] Nataliia Vasylyna, Pareto Principle in Software Testing. Temmuz, 2018
https://blog.qatestlab.com/2011/02/25/pareto-principle-in-software-testing/
[2] Duncan Haughey, PARETO ANALYSIS STEP BY STEP. Nisan 10, 2019, https://www.projectsmart.co.uk/pareto-analysis-step-by-step.php
[3] Paula Rooney, Microsoft's CEO: 80-20 Rule Applies To Bugs, Not Just Features. Ekim 03, 2002 https://www.crn.com/news/security/18821726/microsofts-ceo-80-20-rule-applies-to-bugs-not-just-features.htm