Test Odaklı Geliştirme, program özelliklerini tanımlamak için testler yazmakla ilgilidir
Özelliklerini test açıklamaları, kullanıcı hikayelerini tanımlamak için testler yazmayın ve özellik açıklamaları vardır 'ölü ağaçların anlamda, şartname.
Gözden geçirmek için, kısaca TDD süreci:
- bir projeyi özellikler açısından tanımlamak
- kullanıcı hikayelerini kullanarak her bir özelliğin paydaşını, davranışını ve hedefini tanımlayın
- test açıklamalarını kullanarak bir kullanıcı hikayesiyle ilişkili beklenen öğeleri, tetikleyici olayları / koşulları ve davranışları / sonuçları belirtin [ve bu 'spesifikasyonu' tamamlar]
- her bir yineleme için bir dizi özellik seçin; yinelemeler kısa olmalıdır [kısalık için planlama ve tahmin adımlarını atlıyorum]
- bir özellik için bir testi kodlayın (başarısız olur, ancak testi kodlamak için API kararları vermeniz gerekir)
- testin geçebilmesi için yeterli özelliği uygulayın
- gerekirse kodu yeniden düzenleyin
- özellik tamamlanana kadar bir sonraki testle tekrarlayın
- yineleme tamamlanana kadar bir sonraki özellik ile tekrarlayın
- proje tamamlanana kadar bir sonraki yineleme ile tekrarlayın
ne kadar tasarım, mimari, destekleyici belgeler, vb. yapmayı seçtiğiniz TDD'nin bir parçası değildir. Okuyabileceğiniz bazı pratik 'en iyi uygulamalar' vardır, ancak bunların sizin değil başka birinin atölyesinde 'en iyi' uygulamalar olduğunu unutmayın .
nokta müşteri ve geliştirici karşılıklı anlayış için , özellikleri gelip hikayeler ve test açıklamaları birlikte yazmak için olduğunu unutmayın
yani, bununla birlikte, asıl soru şuydu:
TDD'de bir yazılım mimarının rolü nedir?
Ve kısa cevap:
Her zamanki gibi, her zamanki gibi. --David Byrne
DÜZENLEME: Uzun cevap: mimar gerektiğinde tüm süreç boyunca olağan vizyoner / araştırmacı / tahriş edici / destek / backstop rolleri oynar.
EDIT 2: üzgünüm alt soruların noktasını özledim! Şartnamelerin yazılmasından herkes sorumludur; uygun olduğunda / uygun olduğunda mimar dahil tüm geliştiriciler artı müşteri . Geliştiriciler ayrıca testleri kodlar.