Ana içeriğe atla

Test Driven Development Yazılım Geliştirme Prensibi

Uygulamanızda son karşılaştığınız büyük bir problemi düşünün.
Bu problemi çözmek için ve sorunun kaynağını bulmak için ne kadar zaman harcadınız?
Karşılaştığınız problem türleri ile sürekli karşılaşıyor musunuz?
Yazılım ekibiniz değişirse oluşabilecek hataları çözebilecek yeni ekibi projeye entegre etmek ne kadarlık süre alır ve bu sürede proje devamlılığını nasıl sağlamayı düşünüyorsunuz?
....
Bu sorulara siz kendi durumunuza göre sorular ekleyebilirsiniz. Hatta bu soruları kendinize sormak projeleriniz sürdürülebilirliği için de önemlidir.

Test Driven Development mantığı projelerde uygulandığında geliştirme sürecinin çok daha efektif ilerlediğini, aynı zamanda karşılaşabileceğiniz hataların çözümü için aksiyon alma hızını arttırdığını fark edeceksiniz. Tabi ki bu gibi sorunların tek çözümü Test Driven Development mantığını benimsemek ve bu şekilde kod geliştirmek değil. Özellikle büyük projelerde uygulamaların bir çok yazılım prensiplerini, özellikle SOLID, Yangi, Dry, Reuse Release Equivalence, Common Closure, Travel Light ve başka benimsenmesi ve doğru uygulanması önemlidir.

Bu makale Test Driven Development konusunu ayrıntılı olarak detaylarıyla ve uygulamalı olarak "best practice"leri ile anlatmak için hazırlanmıştır. Test Driven Development söz konusu olduğunda hangi programlama dili kullandığınızın da önemi yoktur. Çünkü Test Driven Development size bir kod geliştirme mantığı sunar ve siz tüm Unit test yazılan programlama dillerine bu mekanizmayı uygulayabilirsiniz.

Özellikle test ekibi olamayan yazılım ekiplerinin Test Driven Development mantığı ile uygulama geliştirme konusuna bir merakı var ve eğitim verdiğim kurum ve şirketlerde de bu konuya merakın gittikçe arttığını gözlemliyorum. Test Driven Development kıcasa TDD olarak isimlendirilir ve aslında klasik test sürecleri Data Testing, Beta Testing, Performance Testing, Stress Testing, Integration Testing, Usability Testing, Regression Testing, Acceptance Testing ve başka test süreçlerinden ayrışarak tamamen Unit Test üzerine odaklanır. Buna rağmen Test Driven Development mantığında amaç Unit test yazmak değil. Unit testleri kullanarak uygulama geliştirmektir. Bunun için de altyapısında her zaman Red-Green-Refactor mekanizması vardır.

Red-Green-Refactor

Bu kısa giriş Test Driven Development konusunda aklınızdaki soru işaretlerini biraz olsun yanıt bulabilmek içindir. Burada anlamanız gereken anahtar cümle: 
Test Driven Development mantığında amaç Unit Test yazmak değil, "Unit Testleri kullanarak uygulama geliştirmektir".

Yorumlar

Bu blogdaki popüler yayınlar

Medyan (Ortanca) Nedir? Nasıl Hesaplanır? Nerelerde Kullanılır?

Medyan işlemi olasılık hesaplamalarında sıkça kullanılan bir sayı dizisinin ortalamasını hesaplamak için alternatif yöntemlerden bir tanesidir. Ortanca medyan işleminin diğer adıdır. Matematiksel olarak medyan işlemi bir sayı dizisi küçükten büyüğe sıralayarak ortada kalan elemanı medyan değeri olarak belirleme işlemidir. Örnek verecek olursak: 2, 1, 5, 4, 5, 1, 2, 3, 5 serisi sıralanırsa 1, 1, 2, 2, 3, 4, 5, 5, 5 serisi elde edilir. Bu seri 9 elemanlı olduğundan ortadaki, yani 5. eleman (medyan) olacaktır. 5. eleman 3 sayısıdır. Yani ortanca değeri 3'dür Eleman sayısı tek sayı olan bir seride medyan değerin sırasının hesaplaması şu şekilde formüle edilir. Medyanın Sırası = (Eleman Sayısı + 1) / 2 Bu formülü yukarıdaki örneği uygulayacak olursak; Medyanın Sırası = (9 + 1) / 2 = 5 Veri serisi eleman sayısı bir çift sayı ise bu durumda serinin 2 medyanı olacaktır. Örneğin 2, 1, 5, 4, 5, 1, 2, 3, 5, 4 serisi sıralandığında 1, 1, 2, 2, 3, 4, 4, 5, 5, 5 s

Ağaçlar Kireçle veya Badana İle Neden Boyanır?

Ağaçlar kireçle boyanmasının veya badana yapılmasının hem çevreye hem de doğaya, ağaçlara faydası var. Bu makalede bu geleneği enine boyuna tartışmaya çalıştık. Ağaca zarar veren mikrop ve bakterileri öldürür. Ağacı çok aşarı soğuk havalarda ve çok aşırı sıcak havalarda korur. Ağacın çürümesini ve kurtlanmasını önler. Ağacın gövdesinin alabileceği zararları en az düzeyde düşürmeyi sağlar. Hoş, güzel, hijyenik, temiz pırıl pırıl bir görüntü oluşturur. Ayrıca çok sıcak havalarda da ağacı yanmaya karşı korumak. En büyük etkisi soğuk havalarda ağacı don vurmalarına karşı korumak . Küresel ısınma göz önüne alındığında mevsim değişiklikleri ani don, ani ısı artışları ve azalışları sonucunun doğuracağı etkenler için yararlı etkin bir yöntem. Gövdeden obur dalların çıkmasını azaltmak için sürülür. Kireçleme ağaçları güneş yanığından korumak için yapılıyor. Ağaçlar da güneşten yanabiliyorlar. Bu arada odun dokudaki gözenekleri doldurarak kapattığı için, zararlıların yuv

Azərbaycan Dilində Vurğu Qəbul Etmeyen Şekilçiler

Sözlərdə hecalardan birinin digərlərinə nisbətən daha qüvvətli deyilməsinə heca vurğusu deyilir. Üzərinə vurğu düşən hecaya isə vurğulu heca deyilir. Azərbaycan dilində vurğu adətən söz sonuna düşür. Söz şəkilçi qəbul ederkən vurğu adətən şəkilçinin üzərinə keçir. Məsələn: çiç ə k - çiçəkl ə r - çiçəklərd ə n məkt ə b - məktəbl i - məktəblil ə r - məktəblilərd ə n Buna baxmayaraq dilimizdə bir sıra şəkilçilər var ki onlar vurğu qebul etmirlər. Bu məqalədə Azərbaycan dilində vurğu qebul etməyən şəkilçilər incələnəcək ve bu şekilçilərin hansı hallarda vurğu qebul edib hansı hallarda vurğu qebul etmediyi araşdırılacaqdır. Eyni zamanda bildirmək istəyirəm ki vurğu ilə bağlı daha geniş və ətraflı məlumat üçün Azərbaycan Dilində Vurğunun Praktik Məsələləri adlı məqaləyə də nəzər yetirə bilərsiniz.  1. İsimlərdəki şəxs(xəbərlik) şəkilçiləri Məsələn: müəli'məm müəli'msən müəli'mdir müəli'mik müəli'msiniz müəli'mdirlər Qeyd: -dır4