TDD: Test Driven Development
Halo semua! kembali lagi bersama saya Fadhlan dan kali ini kita akan membahas mengenai sebuah metodologi yang cukup populer, yaitu TDD (Test-Driven Development).
Jadi apa sih TDD itu? sesuai namanya “Test-Driven”, kita membuat kode untuk testing terlebih dahulu sebelum membuat production code. Seperti tagline TDD, semua kode yang akan kita buat diasumsikan salah sampai kode tersebut berhasil melewati test yang sudah dibuat.
Pasti kalian sempat berpikir, kenapa sih harus bikin test dulu? Kenapa ngga bikin production code dulu aja baru nanti dibikin testnya. Mari kita selami lebih dalam mengenai TDD untuk mengetahui alasannya.
Red-Green-Refactor-Repeat
Red phase
Pada tahap ini, seperti yang sudah diketahui, kita akan menulis test terlebih dahulu. Dalam menulis test, kita menulis test untuk sebuah kode seakan-akan kode tersebut sudah di implementasi. Tujuan dari fase ini adalah men-design bagaimana kode kita akan dipakai oleh client. Dengan begitu, kita akan memikirkan input-output pada production code yang akan di implementasi. Pada fase ini, anda tidak akan melakukan implementasi apapun mengenai production code.
Green phase
Seperti namanya, pada tahap ini kita akan membuat test kita menjadi “green”. Dengan kata lain, kita akan melakukan implementasi pada production code sesuai dengan test yang sudah kita buat. Mungkin tahap ini menjadi tahap yang mudah bagi kita programmer karena menulis production code merupakan hal yang sudah biasa kita lakukan.
Namun, jangan terlalu senang dulu, anda tidak diminta untuk menulis semua implementasi pada tahap ini. Anda diminta untuk melakukan implementasi kode yang straight-forward dan membuat kode yang ditulis menjadi “green”. Pada tahap ini, anda diperbolehkan menulis kode yang terduplikasi atau tidak mengikuti best practice, karena semua itu akan diperbaiki di tahap refactor.
Refactor phase
Pada tahap ini, anda akan mengganti dan memperbaiki kodingan anda menjadi lebih baik. Menghapus duplikasi kode merupakan hal yang wajib hukumnya dilkakukan pada tahap ini. Semua itu dilakukan dengan tetap mempertahankan status “green” atau tetap berhasil melewati test yang sudah dibuat di awal. Jika anda ingin mengeluarkan skill anda sebagai programmer, tahap inilah merupakan tahap yang tepat.
So Why TDD?
Melakukan TDD pastinya membutuhkan lebih banyak waktu dibanding tanpa menggunakan TDD atau tanpa melakukan testing sama sekali. Namun, waktu tersebut sebanding dengan keuntungan yang kita dapatkan dengan menggunakan TDD. Apa saja sih keuntungannya?
- Tidak perlu memikirkan analisis dan desain arsitektur, hal ini sudah dilakukan saat anda membuat test.
- Bug diminimalisir, karena jika anda menulis test dengan baik, bug akan terlihat saat dilakukan testing.
- Refactoring yang gagal akan langsung terlihat karena adanya test.
- Living documentation, dengan dibuat test terlebih dahulu, maka setiap fungsi yang kita buat akan terdokumentasi secara tidak langsung.
Banyak sekali manfaat yang kita dapatkan dengan menggunakan TDD. Tidak heran, TDD menjadi populer saat ini. Dan di mata kuliah PPL diterapkan juga TDD karena kita tidak mau ketinggalan manfaat yang diberikan oleh TDD.
Sekian dulu ya tulisan saya kali ini. Semoga tulisan saya dapat memberikan manfaat seperti TDD memberikan manfaat bagi programmer yang menggunakannya. Sampai jumpa!