TDD'yi öğrenmek için en iyi kaynaklar nelerdir? [kapalı]


27

TDD'yi öğrenmek (ve ustalaşmak) istiyorum. En iyisi nedir:

  • kitaplar
  • web siteleri
  • videolar
  • egzersiz listesi
  • bilgelik kişisel sözler

TDD'yi öğrenmek, takdir etmek ve kullanmak için mi?



9
Bu soruyu beğendim. Bunu burada sormamanız gerekiyorsa, kitap önerileri programlama hakkında nerede soru sorabilirsiniz?
guettli

Yanıtlar:


18

Şahsen ben, JUnit yazısını ya da iki tanesini okumanın, "sınava girmeden önce testi yazdığını" vurgulamak için başladığımı vurguladım.

Bu teknolojiyi öğrenmenin en önemli kısmı, çok sayıda test tabanlı kod yazmaktır , çünkü kod yazmayı düşündüğünüz en temel yöntemlerden bazılarını değiştirmeniz gerekir. Gibi şeyler:

  • Testi koddan önce yazmak, kodunuzu nasıl başlatacağınızı ve sonucu nasıl geri alacağınızı düşünmenizi sağlar. Bu, ilk önce API'yı nasıl kullanacağınıza bağlı olarak tasarladığınız anlamına gelir . Bu genellikle daha iyi bir API ile sonuçlanır.
  • Kodlama stiliniz değişecektir çünkü daha modüler düşünmeniz, her şeyin yerine kodun bölümlerini test edebilmeniz GEREKİR.
  • Ayrıca testiniz başarılı olduğu için büyük bir parçadan güvenle çıkıp, aynı davranış yerine yeni bir parça yerleştirebileceğiniz bir noktaya geleceksiniz. Son zamanlarda, orjinali çok yumuşak olduğu için tarih ayrıştırma kütüphanesiyle yaptım.

Küçükten başlamak için en iyi yer, yardımcı program rutinlerinizledir. Bir dahaki sefere ihtiyacınız varsa, sadece ilk önce testlerle tasarlayın, tüm resmi kullanım haklarınızı kapsayan çok sayıda test yazın (boş değerlerin geçmesiyle birlikte olanlar da dahil olmak üzere) ve tüm kullanım durumları uygulandığında kullanabilmelisiniz. doğrudan kodunuzda ve beklendiği gibi çalıştığından emin olun.

Aynı zamanda benim için iyi testler dokümantasyon olarak ek işler yapabilir, çünkü kodun çeşitli durumlarda tam olarak nasıl davrandığını, kolayca doğru olduğu kanıtlanabilen çok sayıda kodunuz var (yeşil çubuk). Dikkatli yorumlarınızla bundan daha iyisini elde edemezsiniz.

Java jUnit sürüm 4 için gerçekten çok güzel.


8

Benim düşünceme göre, TDD kodları test edilebilir kılmakla ilgili testler yapmaktan daha fazlasıdır.

Kodlamadan önce bir test yazabildiğinizden emin olun, ancak testin yazılmasının tek nedeni kod yazabilmenizdir - bu da sizi test etmesi zor olan bir kod yazmaktan alıkoyamaz.

Ne demek istediğimi daha iyi anlayabilmek için şuna bir bakın: Birleşmiş Hatalar Teorim

Konsepte ilgi duyuyorsanız ve daha fazla bilgi edinmek istiyorsanız, yorum yapın - ve sizi Google’dan konuyla ilgili kaydedilmiş bir sunum yönünde işaret edeceğim.

GÜNCELLEŞTİRME:

Temiz, Test Edilebilir Kod Nasıl Yazılır?

Miško Hevery Sunuyor ( GoogleTechTalks Tarafından ) NYC’de Google’da ve Google’ın Mühendislik Verimliliği grubu sponsorluğunda


Devam edin ve Google sunum bağlantısını ekleyin. Bence Eric'in temsilcisi henüz yorum yapmaya izin vermiyor.
ocodo

+1 @Slomojo: Doğru, öyleyse soruyu oyla ... eğer doğru hatırlıyorsam, onu 15-rep'in üstüne itmek. Videoyu arayacağım.
gaf

1
@blunders ... Onu 11'e getirdim!
ocodo

+1 @Slomojo: Oylama için, cevabımdaki Google Tech Talk bağlantısını buldu ve ekledi. Şerefe!
gaflar

8

Bahsedilen bazı kitapların yanı sıra, Testler Rehberliğinde Büyüyen Nesne Yönelimli Yazılımlar Büyümeyi önerebilirim . Henüz okumayı bitirmedim, ancak basitleştirilmiş kod örnekleri değil, gerçekçi bir TDD projesinin hikayesi de dahil olmak üzere değerli bir okuma.


Bu benim en sevdiğim kitap ve en çok çalışma şeklimi etkileyen kitaptan biriyim, sadece TDD ile değil, genel olarak Software Dev ile de ilgili. Ayrıca, birçok TDD kitabı okumadığımı itiraf etmeliyim ki, belki de bana o kadar güvenme.
antonio.fornie

4

İki kitap okudum:

Test Odaklı Gelişme: Kent Beck ve

Paul Hamil'in Birim Test Çerçeveleri

Beck kitabı iyi kabul edildi, ancak "Birim Test Çerçeveleri" ni okuyana kadar birim testine başlamadım. Bazı TDD'ler yapıyorum, ancak daha önce koyabileceğim (koyabildiğimde) eski koda da test ekliyorum.

Düzenleme: Ayrıca, bir kez ele aldığınızda, derhal geçerli bir projede kullanmanızı öneririm. Benim için gerçek öğrenme gerçekleştiği zaman ve bence "Unit Test Framework" kitabı bu amaç için daha iyi bir referans kitabıydı. (C # ile nunit kullanıyordum).


4

Öncelikle TDD ile ilgili olmasa da (test edilebilirlik için tasarımın yanı sıra üzerine dokunsa da), Ünite Testi Sanatı tavsiye ederim çünkü size iyi testler yazmayı öğretiyor.

Daha spesifik olarak, güvenilir, sürdürülebilir ve okunabilir testlerin nasıl oluşturulacağını öğretir. Bence bu, kitabın en önemli bölümü, belki de ünite testi ve izolasyon çerçevelerinin temelleri dışında. Birim testleri bir ağrı noktası haline gelirse veya bir geliştiricinin işine sürtünme eklerse, bunlardan elde edilen başarı veya faydaların sınırlı olacağı açıktır. Bir kişi testleri oluşturmak için zaman ve çaba harcarsa, o zaman bu yatırımdan en iyi şekilde faydalanabilmelidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.