Code the Unit Test First - Önce Testi Yazmak

Önce Testi Yazmak (Code the Unit Test First)

http://www.extremeprogramming.org/rules/testfirst.html

Kod geliştirmeden önce testlerini yazarsanız, göreceksiniz ki kodu oluşturmanız çok daha kolay ve hızlı olacak. Bir birim testi oluşturmak ve testin geçmesini sağlayacak kodu yazmanın toplamı, sadece kodu doğrudan yazmanız ile neredeyse aynı zamanı alacak. Ancak zaten birim testleriniz varsa, kodu yazdıktan sonra onları oluşturmak için zaman harcamayacaksınız ve daha sonrası için daha da fazla zaman kazanacaksınız.

Bir birim testi oluşturmak, geliştiricinin ne yapılması gerektiğini gerçekten düşünmesine yardımcı olur. Gereksinimler testlerle sıkı bir şekilde baştan sabitlenmiştir. Çalıştırılabilen kod formunda yazılan bir spesifikasyon konusunda yanlış anlaşılma olamaz.

Ayrıca, çalışırken anında geribildirim de alırsınız. Bir geliştiricinin gerekli işlevi geliştirmesinin tamamlanıp tamamlanmadığı konusunda genelde bir belirsizlik vardır. Olası genişletmeler ve hata durumları da düşünüldüğünde gerekli kapsamın aşılması (scope creep) durumu oluşabilir. Ancak birim testlerimizi önce yazarsak, ne zaman bitirdiğimizi biliriz; tüm birim testleri geçer.

Önce testi geliştirmenin sistem tasarımı için de bir yararı vardır. Genelde bazı yazılım sistemlerinin birim testlerini oluşturmak zordur. Bu sistemlerin genelde önce kodları, sonra testleri yazılır, sıklıkla da tamamen başka bir takım tarafından. Testleri önce yazarak, müşterinize değer katacak her şeyi test etme arzusundan etkilenen bir tasarımınız olacaktır. Tasarımınız daha kolay test edilecek şekilde oluştuğundan, bu isteği yansıtır hale gelecektir.

Test güdümlü yazılım geliştirmenin bir ritmi vardır. Önce elimizdeki sorunun küçük bir görünümü hakkında bir test oluştururuz. Sonra testin geçmesini sağlayacak en basit kodu yazarız. Sonra ikinci bir test oluştururuz. Sonra bu yeni testin de geçmesini sağlayan kodu ekleriz, ama daha fazlasını değil! Üçüncü bir testimiz olana kadar daha fazlasını yazmayız. Geçecek test kalmayıncaya kadar devam ederiz.

Oluşturacağınız kod kısa ve öz olacak, sadece istediğiniz özellikleri sağlayacak. Diğer geliştiriciler testleri inceleyerek bu yeni kodu nasıl kullanacaklarını öğrenecekler. Sonuçları tanımlanmamış girdiler bariz bir şekilde test suitinde yer almayacaklar.

Ayrıca Bakınız

Test Driven Development (TDD)

Last updated