Saya pribadi cenderung percaya bahwa seseorang dapat memperoleh banyak manfaat dari TDD (tanpa benar-benar mematuhi TDD), dengan:
- Menulis kedua penelepon dan kode callee di sekitar waktu yang sama (pasti tidak lebih dari 24 jam terpisah).
- Dan menggunakannya untuk mempengaruhi desain antarmuka (objek, pemanggilan metode dan parameter).
- Untuk komponen yang membutuhkan algoritme / kode yang rumit, pertimbangkan penerapan terlebih dahulu dalam algoritme yang lebih sederhana namun benar, meskipun kurang efisien (atau bodoh, atau hanya berfungsi dalam situasi yang lebih sempit).
- Metode pengujian yang sangat sederhana akan menjalankan kedua algoritma dan membandingkan hasilnya.
- Begitu bug ditemukan (dengan cara apa pun) di salah satu bagian kode, bagian kode itu layak diuji lebih agresif. Ini berarti melakukan tes yang lebih canggih daripada TDD. (berdasarkan alasan bahwa bug terjadi dalam kelompok )
TDD tampaknya mengharuskan Anda untuk memiliki pemahaman yang cukup jelas tentang fungsi apa yang Anda rencanakan untuk implementasikan, atau persyaratan apa yang Anda rencanakan untuk dipenuhi dengan mengimplementasikan kode. Dalam beberapa situasi, hanya ada sedikit pemahaman tentang masalahnya. Ini akan membutuhkan solusi Spike . Dalam ruang lingkup solusi Spike ini, TDD dapat diterapkan karena masalahnya telah dipersempit ke tingkat yang dapat dikelola. Setelah beberapa Spike selesai, masing-masing mencakup beberapa aspek dari masalah asli, seseorang dapat mulai bekerja pada solusi lengkap, dan menerapkan TDD pada titik itu mungkin layak karena peningkatan pemahaman.
Diedit:
Setelah membaca halaman lebih hati-hati,
Walaupun mungkin untuk menguji sebagian besar fungsi kernel dalam driver test "testbed", hal-hal yang benar-benar "juicy" seperti penanganan interupsi, pengiriman proses atau manajemen memori mungkin tidak dapat diuji unit. --- dari http://wiki.osdev.org/Unit_Testing
Mereka jelas mengatakan bahwa sebagian besar dapat diuji, dan bahwa beberapa bagian memerlukan jenis pengujian yang berbeda: Pengujian Stres .