Test Driven Development
Code without tests is bad code. It doesn’t matter how well written it is; it doesn’t matter how pretty or object-oriented or well-encapsulated it is. With tests, we can change the behavior of our code quickly and verifiably. Without them, we really don’t know if our code is getting better or worse.
Apa itu Test Driven Development ?
Test Driven Development atau biasa disingkat dengan TDD merupakan pendekatan perangkat lunak, di mana test di buat terlebih dahulu untuk menentukan dan memvalidasi apa yang akan dilakukan oleh kode.
Mengapa kita perlu membuat test?
- Test dapat menghemat waktu
- Test tidak hanya mengidentifikasi masalah, tetapi juga mencegahnya
- Test membuat kode kita lebih menarik
- Test membantu tim bekerja sama
Langkah-Langkah Penerapan TDD
Siklus TDD terbagi menjadi 3 tahap, yaitu RED, GREEN, dan REFACTOR
- Tahap RED
think about what you want to develop
Tahap ini merupakan tahapan pertama dalam siklus TDD. Tujuan dari tahap ini adalah untuk menulis test yang menginformasikan implementasi fitur. Pada fase ini, kita membuat test terlebih dahulu dengan memasukkan semua kemungkinan input dan outputnya. Setelah itu, jalankan test-nya dan pastikan test-nya fail karena belum ada kode apapun untuk membuat test-nya pass.
Contohnya pada proyek PPL ini, kita bisa mencoba untuk melakukan test apakah suatu halaman sudah ter-render. Kodenya adalah sebagai berikut.
2. Tahap GREEN
think about how to make your tests pass
Pada tahap ini baru kita kode seminimum mungkin hingga test yang sudah dibuat pada tahap RED pass. Tujuannya adalah hanya untuk membuat test sebelumnya pass, tanpa memikirkan apakah kode yang diimplementasikan sudah baik dan efisien. Setelah kode diimplementasi, jalankan kembali test. Jika test masih belum pass, perbaiki kode hingga test-nya pass.
Contohnya pada proyek PPL ini, kita bisa membuat halaman yang sudah kita buat test-nya pada tahap sebelumya. Kodenya adalah sebagai berikut.
3. Tahap REFACTOR
think about how to improve your existing implementation
Pada tahapan REFACTOR, kode yang kita buat masih tetap GREEN, namun pada tahapan sebelumnya kita hanya memikirkan agar test-nya pass tanpa memikirkan kualitas kodenya. Dalam tahap ini, kita mulai memikirkan bagaimana kode yang sudah diimplementasikan lebih baik dan lebih efisien. Setelah kode dilakukan refactor, jangan lupa pastikan test-nya tetap pass, yang artinya tidak ada masalah dengan kode yang di refactor tersebut.
Keuntungan Menerapkan TDD
- Meningkatkan design dan kualitas kode.
- Ketika terjadi error kita akan tahu persis letak error tersebut berada.
- Melakukan TDD akan memberikan waktu yang cepat dalam penggabungan suatu sistem dibandingkan dengan meng-test sistem secara keseluruhan.
Kelemahan TDD
- Sulit menentukan unit test yang benar dalam sebuah studi kasus karena tidak ada ukuran yang dapat menunjukkan kebenaran dari suatu unit test yang dibangun.
- Dibutuhkan tim pembangun yang sudah berpengalaman dan memahami bagaimana menulis test yang baik dan juga mengerti sedikit tentang arsitektur yang baik sehingga kurang cocok bagi tim pembangun pemula.
Sekian penjelasan singkat mengenai Test Driven Development beserta langkah-langkah dan keuntungan serta kelemahannya. Semoga bermanfaat.