Materi
Pengembangan berbasis test (test-driven development, TDD) adalah cara membangun program dengan test sebagai pemandu. Martin Fowler merangkumnya menjadi tiga langkah yang diulang: tulis test untuk potongan fungsi berikutnya, tulis kode sampai test itu lulus, lalu rapikan kode lama dan baru. Ketiganya dikenal sebagai merah–hijau–refaktor, dari warna laporan test yang gagal dan yang lulus. Teknik ini dikembangkan Kent Beck di akhir 1990-an.
Sebelum siklus pertama, tulis daftar kasus yang akan diuji, lalu ambil satu. Langkah merah memastikan test-nya memang bisa gagal: test yang langsung lulus sebelum kodenya ditulis tidak menguji apa pun. Langkah hijau menulis kode paling sedikit yang membuat test itu lulus, walaupun kodenya masih kaku. Langkah refaktor mengubah susunan kode tanpa mengubah perilakunya, dan test yang sudah ada menjaga supaya perilakunya memang tidak berubah. Fowler mencatat bahwa cara paling umum gagal menjalankan TDD adalah melewatkan langkah ketiga.
Daftar kasus: 0 -> "nol", 1 -> "satu", 2 sampai 9 -> "beberapa", 10 ke atas -> "banyak"
Siklus 1 merah : assertEqual(sebut(0), "nol") gagal, fungsi belum ada
hijau : def sebut(n): return "nol" lulus
Siklus 2 merah : assertEqual(sebut(1), "satu") gagal
hijau : tambah if n == 1 lulus, test siklus 1 tetap lulus
Siklus 3 merah : assertEqual(sebut(5), "beberapa") gagal
hijau : tambah if n < 10 lulus
refaktor: ganti rangkaian if dengan tabel batas, semua test tetap lulus
Manfaat kedua yang disebut Fowler: menulis test lebih dulu memaksa memikirkan cara fungsi dipakai — nama, parameter, dan hasilnya — sebelum isinya. Bacaan MIT 6.005 menamai kebiasaan yang sama test-first programming: spesifikasi, lalu test, lalu kode. Setiap test yang ditulis selama siklus tetap tinggal, sehingga perubahan berikutnya yang merusak perilaku lama langsung terlihat merah.