Test-Driven Development

Pengertian dari TDD

  1. Kita tidak boleh menuliskan production code sampai kita menuliskan unit test yang gagal.
  2. Kita tidak boleh menuliskan unit test yang lebih dari cukup untuk gagal, dan tidak mengkompilasi berarti kegagalan.
  3. Kita tidak boleh menuliskan unit test yang lebih dari cukup untuk meluluskan unit test yang sedang gagal.

Alur penerapan TDD

TDD Cycle — source: Slide PPW materi Test-Driven Development Fakultas Ilmu Komputer UI
  1. RED: Tahapan untuk menuliskan test case yang gagal/tidak lulus ketika dijalankan. Test case ini jelas tidak akan lulus karena production code yang diuji coba belum dibuat.
  2. GREEN: Membuat production code yang akan meluluskan test case yang telah dibuat sebelumnya. Production code yang dibuat pada tahap ini biasanya masih dibuat seminimal mungkin, namun cukup untuk lulus pada test case.
  3. REFACTOR: Production code yang telah dibuat di tahap sebelumnya dikembangkan lebih lanjut jika dibutuhkan. Production code akan di refine sehingga pengimplementasian code yang dibuat sebelumnya akan lebih bagus, baik dari segi struktur, performa, ataupun penulisan. Biasanya hal yang diubah terkait masalah duplikasi yang dibuat untuk meluluskan test sebelumnya. Code yang telah dikembangkan ini tetap harus dipastikan akan lulus test (tidak kembali ke RED).

Tujuan dan Manfaat menggunakan TDD

Programming is like exploring a dark house. You go from room to room to room. Writing the test is like turning on the light. Then you can avoid the furniture and save your shins (the clean design resulting from refactoring). Then you’re ready to explore the next room”

— Kent Beck, pembuat extreme programming

  1. Menghindari duplikasi dari code.

Contoh Implementasi dari TDD

salah satu contoh test case
contoh gitlab pipeline pada tahap RED
url routing yang akan mengakses fungsi my_profile
fungsi yang akan dipanggil oleh test case, yaitu my_profile
contoh gitlab pipeline pada tahap GREEN
fungsi my_profile yang telah dilakukan refactor
contoh pipeline-pipeline hasil proses TDD

Kekurangan dalam menggunakan TDD

  1. Menghambat proses development jika pengetahuan mengenai TDD kurang.

--

--

--

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Abdurrahman Luqmanul Hakim

Abdurrahman Luqmanul Hakim

More from Medium

CS373 Spring 2022: Tiago Grimaldi Rossi

CS373 Spring 2022: Yifan Zhou

My takeaways from Clarity 2019

How I Learned 3D in 30 days