Küçük bir şirkette solo geliştirici olarak çalışıyorum. Aslında şirketteki tek geliştiriciyim. Düzenli olarak yazıp sürdürdüğüm birkaç (nispeten) büyük projem var ve bunların hiçbirinin onları destekleyecek testleri yok. Yeni projelere başladığımda, TDD yaklaşımını denemem gerekip gerekmediğini sık sık merak ediyorum. Kulağa iyi bir fikir gibi geliyor, ama dürüst olmak gerekirse, söz konusu ek işi asla haklı çıkaramam.
Tasarımımda ileriyi düşünmek için çok çalışıyorum. Kesinlikle bir gün başka bir geliştiricinin kodumu sürdürmesi veya en azından sorunu gidermesi gerektiğinin farkındayım. İşleri olabildiğince basit tutuyorum ve kavraması zor olan şeyleri yorumluyorum ve belgeliyorum. Gerçek şu ki, bu projeler o kadar büyük ya da karmaşık değil ki, iyi bir geliştirici onları anlamak için mücadele edecek.
Testlerde gördüğüm örneklerin çoğu, kodun tüm yönlerini kapsayan, minutiye iniyor. Tek geliştirici olduğumdan ve tüm projedeki koda çok yaklaştığım için, elle yazıp test test desenini takip etmek çok daha verimli. Ayrıca, testlerin sürdürülmesinin bir projeye kayda değer miktarda sürüklenme katacağı kadar, gereksinimlerin ve özelliklerin yeterince sık değiştiğini de tespit ediyorum. İş ihtiyaçlarını çözmek için harcanabilecek zaman.
Böylece her seferinde aynı sonuca varıyorum. Yatırım getirisi çok düşük.
Bir algoritmayı doğru bir şekilde yazdığımdan emin olmak için ara sıra birkaç test kurdum, örneğin işe alım tarihine göre birisinin şirkette bulunduğu yıl sayısını hesaplamak gibi. Ancak kod kapsamı açısından kodumun yaklaşık% 1'ini karşıladım.
Benim durumumda, birim testini düzenli bir uygulama yapmanın bir yolunu bulmaya devam eder misiniz, yoksa bu genel giderden kaçınmakta haklı mıyım?
GÜNCELLEME: Durumumla ilgili bıraktığım birkaç şey: Projelerimin hepsi web uygulamaları. Tüm kodlarımı kapsayacak şekilde, otomatik UI testleri kullanmak zorunda kalacağım ve bu, manuel testlerden daha fazla fayda göremediğim bir alan.