Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Pengujian Perangkat Lunak

Pelajaran 12 dari 15

TDD, test double, dan test JavaScript

TDD: merah, hijau, refaktor

Setelah pelajaran ini kamu bisa menjalankan siklus TDD: menulis test yang gagal, menulis kode paling sedikit sampai lulus, lalu merapikan tanpa mengubah perilaku.

±13 menitDiperiksa 3 Okt 2026

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.

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 1 dari 3

Mana urutan satu siklus TDD?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke