top of page

Yazılım Testine Yeni Başlayanlar İçin 7 Test İlkesi

Güncelleme tarihi: 8 Ağu

Yazılım testinde kaliteyi artırmak, riskleri azaltmak ve kullanıcıya güvenilir bir ürün sunmak için bazı temel ilkeleri bilmek ve uygulamak büyük önem taşır. Test süreçlerinin daha etkili ve verimli hale gelmesi için uluslararası kabul görmüş “7 Test İlkesi”, yazılım testi dünyasının temel taşlarından biridir.


Bu yazıda, yazılım testinin neden yapıldığını, hataların nasıl yönetileceğini, testlerin hangi aşamada başlaması gerektiğini ve test planlarının nasıl şekillenmesi gerektiğini net örneklerle ele alacağız. Özellikle ISTQB sınavına hazırlananlar veya yazılım testi kariyerine yeni başlayanlar için bu ilkeler yol gösterici olacaktır.

Şimdi gelin, yazılım testinin yapı taşlarını oluşturan bu yedi temel ilkeyi birlikte inceleyelim.

ree

1-Test Hataların Varlığını Gösterir

Neden test yaptığımızı hatırlayalım. Kalite, kalite ve kalite için. Bu da demek oluyor ki hatalar var ve bizim bunların arızaya dönüşme riskini indirgememiz gerekiyor. O zaman;


  • Test hataların varlığını gösterir ama yazılımda hata olmadığını kanıtlamaz.

  • Test, yazılımda keşfedilmemiş hataların olasılığını azaltır.

  • Yazılımda hiç hata bulunmaması yazılımın doğruluğunu kanıtlamaz.


Bu dikkat edilmesi gerekli bir konu çünkü hata bulamadığımızda sanki yazılım ürünümüz %100 doğru çalışıyor gibi düşünebiliriz. Unutmamalıyız ki biz hep, riski azaltmak, kaliteyi arttırmak ve güvenilirliği sağlamak için testlerimizi yapıyoruz.


2-Her Şeyi Kapsayan (Exhaustive) Test Mümkün Değildir 

Mantıklı düşünmemiz gereken bir konu da budur. Her şeyi test edemeyiz. Her modülü, her kodu, her bir sistem ve entegrasyonu test edersek binlerce, milyonlarca farklı kombinasyon ortaya çıkar ve bunu test edecek maddi ve manevi bir kaynak yok.


  • Her şeyi test etmek mümkün değildir.

  • Her şeyi test etmek yerine, test faaliyetlerinde risk analizi ve önceliklendirme yapılmalı.


Örnek: Üç ekran uygulaması olsun. Üç menü ve menü başına üç seçenek olsun. Ekran başına üç alan var. İki tür giriş seçeneği olsun. Tam sayı olarak yaklaşık altı üzeri altı olası değer var. 

%100 Kapsamlı bir test için: 3 x 3 x 3 x 3 x 2 x 46656= 7 558 272 test adedi oluşur. Her test bir saniye sürse 87 gün eder, İş günü olarak 263 gün eder. Ben evde yapabileceğiniz minicik bir proje örneğini verdim. Düşünün ki günlük hayatta kullandığınız uygulamalar için bu rakamlar ne kadar yükselir.


3-Erken Test

Bu konunun önemini nerdeyse her yazıda vurguluyorum. Ne kadar erken test yapılırsa proje için o kadar iyidir.


  • Test faaliyetleri yazılım geliştirme döngüsü içinde mümkün olduğunca erken başlamalı ve tanımlı hedeflere odaklanmalıdır.


Erken test önemlidir ama neyi test edeceğinizi bilmek ve bir hedefiniz olması da önemlidir. Yoksa ortada kod yok kodu mu test edeceksiniz? Bunların iyi planlanması gereklidir.


4-Hata Kümelenmesi (Defect Clustering)

Buna Pareto ilkesi ile de yaklaşabiliriz. Aynı zamanda "80/20 kuralı" olarak da bilinir, birçok durum da sonuçların %80'inin, nedenlerin %20'sinden kaynaklandığını ifade eder.


  • Az sayıdaki modül, sürüm öncesi testler sırasında tespit edilen hataların büyük bölümünü içerir.

  • Bu modüller işlevsel hataların büyük bölümünden sorumludur.


Yazılım Mühendisliği üzerine yapılan bir araştırma da, modüllerin kabaca %20'sinin operasyonel hataların %80'ine neden olduğu tespit edilmiştir.


5-Testler Aşınır-Antibiyotik (Pesticide) Paradoksu

Bildiğiniz üzere hasta olduğunuzda doktorlar size hastalığa göre antibiyotik verirler. Aşırı ve gereksiz antibiyotik kullanımında flora değişimi ve mukozal bağışıklığın azalması sonucu alerjik hastalıklara eğilim artar. Yani mikrop bu antibiyotiğe karşı direnç geliştirir. Artık içmenizin bir anlamı kalmaz.


  • Aynı testler üst üste tekrarlandığında yeni hatalar bulamazlar.

  • Bu paradoksu aşmak için test durumu düzenli olarak gözden geçirilmeli, düzeltilmeli, genişletilmeli, hataları ortaya çıkarabilecek şekilde düzenlenmelidir.


6-Test İçerik/Alan (Context/Domain) Bağımlıdır

Bir balığın uçmasını beklemek ne kadar komik ve beklenmedik olacaksa. Bir ürüne gereksiz testler uygulamakta o kadar alakasız, verimsiz ve sonuçsuz olacaktır.


  • Farklı alanlarda farklı testler yapılmalıdır.

  • Örneğin, güvenliği kritik bir yazılımın testi bir e-ticaret sitesinin testinden farklı olmalıdır.


7-Hata Yokluğu Yanılgısı (Absance of error fallacy)

Herkes hata yapabilir. Deneyimin ne olursa olsun, bilgi ve pozisyonun her ne ise, sonuçta insansın ve hata yaparsın. Unutmayın yanlışlar insanlar tarafından yapılan eylemlerdir. Hata aynı zamanda kod yazımı ile değil gereksinimleri yanlış anlayarak da yapılabilir. Sonuçta müşterinin beklediği ürün yoksa bu da bir hatadır.


  • "Ben asla hata yapmam" veya "O hatayı yapmam imkansız" demek yanlıştır.

  • Ortaya çıkan sistem kullanıcının ihtiyaçlarını ve beklentilerini karşılamıyorsa hata bulmanın ve bu hataları düzeltmenin faydası olmaz.


Bu yedi ilke her test yaptığınızda aklınızda bulunması gereken önemli ilkelerdir. Testlerinizde başarılı sonuçlar almanız dileğiyle.

Yorumlar


bottom of page