Unit Test ve Test Türleri

Furkan Ozdemir
emlakjet
Published in
3 min readAug 24, 2022

Test Nedir?

Test, bir yazılımın istenilen özellikleri karşıladığını sağlayabilmek için yapılan işleme denir. Testler yazılımımızın güvenliğini, kalitesini arttırıp daha geliştirmeye yatkın bir ortam sağlanmasına yardımcı olur.

Test Sınıflandırması

Testler genel açıdan Functional Testing (Fonksiyonel Test) ve Non-functional Testing(Fonksiyonel Olmayan Test) olarak ikiye ayrılır. Fonksiyonel testler kodun amacı doğrultusunda çalışıp çalışmadığını test etmektedir fonksiyonel olmayan testler ise kod ile alakası olmayıp dış ortamlardaki çalışma şartlarını test eder ve fonksiyonel testler bittikten sonra yapılır. Bu test sınıflandırmalarının alt dallarına bakacak olursak ;

Functional Test Türleri

· Unit Testing (Birim Test)

· Integration Testing (Entegrasyon Testi)

· System Testing (Sistem Testi)

· Sanity Testing (Doğruluk Testi)

· Smoke Testing (Duman Testi)

· Interface Testing (Arabirim Testi)

· Regression Testing (Tekrar Testi)

· Acceptance Testing (Kabul Testi)

Non-Functional Test Türleri

· Performance Testing (Performans Testi)

· Security Testing (Güvenlik Testi)

· Compatibility Testing (Uyumluluk Testi)

· Install Testing (Yerelleştirme/Yüklenebilirlik Testi)

· Recovery Testing (Kurtarma Testi)

· Usability Testing (Kullanılabilirlik Testi

Yazılım Test Metodolojileri

Yazılım Test Metodolojileri White Box Testing (Açık Kutu Testi) ve Black Box Testing(Kapalı Kutu Testi) olarak iki ana başlıkta incelenmektedir.

White Box Testing (Açık Kutu Testi)

White box testing yani açık kutu testinin asıl amacı kodun iç yapısını inceleyerek kod içinde bulunan hataları temizlenip okunabilir ve temiz bir kod bırakma testi olarak söyleyebiliriz. Bu testi yapacak olan kişinin kodun iç yapısını çok iyi bilmesi gerekmektedir aksi takdirde bu testi yapmak maaliyeti yüksek olur. Bu test metoduna bağlı olarak birim testi, performans testi, stres testi vs. gibi testler yapılmaktadır.

Black Box Testing (Kapalı Kutu Testi)

Black box testing yani kapalı kutu testinin asıl amacı kodun iç yapısı ile ilgili olmayıp tamamen fonksiyonel ihtiyaçlara göre yapılan testlerdir. Bu testi yapacak olan kişinin kodun iç yapısını bilmesine gerek yoktur asıl yapması gereken sistemin ön yüzünde girdiler sağlayarak doğru çıktıların çıktığından emin olmaktır. Bu test metoduna bağlı olarak yükleme testi, güvenlik testi vs. gibi testler yapılmaktadır.

Unit Test Nedir?

Unit test yani birim testi bir yazılımın test edilebilir en küçük parçalarını birbirinden bağımsız şekilde test edilmesine verilen isimdir. Unit test yazılım testlerinde başlayacağımız ilk katmandır ve asıl amacı en küçük birimin belirli bir senaryo içinde tam olarak test edilmesidir.

Unit Test Avantajları

· Kolay yazılabilir

· Otomatiktir ve kolaylıkla tekrar çalıştırılabilir

· Hızlıdır

· Karşılaşabilecek hataları en başta kodu yazarken gösterir

Unit Test Dezavantajları

Unit test birimleri yani küçük resmi test eder, küçük resimler birleşerek büyük resimleri oluşturur dolayısıyla bu parçalar birleşirken oluşabilecek mantık hatalarını bu test ile yakalamayız.

Unit Test Kütüphaneleri

· JUnit

· NUnit

· PhpUnit

· JMockit

· Spock

· Mocha

· Jasmin

Test Driven Development Nedir ?

Test nedir, ve türleri nelerdir gibi konulara değindik peki testleri nasıl yazmalıyız ? Bunun için Test driven development yaklaşımını kullanmaktayız. Test driven development yaklaşımı kodun ne yapacağını belirlemek ve daha öncesinde sağlama yapmak için kullanılan bir yaklaşımdır. Bu yaklaşımda kodu yazmadan önce ilk olarak test yazılır ve yazdığımız testten sonra kodları yazarak kodumuzun düzgün çalışıp çalışmadığının sağlamasını yaparız.

Test Driven Development Avantajları

· Yazılan kodun daha az hata içermesi

· Kodun daha sonraki değişiklikler için sürdürülebilir hale gelmesi

· Hataların tespitinin daha kolay bulunması

· Daha hızlı ve pratik bir şekilde geliştirilen kod

Yazımı okuduğunuz için teşekkür ederim 😊

Kaynakça

https://orhunbegendi.medium.com/unit-test-turleri-neler-ve-hangileri-isine-yarar-a187a4fbb094

--

--