Pengembangan Test-Driven adalah tentang menulis tes untuk menentukan spesifikasi program
Anda tidak menulis tes untuk menentukan spesifikasi, deskripsi tes, cerita pengguna, dan deskripsi fitur adalah spesifikasi, dalam arti 'pohon mati'.
Untuk meninjau, proses TDD secara singkat adalah:
- mendefinisikan proyek dalam hal fitur
- menggambarkan pemangku kepentingan, perilaku, dan tujuan setiap fitur menggunakan cerita pengguna
- tentukan givens yang diharapkan, peristiwa / kondisi pemicu, dan perilaku / hasil yang terkait dengan cerita pengguna menggunakan deskripsi tes [dan ini melengkapi 'spesifikasi']
- pilih satu set fitur untuk setiap iterasi; iterasi harus pendek [saya menghilangkan langkah-langkah perencanaan dan estimasi untuk singkatnya]
- kode tes untuk fitur (itu akan gagal, tetapi Anda harus membuat keputusan API untuk kode tes)
- cukup menerapkan fitur sehingga tes lulus
- refactor kode jika perlu
- ulangi dengan tes berikutnya sampai fitur selesai
- ulangi dengan fitur berikutnya sampai iterasi selesai
- ulangi dengan iterasi berikutnya sampai proyek selesai
berapa banyak desain, arsitektur, dokumentasi pendukung, dan lain-lain yang Anda pilih bukan bagian dari TDD. Ada beberapa 'praktik terbaik' praktis yang dapat Anda baca, tetapi perlu diingat bahwa itu adalah praktik 'terbaik' di bengkel orang lain , bukan milik Anda.
perhatikan bahwa intinya adalah bagi pelanggan dan pengembang untuk datang dengan fitur dan menulis cerita dan deskripsi pengujian bersama , untuk saling pengertian
jadi, dengan itu, pertanyaan aslinya adalah:
apa peran seorang arsitek perangkat lunak dalam TDD?
Dan jawaban singkatnya adalah:
Sama seperti dulu, sama seperti dulu. - David Byrne
EDIT: Jawaban panjangnya adalah: arsitek memainkan peran visioner / penyelidik / pengiritasi / pendukung / backstop yang biasa selama seluruh proses, sebagaimana diperlukan.
EDIT 2: maaf saya melewatkan inti dari sub-pertanyaan! Setiap orang bertanggung jawab untuk menulis spesifikasi; semua pengembang termasuk arsiteknya jika diperlukan ditambah pelanggan . Pengembang juga membuat kode tes.