Yazılım Testi Hakkında Temel Bilgiler

Yazılım test tipleri ve kategorileri

Adem Catamak
4 min readFeb 14, 2024
Photo by Zan on Unsplash

You can access the English version via this link.

Yazılım Testi Nedir?

Yazılım testi; geliştirilen kod parçasının beklendiği gibi çalışıp çalışmadığını, performans kriterlerini karşılayıp karşılamadığını, yazılımın kalite kıstaslarına uyup uymadığını veya farklı kod parçalarının bir arada uyum içinde çalışıp çalışamadığını görmemizi sağlayan aksiyonların geneline verilen isimdir.

Tests, Tests Everywhere

Yazılım Testi Neden Önemlidir?

  • Sistematik olarak yapılan kontroller sayesinde hatalar erken safhalarda tespit edilebilir. Erken safhalarda tespit edilen hataların çözüm maliyetleri çok daha düşük olur.
  • Güvenlik, yük, stres testi gibi testler aracılığıyla geliştirilen uygulamanın farklı senaryolarda nasıl davranacağı tespit edilebilir.
  • Geliştirilen kod parçasının kalite metriklerinin belli değerler arasında kalması sağlanır. Bu şekilde bakım ve geliştirme maliyetleri daha düşük tutulabilir.
  • Teste harcanan süre daha düşük olacağı, hatalar erken safhalarda tespit edilebildiği ve kalite standardları içerisinde geliştirilmiş uygulamaya gelecek ek geliştirme süresinin daha düşük olacağı için proje zaman çizgisine uymak daha kolay olacaktır.
  • Yukarıda bahsedilen avantajların hepsi bir araya geldiği zaman, iç ve dış müşterilerin güvenini kazanmak gibi büyük bir avantaj da bir sonuç olarak ortaya çıkacaktır.

Yazılım Test Teknikleri

White Box vs Black Box Testing

Beyaz Kutu Testi / Şeffaf Kutu Testi (White Box Testing / Glass Box Testing)

Bu yöntemde geliştirilen kod parçası incelenerek test senaryoları oluşturulmaktadır. Bu sebeple geliştirilen kod parçasına erişimi olan, geliştirilen kod parçasını okuyup anlayabilen kişiler tarafından yapılmalıdır. Birim testi, entegrasyon testi gibi testler bu tekniğe örnek olarak gösterilebilir.

Kara Kutu Testi (Black Box Testing)

Kara kutu testi, geliştirilmiş kod parçasını görmeden yapılan testlerdir. Kullanılan dil, geliştirme yöntemi, kullanılan kütüphaneler ve araçlar gibi bilgilerden habersiz şekilde yapılır. Sisteme belli girdiler verilir ve sonucun beklendiği gibi olup olmadığı kontrol edilir. Yük testi, stres testi, güvenlik testi gibi testler bu teknik ile hazırlanan testlere örnek olarak gösterilebilir.

Yazılım Test Kategorileri

1.A — Fonksiyonel Testler

Fonksiyonel testler geliştirilen kod parçasının beklendiği gibi çalışıp çalışmadığının kontrolünün yapıldığı testlerdir. Bu testler aracılığıyla, sisteme verilen girdilere karşılık beklenen sonuçların elde edilip edilmediği kontrol edilir.

1.B — Fonksiyonel Olmayan Testler

Bu test tipinde uygulamanın çalışma şekli dışındaki özellikleri test edilir. Bu özelliklere performans ve güvenlik gibi kriterleri örnek olarak verebiliriz. Yük testi, stres testi ve kullanışlılık testi gibi test tipleri fonksiyonel olmayan test kategorisine girmektedir.

2.A — Statik Testler

Kodu çalıştırmadan yapılan test tiplerine verilen isimdir. Geliştirilen kodun başka bir developer tarafından okunması (review) bu test tipine örnek olarak gösterilebilir. Geliştirmenin tamamlanması beklenmeden erken aşamalarda bu testler yapılabilir. Bu sayede hatalar oluşmadan tespit edilebilir.

2.B — Dinamik Testler

Bu tür testlerde kod geliştirilmesinin tamamlanması beklenmek durumundadır. Geliştirme bittikten sonra kod çalıştırılır ve oluşturulan senaryolar çalıştırılan kod üzerinde yürütülür. Geliştirme sırasında yapılan hataların tespit edilmesi amaçlanır.

Yazılım Test Tiplerine Örnekler

Birim Testi

Geliştirilen kod parçasındaki birim işleri diğer bileşenlerden bağımsız olarak kontrol eden test yöntemidir. Bu test yönteminde amaç geliştirilen kod parçasının üzerine düşen işi doğru bir şekilde yapıp yapmadığını kontrol etmektir.

Entegrasyon Testi

Birim testi gibi geliştirilen kod parçasının doğru çıktılar üretip üretmediğini kontrol eden bir diğer test biçimidir. Bu yöntemde, birim testi sonucunda izole halde çalıştığını bildiğimiz birimlerin birlikte uyum içinde çalışıp çalışamadığına dair kontrollere odaklanırız.

Unit Test vs Integration Test

Kullanıcı Kabul Testi

Kullanıcı kabul testi, bir ürünün veya hizmetin kullanım kolaylığını ve kullanıcı beklentilerine uygunluğunu test etmek için yapılan testlerdir. Görevler listesi kullanılarak işlemlerin ne kadar kolay yapılabildiği gözlenir.

Performans Testi

Performans testleri, ürün veya sistemin belirli bir yük altında ne kadar verimli çalıştığını ve hangi koşullar altında hata verdiğini belirlemek için yapılmaktadır.

Stres Testi

Performans testleri gibi sistemin yük altında çalıştırılmasıyla yapılan testlerdir. Bu test tipinde sistemin kaldırabileceğinden fazla yük verilerek sistemin aşırı yük altındaki davranışları incelenir ve aşırı yük altındaki performansı ölçülür.

Güvenlik Testi

Güvenlik testleri, ürün veya sistemin güvenlik açıklarını tespit etmek amacıyla yapılan testlerdir.

Umarım yararlı bir yazı olmuştur. Diğer yazılarıma göz atmak için bu linke tıklayabilirsiniz.

--

--