Editörü açtınız, public class yazarak yeni bir sınıf oluşturdunuz. Bu sınıfa yeni bir metot eklediniz. Başka bir şey yapan yeni bir metot daha eklediniz. Sınıf yavaş yavaş şismeye başladı. Birkaç refactoring yaptınız. Buradan yeni bir sınıf dünyaya gözlerini açtı. Bir sınıf, bir sınıf daha derken sınıf sayısı onlara ulaştı. Her sınıfın metot küfesi iyice ağırlaşmaya başladı. Göz açıp, kapayana kadar birkaç bin satır kod oluştu. Program istediğiniz şekilde çalışıyor sanırım. Yaptığınız işten memnunsunuz, ama içinizden bir ses bir şeylerin doğru gitmediğini söylüyor. Eksik olan ne? Testler!
Yazılımcı neden test yazmaz? Sıralayalım:
- Uygulamayı test etme konseptlerinden bihaberdir.
- Test etmeyi gerekli ve işinin bir parçası olarak görmez.
- Test etmeyi angarya ya da zaman kaybı olarak görür.
- Geliştirdiği uygulamanın test edilemez olduğunu düşünür.
- Test etmek için zamanı yoktur.
- Daha sonra test yazarım diyerek kendini avutur.
- Testlerin yazılımcı olmayan şahıslar tarafından yazılmasını sağlamak için lobi çalışması yapar.
- Testlerin devamlı bakıma ihtiyacı olduğunu ve bu yüzden verimli olmanın önünde engel olduklarını düşünür.
Bir yazılımcının görevi nedir? Sıralayalım:
- Altına tereddüt etmeden ismini yazıp, imzalayacağı, çalışır, hatasız ve kaliteli bir sürüm ortaya koymak.
- ve daha birçok başka şey.
Yazılımcı test yazmadığı zaman ne olur? Sıralayalım:
- Devamlı oluşan hatalarla boğuşur.
- Kodu yeniden yapılandırma cesaretine hiçbir zaman sahip olamaz.
- Yeni müşteri gereksinimlerini kodlamakta zorlanır, çünkü yeniden yapılandırılamayan kodun değiştirilmesi güçtür.
- Sürüm çıkardıktan sonra birkaç gece uyuyamaz.
- Hataları gidermek için fazla mesai yapmak zorunda kalır.
- Uygulamanın her yeni sürümü ile hata sayısı çoğalır, kod kalitesi düşer.
- Yaptığı işten zevk almamaya başlar.
- İşini tam olarak yapmadığını bildiği için vicdan azabı çeker.
Veresiye satan tüccar ile peşin satan tüccarın hikayesini bilirsiniz. Veresiye satanın sonu malumdur. İşi başından sıkı tutmadığı için batma aşamasına gelir. Test yazmayan programcının da durumu aynıdır. Projenin geleceğini veresiye dağıtır.
Siz veresiye mi satıyorsunuz, peşin mi?
EOF (End Of Fun)
Özcan Acar
Merhabalar Üstadımız;
Bu test yapma hakkında bugüne kadar okuduklarımı toplayınca şu sonuç çıkıyor:
Test farzdır. Peki nasıl yapılacak? Nette gördüğümüz tutorialler kesmiyor.
Öneriniz nedir?
Unit test konseptlerini iyi kavramak gerekiyor. Java’da bu JUnit ile uygulaniyor. Gercek anlamda unit testlerin nasil gelistirildigini kavradiktan sonra, entegrasyon ve onay/kabul testlerinin yazilmasi daha kolay.
Geri izleme: Test Driven Development (Test Gudumlu Gelistirme) « Dubluve.net
Merhaba,
Blogunuzu bir kaç haftadır arada ziyaret ediyorum. Google Reader listeme de ekledim.
Gördüğüm kadarıyla test konusu üzerine deneyimlisiniz.
Buna istinaden yalnızca bir bildiğiniz vardır diyerek sormak istiyorum ki, burada test yazması gerektiğini kast ettiğiniz yazılımcı kimdir?
Ürünü geliştiren developer mı yoksa ürünün geliştirilmesinde rol almamış olan test developer mı?
Çünkü kodu yazan, geliştiren kişinin gerçekleştirdiği test sağlıklı olmaz. kısaca kodu yazan kişi testi yapamaz diye biliyorum.