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

Kas 26th, 2008 | Yazar: Özcan Acar | Kategori: Extreme Programming, Test Driven Development

 

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, 7.314 yükleme)

Share Button

Özcan Acar

Bilgisayar mühendisi olan Özcan Acar 1997 yılından beri programcı olarak çalışıyor.

KurumsalJava.com, SmartHomeProgrammer.com ve Mikrodevre.com adresleri altında blog yazıyor. Kurduğu BTSoru.com'da ona yazılımla ile ilgili sorularınızı yöneltebilirsiniz. Pratik Programcı Yayınları bünyesinde Pratik Spring, Pratik Agile, Pratik Git ve Design Patterns ismini taşıyan kitapları bulunmaktadır. 21.12.2009 tarihinde Java Champion olarak seçildi.
  • Share/Bookmark
9 yorum | 8.447 kez okundu |

1 Yıldız2 Yıldız3 Yıldız4 Yıldız5 Yıldız (2 değerlendirme, ortalama: 5, toplam oy 5)
Loading ... Loading ...
Tags: , ,

9 YORUM “Test Güdümlü Yazılım – Test Driven Development (TDD)”

  1. Cagatay Civici diyor ki:

    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

  2. Yasin diyor ki:

    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.

  3. acar diyor ki:

    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.

  4. Cenk Çivici diyor ki:

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

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

  5. […] komponentlerini tamamen test güdümlü (TDD – Test Driven Development) geliştiriyorum. EJB komponentleri POJO sınıfları olduklarından test güdümlü […]

  6. […] bakımı ve geliştirilmesi kolay yazılım sistemleri oluşturmak mümkündür. En verimli hali test güdümlü yazılım ile […]

  7. […] dikkatini çekebileceği hakkında düşünmelidir. Örneğin kendisine verilen görevi test güdümlü kodlayıp, elde ettiği yüksek seviyedeki testlerin kod kapsama alanı metriğini e-posta listesi […]

  8. […] Thomas kısa olarak Test Driven Development ‘dan bahsediyor. Dave kodun temiz olmasını testlerin yapılmasına bağlıyor. Testi […]

BU YAZI İÇİN BİR YORUM YAPABİLİRSİNİZ.