Yazılımcı olarak çalıştığım projelerde geleneksel ve çevik yazılım süreçleri hakkında tecrübe edinme firsatı buldum. En son kitabım bir çevik süreç olan Extreme Programming hakkındadır. Edindiğim tecrübeler doğrultusunda çevik süreçlerin, klasik yazılım süreçlerine nazaran bakımı ve geliştirilmesi daha kolay yazılım sistemlerinin oluşturulmasında daha avantajlı olduğunu söyleyebilirim.
Bu yazımda sizelere test güdümlü yazılım sürecinin, yazılım tasarımı üzerindeki etkilerini bir örnek üzerinde aktarmak istiyorum. TDD ile birlikte oluşan tasarım, kendiliğinden oluşan birşey değildir. Testler şekil aldıkça, oluşturmak istediğimiz tasarımın modeli de gözümüzde canlanmaya başlar. Oluşturduğumuz testler, programın gelecekteki kullanıcılarını (client) simule ettiği için, programın nasıl kullanılacağını testler bünyesinde gözlemlemek kolaylaşmaktadır. Bu süreç, sınıfların ve metotların kullanıcı gözüyle (client) tasarlanmasını sağlar. Bu sayede basit ve kullanışlı API (Application Programming Interface)’ler oluşur. Test güdümlü yazılım tasarımı devamlı zorlar ve yetersiz kaldığı yerlerde refactoring yöntemleriyle yenilenmesini sağlar. Bu süreç sayesinde kendisini devamlı yenileyen ve yeni gereksinimlere cevap veren bir tasarım oluşur.
Bu yazıyı PDF olarak edinebilirsiniz.
Test Güdümlü Yazılımın Tasarım Üzerindeki Etkileri (183,5 KiB, 7.208 yükleme)
EOF (End of Fun)
Özcan Acar
Extreme Programming / Agile kategorisinden son yazılar
- Çevik Süreçler Neden Dikiş Tutturamadı - February 14th, 2020
- Yazılım Dünyasının Hızlı Çözüm Üretmek İle Olan İmtihanı - October 4th, 2019
- Alan Borcu (Domain Debt) - January 29th, 2019
- Yeni kitabım Pratik Agile - May 1st, 2014
- Agile Türleri - January 3rd, 2014
- Yazılımda Çeviklik İflas mı Etti? - August 9th, 2012
- Çevikliğin Böylesi - April 5th, 2012
- Extreme Programming Hakkında Bazı Soru ve Cevapları - March 3rd, 2009
- Neden sürekli entegre edilmeli? - March 3rd, 2009
- Çevik Sürece Geciş Nasıl Olmalı? - February 13th, 2009
mustafa
02 Şubat 2012Test driven konusuna yeni başlamış biri olarak bunları sormadan geçemedim. Örneğin NHibernet ile veritabanına bağlı Test Driven bir proje geliştirmeye karar verdiğinizde nereden ve nasıl başlanmalıdır? Yani önce veritabanı oluşturup sonra testleri mi yazmalıyız, ki NHibernate tarzı ORM araçları veritabanını zaten kendi oluşturabilmekte.