27 Eylül 2012 Perşembe

Test Driven Development (Test Gudumlu Gelistirme)

test güdümlü geliştirmeSon birkaç gün içerisinde Test güdümlü geliştirme ile tanıştım. Daha önce bu kavramı duymuş olmama rağmen bir türlü araştırma fırsatım olmamıştı. Nihayet araştırma fırsatım oldu ve bu metodolojiyi gerçekten çok sevdim. Test Güdümlü Geliştirme dendiğinde bir yazılımcı olarak bana ilk başta garip gelen "Önce test sonra kod yazma" kavramıyla tanıştım. İlk duyduğunuzda size zaman kaybı gibi gelebilir nitekim bana da öyle gelmişti ve bu konuyla ilgili internette çok değerli yazılımcılar tarafından yazılmış çeşitli makaleler okudum. Bütün yazılan yazılardaki ana fikir test güdümlü geliştirmenin kesinlikle zaman kaybı olmadığı ve uzun vadede kodumuzda herhangi bir değişiklik yapacağımız zaman size inanılmaz derecede zaman kazandıracağı yönündeydi. Test güdümlü geliştirme yaparken her bir sınıfımız için ayrı ayrı public metodları test eden unit testler yazarız ve kodlarımız düzgün çalışıyorsa bütün unit testlerden başarıyla geçecektir. Uzun bir zaman sonra kodumuz üzerinde değişiklikler yapmamız gerektiğinde, yazılımcılar olarak kendi yazdığımız koda karşı bile yabancılık çekeriz. Durum böyle olunca yapacağımız değişiklikler sistemde daha sonra nedenini saatlerce araştıracağımız hatalara yol açabilir. Unit testlerimiz sayesinde böyle bir durumun önüne geçmemiz mümkündür. Kodumuzda herhangi bir değişiklik yaptığımızda unit testlerimizi çalıştırırız ve eğer herhangi bir şeyi bozmuşsak anında bunu tespit etme ve düzeltme şansımız olur. Böylece saatlerimizi kodumuzu debug etmekle geçirmez ve daha mutlu bir yazılımcı oluruz. Yazılım alanındaki en büyük ustalardan birisi olan Martin Fowler'in bu konuyla ilgili söylediği bir söz çok önemlidir.   "Herhangi bir şeyi debug etmeye kalktığınızda bunun yerine test yazınız" Türkiye'deki önemli yazılımcılardan biri olan Özcan Acar'ın yazdığı "Veresiye Satan Yazılımcı" isimli yazısında test yazan yazılımcı ile test yazmayan yazılımcı arasındaki farkların çok güzel bir şekilde anlatıldığını düşünüyorum. Yazıyı okumanızı kesinlikle tavsiye ediyorum. Test yazmanın önemini az çok anladık peki neden testlerimi kodumdan önce yazmalıyım? Testlerinizi kodunuzdan önce yazmanız aslında kodunuzu daha iyi kurgulamanız açısından önemlidir. Siz daha ortada bir kod yokken onun testini yazabiliyorsanız yapacağınız şeyi kafanızda gerçek anlamda kurgulayabilmişsinizdir demektir. Hangi metodun hangi değeri alacağını buna karşılık hangi değeri döndüreceğini veya hangi işi yapacağına karar vermeden testlerinizi yazamazsınız. Bu nedenle kod yazmaya başlamadan önce kodunuzu en ince ayrıntısına kadar planlayıp, daha sonra trestlerinizi ona göre hazırlayıp nihayetinde kod yazmaya başlarsınız. Böylece kodlarınızı çok daha sağlam bir şekilde yazmış olursunuz. Yakında test güdümlü geliştirmeyle ilgili birkaç teknik örnek vereceğim yazılar eklemeyi planlıyorum. Bu konudaki çalışmalarım devam etmektedir. Devamı için : Test Driven Development (Test Gudumlu Gelistirme)

Hiç yorum yok:

Yorum Gönder

Yorumunuzu esirgemeyiniz..