Mari Mengenal TDD (Test-Driven Development)

Hendrico Kristiawan
3 min readMar 19, 2022

--

Alur TDD

Steven merupakan programmer handal yang sedang membuat program untuk tugas kuliahnya. Pada hari pertama, program tersebut sudah dapat melakukan operasi penjumlahan dua matriks. Tidak puas dengan hal tersebut, Steven ingin menambahkan operasi perkalian dua matriks pada program yang sama pada keesokan hari. Setelah operasi perkalian selesai, Steven mengumpulkan tugas tersebut kepada dosen tanpa mencoba kembali program operasi penjumlahan. Namun ketika dicoba oleh dosen, program tersebut hanya bisa melakukan perkalian matriks sedangkan operasi penjumlahan matriks tidak bekerja.

Apakah kalian pernah mengalami hal tersebut? Masalah yang muncul tiba-tiba padahal sebelumnya tidak mengalami masalah. Hal tersebut bisa terjadi karena terdapat perubahan yang mempengaruhi jalannya program yang sudah dibuat sebelumnya. Untuk mencegah hal tersebut, saya akan memperkenalkan TDD atau Test-Driven Development.

Definisi TDD

TDD merupakan sebuah alur pengembangan software dimana kita harus membuat test terlebih dahulu baru membuat program yang bekerja. Mungkin akan lebih mudah dimengerti jika melihat alur bagaimana TDD digunakan.

  1. Membuat tes untuk program (RED)
    Dengan membuat tes tanpa membuat kode yang akan diuji, tentu saja tes akan gagal.
  2. Membuat kode yang diuji (GREEN)
    Setelah membuat tes, waktunya kita membuat kode tersebut. Pada tahap ini, kode yang dibuat harus dapat lolos dari tes. Jika belum, maka kita tidak boleh membuat tes atau kode lain. Setelah berhasil, maka kita kembali ke langkah awal yaitu membuat tes baru atau menuju langkah selanjutnya
  3. Mengubah kode yang sudah lolos (REFACTOR)
    Mungkin kode yang kalian buat sebelumnya masih kurang optimal atau tidak efisien. Sehingga pada tahap ini kalian dapat mengubah kode tanpa mengubah fungsionalitas pada kode. Namun kita tetap harus memperhatikan bahwa perubahan yang dibuat tetap lolos tes.

Contoh penerapan TDD

Saya akan mencontohkan bagaimana cara penerapan TDD dalam proyek. Namun pada contoh ini, saya menggunakan node.js dengan library jest untuk melakukan tes kode.

Dengan penerapan TDD, tentu saja kita perlu membuat tes terlebih dahulu sebelum membuat kode. Sehingga jika kita jalankan tes tersebut, maka akan menjadi error.

Jika tes tersebut gagal, maka langkah selanjutnya adalah membuat kode yang dapat membuat tes tersebut berhasil.

Dapat dilihat bahwa tes yang kita buat sudah berhasil ketika implementasi diterapkan. Setelah itu baru kita bisa membuat tes lagi untuk hal yang ingin kita buat. Pada contoh ini, selanjutnya saya ingin membuat fungsi untuk melakukan perkalian antar dua bilangan.

Seperti biasa ketika kita sudah menerapkan tes, maka selanjutnya kita membuat implementasi agar tes menjadi berhasil.

Berikut merupakan implementasi saya pada fungsi agar lolos tes. Meskipun penerapan tersebut tidak optimal, tetapi sudah memenuhi tujuan kita agar kode berhasil lolos dari tes yang dibuat. Sehingga selanjutnya melakukan refaktor agar kode menjadi lebih baik.

Sebagai tambahan, berikut merupakan banyak tes yang ada pada proyek yang sedang saya kerjakan. Jumlah tes akan terus berkembang selama proyek masih dalam tahap pengerjaan.

Sekian penjelasan yang bisa saya sampaikan mengenai cara penerapan TDD dalam proyek yang kamu kerjakan. Namun perlu diingat bahwa TDD bukanlah merupakan kewajiban. TDD hanyalah sebuah metode yang dapat mempermudah kalian dalam mengerjakan proyek yang dikerjakan. 😀

--

--