25 Aralık 2014 Perşembe

Yazılım Testi Nedir ?


Test ilgili yaygın bir anlayış testin sadece test koşumu işleminden ibaret olduğu yönündedir. Test koşumu, test etme işleminin bir parçasıdır fakat tümü değildir.

Test sürecinde test koşumu öncesi ve sonrasında gerçekleştirilen başka işlemler de vardır. Bu işlemler arasında planlama ve kontrol, test koşullarını seçme, test senaryolarını tasarlama ve koşturma, sonuçları kontrol etme, çıkış kriterini değerlendirme, test süreci ve test edilen sistem ile ilgili raporlama ve test fazı tamamlandıktan sonra kapanış işlemlerini sonlandırma ve tamamlama yer alır. Test ayrıca, dokümanları gözden geçirme (kaynak kod dahil) ve statik analiz işlemlerini de içerir.

Dinamik test ve statik test benzer hedeflere ulaşmak için kullanılabilir ve test edilen sistem ile yazılım geliştirme ve test süreçlerini iyileştirmek için kullanılabilecek bilgiler sağlar.

Testin hedefleri aşağıdaki gibi olabilir:
  • Hataları bulmak
  • Kalite seviyesi hakkında güven kazanmak
  • Karar verme için bilgi
  • Hataları önleme
Kalite kontrol edilmez üretilir düşünce yapısı ve testlerin yazılım geliştirme sürecinin en başından itibaren işin içine dahil olması gerekliliği hataların daha yapılmadan önlenmesini sağlayacaktır. Üretilen çıktıların gözden geçirilmesi sonucunda (örn. analiz dokümanı) bulunan hataların tanımlanıp çözülmesi de kodda hataların çıkmasını engellemeye de yardımcı olabilir.

Test seviyelerindeki farklı bakış açıları farklı test amaçlarını ortaya çıkarabilir. Örneğin entegrasyon testinde amaç mümkün olan en fazla sayıda arızayı ortaya çıkarmak olabilir. Kullanıcı kabul testinde ise amaç yazılımın gereksinimleri karşılaması konusunda güven elde etmek olabilir. Bazı test senaryolarında ise testin amacı yazılımın kalitesini değerlendirmek (hataları düzeltme amacı olmadan) ve yazılımın belirli bir sürede piyasaya sürülmesi ile ilgili riskler konusunda paydaşlara bilgi vermek olabilir.

Bakım testi ise genellikle yazılımda yapılan iyileştirme ve değişikliklerin yeni bir hataya yol açıp açmadığını ortaya çıkarmak için yapılır. Operasyonel test sırasında ise amaç güvenilirlik veya elverişlilik gibi yazılım özelliklerini denetlemek olabilir.

Hata ayıklama ve test farklı kavramlardır. Dinamik test, hataların neden olduğu arızaları gösterebilir. Hata ayıklama ise arızanın sebebini bulan, analiz eden ve ortadan kaldıran bir çeşit yazılım geliştirme aktivitesidir. Düzeltme yapıldıktan sonra test uzmanı tarafından gerçekleştirilen tekrar testi, düzeltmenin arızayı giderip gidermediğinden emin olmak için yapılır. Bu aktivitede genellikle test uzmanları testi yapar, yazılımcılar ise hata ayıklar.