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
Yazılım Hakkında Genel Düşünceler kategorisinden son yazılar
- Sekiz Milyar Değişik İşletim Sistemi - July 23rd, 2022
- Gitflow ve Verdiği Zararlar - October 8th, 2021
- Çevik Süreçler Neden Dikiş Tutturamadı - February 14th, 2020
- Bilginin Evrimi - October 29th, 2019
- Yazılım Dünyasının Hızlı Çözüm Üretmek İle Olan İmtihanı - October 4th, 2019
- Yazılım Camiasından Son Gelişmeler ve Gidişat - April 30th, 2019
- Alan Borcu (Domain Debt) - January 29th, 2019
- Neden Debug Yapmak Yazılımın En Kötü Alışkanlıklarından Birisidir - March 20th, 2018
- Yeni Teknolojileri Öğrenme Konusunda Nasıl Bir Yol Haritası Oluşturmalıyım? - August 4th, 2017
- Neden Programcılık Harici İşlerle Uğraşmak Daha İyi Bir Programcı Olmayı Sağlar - June 4th, 2017
Suat ATAN
18 Eylül 2012Merhabalar Ü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?
Özcan Acar
18 Eylül 2012Unit 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.
Pingback: Test Driven Development (Test Gudumlu Gelistirme) « Dubluve.net
Uğur Aldanmaz
27 Eylül 2012Merhaba,
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.