Test Güdümlü Yazılım – Test Driven Development (TDD)

 

Günümüzde kurumsal projelerin büyük bir bölümü geleneksel yazılım  metotları ile gerçekleştirilmektedir. Müşteri gereksinimleri en son detayına kadar kağıda döküldükten sonra, programcılar dokumente edilen gereksinimler doğrultusunda yazılımı gerçekleştirmektedirler. Eğer proje bütçesi yeterli ise, yazılım süreci sona erdikten sonra testler hazırlanarak, yazılım sistemi test edilmektedir. çoğu zaman hiçbir unit testin yapılmadığı sistemlerin firmalar tarafından kritik iş alanlarında kullanıldığını görmek mümkündür. Bu tür yazılım sistemlerinde oluşan hatalar (Bug)  firmanın sunduğu hizmetleri kısıtlamakta ve en kötü ihtimalle firmanın para kaybetmesine sebep olmaktadır.

Geleneksel tarzda oluşturulan yazılım sistemlerinde oluşan hataları gidermek çok pahalıya mal olabilmektedir, çünkü yazılım bittikten sonra tespit edilen hatalar yazılım sistemindeki tasarım açıklarını gözler önüne serebilir ve bu gibi kardinal hataların ortadan kaldırılması ya imkansız yada çok zor olabilir. Bunun yanı sıra yazılım sona erdikten sonra oluşturulan testlerin test kapsama alanı geniş olmadığı için kodun bazı bölümleri test edilememekte ve böylece hata tespiti zorlaşmaktadır. Bu şekilde yazılım esnasında ortaya çıkmayan hatalar, daha sonra sistem kullanıcıları tarafından keşfedilmektedirler. Bu aşamada geç kalınmıştır: ya sistem çalışmaz durumdadır, yada sistem kullanıcısı istediği işlemi doğru olarak gerçekleştirememiştir. Durumu kısaca şöyle özetleyebiliriz: “yazılım sistemi müşterinin gereksinimlerini tatmin edecek kaliteye sahip değildir”.

Ne yazık ki birçok firma için kullandıkları yazılım sistemlerindeki kalite problemleri firmaya zarar verici durumdadır. Bu kalite problemleri bir taraftan oluşan sistem hataları, diğer taraftan kodun bakımı ve geliştirilmesinin zor olmasından kaynaklanmaktadır. Oluşan sistem hataları  firmanın giderlerini artırmakta ve yazılım sisteminin istikrarsız ve güvenilmez olmasına sebep vermektedir. Bu sorunların temelinde test konseptlerinin bir yazılım sistemi için hayat sigortası olduğunun anlaşılamamış olması yatmaktadır.
 

Bu yazıyı PDF olarak edinebilirsiniz.

  Test Güdümlü Yazılım - Test Driven Development (TDD) (416,9 KiB, 9.556 yükleme)

Share Button
0.00 avg. rating (0% score) - 0 votes

9 Comments

  • Cagatay Civici

    26 Kasım 2008

    Türkiye dede TDD ve Agile konularının en sonunda konuşulmaya başlaması oldukça güzel. TDD’nin asıl yararı test yazıldığı zaman değil yazılımda bir değişiklik olduğu zaman ortaya çıkıyor. Yaptığınız değişiklikten sonra tüm testleri çalıştırıp yeşil sinyali aldıktan sonra güvenle değişikliği checkin edebiliyorsunuz. En başta testi yazarken harcayacağınız birkaç dakikalık ekstra efor sizi bir süre sonra ortaya çıkabilecek hata üzerinde harcamanız gereken olası saatlerden günlerden koruyor. Zaten bu mantığı bir kere anladığınız zaman testsiz bir kod yazdığınızda işinizi yarım yaptığınızı farkediyorsunuz.

    Bu arada Prime Teknoloji 22-23-24 Aralık tarihlerinde İstanbul da TDD eğitimi düzenliyor.
    http://www.prime.com.tr/agile/tdd_primearalikegitimi.pdf

  • Yasin

    26 Kasım 2008

    Yine teşekkürler :)
    “Agile” kavramını da Türkçe basitçe anlatan, en azından hiç bilmeyen birine bir fikir verebilecek ölçüde anlatımlar da yapabilir misiniz?
    Bir de; bu sitede Java’dan bahsediyorsunuz, kurumsal tarafını ele alıyorsunuz, peki bu konuda Microsoft ürünlerinin karşılaştırması da yapılabiliyor mu? Türkiye’de bu eksende daha çok neler kullanılıyor, hangi yazılımlar, hangi frameworkler daha popüler ya da tercih ediliyor, neden tercih ediliyor, bu gibi şeyler hakkında da bilgi verebilirseniz güzel olur bence.

  • acar

    26 Kasım 2008

    Agile – Çeviklik konusunu anlatan yazılarım ilerde olacak.

    >Bir de; bu sitede Java’dan bahsediyorsunuz, kurumsal tarafını ele alıyorsunuz, peki bu konuda Microsoft ürünlerinin karşılaştırması da yapılabiliyor mu?

    KurumsalJava.com Java teknolojilerine kurumsal gereksinimler perspektifinden bakmaya çalışıyor. Bu yüzden burada yeralan yazıların çoğu doğal olarak Java ile dolaylı ya ya dolaysız ilişkili. Ben Microsoft ürünleri ile kurumsal yazılım hakkında tecrübe sahibi olmadığım için, bu konuyu Microsoft ürünleri hakkında bilgili arkadaşlara bırakmayı tercih ederim :) Belki bir arkadaşımız ilerde KurumsalMicrosoft.com isminde bir platform oluşturabilir ve bu konuda bizi bilgilendirebilir.

  • Cenk Çivici

    26 Kasım 2008

    Agile ile ilgili hazırladığım Türkçe bir yazı.

    http://www.prime.com.tr/agile/agile_primeteknoloji.pdf

  • Pingback: Kreditwerk Wohnrente Projesi - Kurumsal Java Yazılımı

  • Pingback: SOLID - Kurumsal Java Yazılımı

  • Pingback: Battı Balık Yan Gider - Kurumsal Java Yazılımı - Özcan Acar

  • Pingback: Her Programcı Kendisini İspatlamak Zorundadır - Kurumsal Java Yazılımı - Özcan Acar

  • Pingback: Clean Code (Temiz Kod) nasıl yazılır?

Bir cevap yazın