Unit Test Nedir?

Özen Karaçakır Ereyli
CITS Tech
Published in
3 min readDec 23, 2022

Her geçen gün gelişen teknolojilerle yazılan projeleri hayatta tutup, gelişimini sağlamak için sadece çalışan kodla canlı ortama çıkmak yeterli olmuyor. Yazılım yaşam döngüsünü sağlıklı biçimde adımlamak, her adımı özenle geçmek, geçtikten sonrada geriye bakıp anlam çıkartıyor olabilmek gerekmektedir. İyi bir planlamayla başlayıp, sıkı bir testle canlıya uzanan uzun bir süreçte, ihtiyaçların ve geri bildirimlerin artarak büyüyeceği bir projeyi yönetmek, geliştirip büyütmek zorlu bir yoldur. Bu zorlu yola planlama ile başlanır. Analiz, tasarım, uygulama adımlarıyla devam eden bu yolun sonucunda en az hata ile (hatasız) çıkış verilmek amaçlı test adımına geçilir. Yazılım test süreçlerinden geçen uygulama canlı ortama hazır hale getirilir. Yazılım yaşam döngüsündeki her adım kendi başına bir süreç olarak ilerler. Yazılım projelerinde bu döngüde her adıma dikkat edilmesi projenin sürdürülebilirliğini sağlar.

Test, son adım gibi ifade edilmiş olsa da aslında her adımda önemli rol taşır. Yazılım yaşam döngüsünde uygulama adımıyla birlikte test adımı devreye girer. Yazılan her kod bloğu sonrası ”hata veriyor mu” diyerek projeyi derleyip çalıştırmak test sürecini başlatmış olur. Hata veriyorsa koda dönülür, hata vermiyorsa devam edilir. Bu mantıkla yola çıkıldığında projenin bütünüyle test edilmesi ayrı bir süreç gerektirir. Yazılım test süreçleri manuel ve otomasyon olmak üzere ana iki başlıkta incelenmesi gereken konulardır.

Asıl konu başlığımız: Unit Text Nedir? Unit testi otomasyon testlerinin en küçük yapı taşı olarak tanımlanır. Entegrasyon testinden önce gelir. Yazılımcılar kendileri yazıp koşarlar. Sadece bir kod bloğunu, bir işlevi, tek bir işlemi test etmek için yazılan test türüdür. Yazılım geliştirme sürecinde gerçekleştirilir.

Yapılan analizle ortaya çıkan algoritmanın koda ne kadar yansıdığını ölçmek için yazılan birime özel testler daha iyi, daha okunabilir ve geliştirilebilir kodlar yazmaya yardımcı olur. Özetle koddaki düzenleme işlemini kolaylaştırır ve hızlandırır. Test edilen birimlerin entegrasyonuyla bir arada doğru çalışmayabilir. Böylece entegrasyon testleri ve sonraki aşamada sistem testleri devreye girer. Yazılım test süreci tamamlanır.

Peki nasıl unit text yazılır? Bu sorunun geniş bir cevap yelpazesi bulunuyor. Çeşitli framework seçeneği sunuluyor. Projeye uygun bir framework seçip ilerlemek gerekir. Genel olarak unit test yazmak için kurallara uymak gerekir.

- Yazılımda en küçük parça (fonksiyon) tespit edilir.

- Test senaryoları oluşturulur.

- Test method isimleri koşulan senaryoyu yansıtmalıdır.

- Koşulan methodlar birbirlerinden bağımsız olmalıdır.

- Testler hızlı çalışarak bekletmeden sonuca ulaştırmalıdır.

- Okunaklı, anlaşılır ve sürdürülebilir olmalıdır.

- Başarısız test sonucu iyi raporlanmalıdır.

- Geriye dönük hata ayıklama ve düzenleme dökümanı oluşturulmalıdır.

Böyle teori olarak okunduğunda uygulamada çok zaman kaybı yaşanacakmış gibi göründüğünün farkındayım :) Fakat özellikle büyük ölçekli projelerde karmaşayı azaltıp birim birim ilerleyerek hataları minimuma indirerek daha kaliteli ve sürdürülebilir kod yazmak için Unit Test yazılmalıdır.

Son olarak; Unit Test mantığını kavrayabilme adına ürünlerin listelendiğini test eden method aşağıda paylaşıldı.

--

--