Yazılım Testi Nedir?

Yazılım testi, yazılımın daha önce tanımlanmış teknik ve işlevsel gereksinimleri karşılayıp karşılamadığının ve yazılımın beklendiği gibi çalışıp çalışmadığının kontrolüdür. Yazılım test süreci de temel olarak elde edilen ürünün beklenen kalitede olduğunu belirlemek, değilse istenilen kaliteye ulaştırılmasını sağlamayı amaçlayan bir süreçtir. Kalite düzeyi müşteri tarafından maliyet analizi göz önüne alınarak belirlenir. Bilgisayar sistemleri hatalar barındırır. Bu hatalar insan (geliştirici, analist vb.) ve donanım kaynaklı olabilir ve hatalar maddi ve/veya prestij kayıplarına neden olabilir. Yazılım test surecinin proje döngüsüne katılmasıyla bu kayıplar en aza indirebilir. Burada unutulmaması gereken şey mükemmel yazılım olmadığı ve bir yazılımın asla %100 test edilemeyeceğidir. Bir yazılımı %100 oranında test etmeye çalışmak hem maddi gerekçelerle hem de pratik olarak mümkün olmadığından, yazılımın beklendiği gibi çalıştığını gösterebilecek sınırlı sayıda ancak özenle seçilmiş bir test kümesinin belirlenmesi ve bu test kümesi üzerinden test yapılması daha mantıklıdır.


Yazılım testi başka bir ifadeyle bir yazılımın doğrulanması ve geçerlenmesi süreci olarak da tanımlanabilir. Yazılımın doğrulanması işlemi “Yazılımı doğru mu geliştiriyorum?” sorusunun cevabını aramaktır. Bu soruya cevap verebilmek için bir geliştirme aşamasının başlangıcında yapılması taahhüt edilen işlerin bu aşama sonunda gerçekten yapılıp yapılmadığının kontrolünü yapabilmek gerekir. Yazılımın geçerlenmesi ise “Doğru yazılımı mı geliştiriyorum?” sorusunun cevabıdır. Burada kastedilen ise yazılımın başlangıçta belirlenen gereksinimleri karşılayıp karşılamadığının sorgulanması yani ürünün gerçekten müşterinin istediği ürün olup olmadığının kontrol edilmesidir. Yazılım testinin ne zaman veya hangi aşamada yapılacağı, geliştirmede kullanılan yazılım geliştirme süreç modeline bağlıdır. Geleneksel yöntemlerde gereksinimler tanımlanıp kodlama işlemi tamamlandıktan sonra test sürecine geçilirken, çevik (agile) yöntemlerde geliştirme ve test paralel yürütülmeye çalışılmaktadır.

YAZILIM TEST AŞAMALARI

Birim Test

Birim test uygulamanın kaynak kodunun belli bölümlerinin doğru biçimde çalıştığını ve kullanıma uygun olup olmadığını anlamak için kullanılan bir test tekniğidir. Birim bir yazılımın test edilebilir en küçük parçasıdır. Birim yapısal programlamada bir fonksiyona, nesneye yönelik programlamada ise sınıfa karşılık gelebilir.

Bu testler genellikle geliştiriciler tarafından bir kod parçasının beklendiği şekilde çalışıp çalışmadığını kontrol etmek için yazılır. Birim test tek başına yazılımın işlevlerinin karşılandığını doğrulayamaz ancak yazılımı oluşturan birimlerin birbirlerinden bağımsız olarak doğru çalıştığını gösterebilir. Birim test aynı zamanda bileşen testi olarak da bilinmektedir.

Birim test sürecini desteklemek üzere çeşitli birim test çatıları (framework) bulunmaktadır. Bu çatılar birim test yapmayı kolaylaştırmaktadırlar ve günümüzde birçok programlama dili için yazılmış birim test çatıları vardır. Java dilinde yazılmış uygulamaları test etmek için JUnit, PHP uygulamaları için PHPUnit gibi birim test çatıları yaygın olarak kullanılmaktadır. Herhangi bir çatı kullanmadan programlama dillerinin bize sunduğu “exception handling”, “assertion” gibi olanakları kullanarak birim test yapmak mümkündür ancak bu tarz çatılar sisteme birim test eklemeyi ve çalıştırmayı kolaylaştırdığı için tercih edilmektedirler.

Bütünleştirme Testi

Bütünleştirme testi yazılım modüllerinin birleştirilip bir grup olarak test edildiği aşamadır. Birim test aşamasından sonra, sistem testi aşamasından önce yapılır. Birim test aşamasından geçmiş ve dolayısıyla tek başlarına doğru çalıştıklarından emin olduğumuz yazılım modülleri gruplanarak bütünleştirme testleri uygulanır ve sonuçta sistem testine hazır hale gelmiş bir bütünleşik sistem çıkar.

Sistem Testi

Sistem testi bir yazılımın (donanımlar için de bu test uygulanabilir) gereksinimlerinin tam ve doğru bir biçimde karşılanıp karşılanmadığını belirlemek için yapılır. Bütünleştirme testinin ardından yapılan bu test, bütünleştirme testi sonrası ortaya çıkan bütünleşik sistemi girdi olarak alır ve testlerini bunun üzerinde uygular. Sonuçta ortaya gereksinimleri SRS belgesi ile tanımlanmış ve burada tanımlı bütün gereksinimleri eksiksiz ve doğru biçimde gerçekleştirmiş bir sistem çıkar.

Share

8 Replies to “Yazılım Testi Nedir?”

  1. Ben su ara cmmı metedolojılerı ıle ılgılı verıfıcatıon ve valıdatıon sureclerını ıncelıyorum.

    ozellıkle sormak ıstedıgım şu.

    Örnegın bır yazılım gelıstırme surecınde,

    bır testçi arkadaşın performansını nasıl ölçmeliyiz? yada tasarım gelıstıren kısınin.

    yani yer aldığı projede bulduğu hata sayısının maxımum olması mıdır?

    onu tam çözemedim.

    Yardımcı olabılırsenız cok sevınırım.

    İyi Çalışmalar

  2. testçi bir kişinin performansının en doğru göstergesi müşteri kabulü sürecinde çıkan hataların sayısı ve kritiklik derecesidir. Bu hataların, testçinin bulduğu hatalara oranı ile farklı bir metrik göz önüne alınabilir.

Bir Cevap Yazın