Test Driven Development (TDD)

Sukma Firdaus
sinadin
Published in
2 min readApr 15, 2019

Test driven development (TDD) adalah pendekatan untuk mengembangkan program secara bertahap dengan terlebih dahulu menuliskan tes dan kemudian menulis kode yang cukup untuk memenuhi tes yang telah kita buat terlebih dahulu. Pada pendekatan ini, developer harus mengetahui mengenai hal apa yang kira — kira kode yang ingin kita buat dapat lakukan. Kemudian, pemikiran tersebut akan dikembangkan menjadi sebuah tes yang bisa memastikan bahwa kode tersebut dapat berjalan sesuai dengan keinginan.

Manfaat TDD

Desain yang lebih baik — TDD dianggap dalam banyak kasus sebagai proses desain daripada proses testing. Hal ini dikarenakan kode test yang ditulis diawal cenderung dapat mengurangi coupling.

Efisiensi — Penggunaan TDD akan mengidentifikasikan kesalahan atau error dengan cepat ketika kode baru ditambahkan ke sistem.

Test assets Test case yang ditulis secara otomatis dalam TDD adalah aset yang berharga bagi proyek. Ketika ada sebuah peningkatan atau modifikasi pada kode, maka menjalankan unit test secara otomatis dapat mengidentifikasi terjadinya cacat/defect baru pada kode.

Mengurangi defect injection — Kesalahan lebih rentan terjadi pada saat pemeliharaan kode atau perubahan kode daripada implementasi kode baru. Seringkali, defect injection terjadi pada saat dilakukan pemeliharaan kode. Dengan penggunaan TDD, developer dapat mengetahui apakah perubahan tersebut mengakibatkan kesalahan pada kode yang sudah jadi atau kode yang baru.

Implementasi TDD

Dalam pengaplikasiannya, kira — kira seperti ini flow penulisan kode dengan menggunakan TDD :

Sebelum menulis kode, tuliskan test-nya terlebih dahulu. Pastikan kita memasukkan semua kemungkinan input/output yang kita inginkan pada program.

Jalankan test, lalu dapat kita lihat bahwa test tersebut failed. Jangan cemas jika test tersebut failed, karena belum ada kode apapun untuk membuat test tersebut pass.

Lalu, ketik working code seminimum mungkin agar test-nya pass.

Jalankan test dan cek apakah test-nya pass. Jika belum pass, maka perbaiki working code kita sampai memenuhi ekspektasi dari test.

Ulangi proses dari no 1–4 untuk fungsi-fungsi lainnya.

Mohon maaf, dalam penerapannya pada SINADIN, saya belum bisa memberikan dikarenakan saya sampai saat ini belum mendapatkan task untuk membuat test.

--

--