Saya telah menemukan TDD berkinerja buruk ketika datang ke sistem yang muncul. Saya adalah pengembang permainan video, dan baru-baru ini menggunakan TDD untuk membuat sistem yang menggunakan beberapa perilaku sederhana untuk membuat gerakan yang tampak realistis untuk suatu entitas.
Misalnya, ada perilaku yang bertanggung jawab untuk memindahkan Anda dari area berbahaya dari berbagai jenis, dan yang bertanggung jawab untuk memindahkan Anda ke area menarik dari berbagai jenis. Dengan menggabungkan output dari masing-masing perilaku menciptakan gerakan akhir.
Nyali sistem diimplementasikan dengan mudah, dan TDD berguna di sini untuk menentukan apa yang harus bertanggung jawab atas setiap subsistem.
Namun saya mengalami masalah ketika menentukan bagaimana perilaku berinteraksi, dan yang lebih penting bagaimana mereka berinteraksi dari waktu ke waktu. Seringkali tidak ada jawaban yang benar, dan meskipun tes awal saya lulus, QA dapat terus menemukan kasus tepi di mana sistem tidak berfungsi. Untuk menemukan solusi yang benar, saya harus mengulangi beberapa perilaku yang berbeda, dan jika saya memperbarui tes setiap kali untuk mencerminkan perilaku baru sebelum saya memeriksa mereka bekerja dalam permainan, saya mungkin akhirnya membuang tes berulang kali. Jadi saya menghapus tes-tes itu.
Saya seharusnya memiliki tes yang lebih kuat yang menangkap kasus-kasus tepi yang ditemukan QA, tetapi ketika Anda memiliki sistem seperti ini yang berada di atas banyak sistem fisika dan gameplay, dan Anda berurusan dengan perilaku dari waktu ke waktu, itu menjadi sedikit mimpi buruk untuk menentukan dengan tepat apa yang terjadi.
Saya hampir pasti membuat kesalahan dalam pendekatan saya, dan seperti saya katakan untuk nyali sistem TDD bekerja dengan cemerlang, dan bahkan mendukung beberapa refaktor yang optimal.