Bu deneyimden bir şeyler öğreneceğiniz tavrına sahip olduğunuz için size yardımcı olur. Yapacağından eminim.
Öğrenmeniz gereken ilk şey , birim test zorunluluğunun ne kadar deneyimli olduğunuzla ilgisi olmamasıdır . En iyi geliştirici de en iyi birim test cihazlarından biri olacak:
Bill Venners: Kitabınızda Refactoring diyorsunuz: " Refactor istiyorsanız, temel ön koşul sağlam testler yapmaktır ." Bu testleriniz yoksa refactor olmamalı anlamına mı geliyor?
Martin Fowler: Bunu, ağsız bir ipte yürümek olarak düşünmelisiniz. Eğer bir ipte yürümekte iyiyseniz ve o kadar yüksek değilse, o zaman deneyebilirsiniz. Ama daha önce hiç ip geçmediyseniz ve Niagara Şelalesi'nin üzerindeyse, muhtemelen iyi bir ağ istersiniz.
Gönderen http://www.artima.com/intv/refactorP.html
Birim testi yapmadan PHP yazıyordum. Sonra, yıllarca Java'da birim testi uyguladıktan sonra, birim testi olmadan PHP'deki tek sayfalardan çok daha karmaşık bir şey üzerinde çalışamayacağımı buldum. Sebep? Verimlilik . Birim testi olmadan, güvenle yeniden düzenleyemedim - bu, A) çok daha fazla yırtıp her şey üzerinde baştan çalışmam veya B) çirkin eski kodla uğraşmam gerektiği anlamına geliyordu .
Teklif verirken test etmek için zamanı hesaba katmanız gerekir mi? Evet . Bunun daha fazla zaman alacağı sezgisel mi görünüyor ? Evet, yine . Muhtemelen, diğer bazı cevapların kabaca tahmin ettiği gibi, birim testleri olmadan % 50-100 daha fazla tahmin etmeniz gerekecektir .
Ancak!...
- Şartname deliklerini daha önce yakalayacak ve ele alacaksınız
- Bu, daha temiz ve daha sağlam bir spesifikasyona sahip olacağınız anlamına gelir
- Spesifikasyon değişikliklerine hızlı ve güvenli bir şekilde yanıt verebileceksiniz
- Daha az hatanız olacak
- Hatalarınız daha erken yakalanacak ve düzeltilmesi daha kolay olacaktır
Sonuç olarak, tahminleriniz daha doğru olacaktır . Saatlik ücret alırsanız, müşterilerinizi daha fazla etkileyecek ve ücretlerinizi artırabileceksiniz. Sabit ücret alırsanız saatte daha fazla para kazanırsınız.
Test yapılmadan, tahminleriniz büyük olasılıkla bir crapshoot'tur. Hatalar, değişiklik emirleri ve yeniden tanımlamalar doğru tahmin için korkunç. Test, üçünün de etkisini en aza indirmenin anahtarıdır!