Bir iş akışı olarak tanımladığınız şey bence TDD Ruhu değil .
Kent Becks'in Amazon'daki kitabının özeti şöyle diyor:
Basitçe, test odaklı geliştirme uygulama geliştirmedeki korkuyu ortadan kaldırmak içindir.Bazı korkular sağlıklı olmakla birlikte (genellikle programcılara "dikkatli olmalarını söyleyen bir vicdan olarak görülür"), yazar korkunun yan ürünlerinin yapıcı eleştiriyi ememeyen geçici, huysuz ve iletişimsiz programcıları içerdiğine inanmaktadır. Programlama ekipleri TDD'ye girdiğinde hemen olumlu sonuçlar alırlar. İşleriyle ilgili korkuyu ortadan kaldırırlar ve kendileriyle karşılaştıkları zor zorluklarla başa çıkmak için daha donanımlıdırlar. TDD geçici özellikleri ortadan kaldırır, programcılara iletişim kurmayı öğretir ve ekip üyelerini eleştiri aramaya teşvik eder. Kısacası, TDD'nin arkasındaki öneri, kodun sürekli olarak test edilmesi ve yeniden düzenlenmesi gerektiğidir.
Pratik TDD
Resmi otomatik Testler, özellikle Birim Testler her sınıftaki her yöntemin test edilmesi bir anti-model kadar kötüdür ve hiçbir şeyi test etmemektedir. Olması gereken bir denge var. Her setXXX/getXXX
yöntem için birim testleri mi yazıyorsunuz , bunlar da yöntem!
Ayrıca Testler zamandan ve paradan tasarruf etmenize yardımcı olabilir, ancak geliştirilmeleri için zaman ve paraya mal olduklarını ve kod olduklarını unutmayın, bu nedenle bakımı için zaman ve paraya mal olurlar. Bakım eksikliğinden atrofi yaparlarsa, faydadan çok bir yükümlülük haline gelirler.
Bunun gibi her şey gibi, kendinizden başka kimsenin tanımlayamadığı bir denge vardır. Herhangi bir dogma her iki durumda da muhtemelen doğru daha yanlıştır.
İyi bir metrik, iş mantığı için kritik olan ve değişen gereksinimlere göre sık sık değiştirilen bir koddur. Bu şeyler, otomatikleştirilmiş, büyük bir yatırım getirisi olacak resmi testlere ihtiyaç duyar.
Bu şekilde çalışan birçok profesyonel dükkan bulmak için çok zorlanacaksınız. Basit bir duman testi yapıldıktan sonra tüm pratik amaçlar için asla değişmeyecek şeyleri test etmek için para harcamak iş mantıklı değildir. .getXXX/.setXXX
Yöntemler için resmi otomatik birim testleri yazmak , bunun tam bir zaman örneğidir.
Program testinin ikna edici bir şekilde hataların varlığını gösterebileceğine, ancak hiçbir zaman yokluklarını gösteremeyeceğine dikkat çekildiğinden beri yirmi yıldır. Bu iyi duyurulmuş sözleri dindar bir şekilde dile getirdikten sonra, yazılım mühendisi günün düzenine geri döner ve chrysocosmic saflaştırmayı geliştirmeye devam eden yury simyacısı gibi test stratejilerini geliştirmeye devam eder.
- Edsger W. Djikstra . (1988'de yazılmıştır, bu yüzden 4.5 yıla daha yakındır.)
Ayrıca bu cevaba bakınız .