Mengimplementasikan Test Driven Development Pada Framework Laravel Part 1

tdd-images.png


[[table-content]]


Halo teman-teman, apa kabar nih ?, semoga kita selalu dalam keadaan yang baik-baik saja ya. Pada kesempatan kali ini saya akan membagikan materi tentang cara mengimplementasikan . Kita juga akan singgung sedikit tentang apa sih itu TDD, kenapa penting bagi kita untuk menerapkan pendekatan TDD dalam proses pengembangan software dan selanjutnya perbedaan nya dengan automated testing dan yang terakhir kita akan bersama-sama mengimplemetasikan TDD dalam project laravel yang sebentar lagi akan kita bahas. Oke kalau begitu langsung saja kita masuk ke pembahasan nya.


Mari Berbicara Sedikit Tentang Testing dan Mengapa Kita Memerlukan Automated Test ?


Testing memiliki pengertian sederhana yaitu proses untuk menganalisis dan mendeteksi perbedaan antara pre condition dengan post condition yang kita sudah defenisikan sebelumnya, dan merupakan hal yang penting dalam pengembangan sebuah software atau aplikasi.


Siapa nih yang sudah pernah mendengar tentang Test Driven Development ? saya yakin banyak diantara kita sudah tidak asing lagi mendengar istilah ini. TDD belakangan ini ramai dibicarakan dan menjadi bagian yang penting dalam development cycle. Sebelum kita bahas TDD lebih lanjut mari kita sedikit mundur kebelakang mengingat kenangan-kenangan dalam membuat sebuah software / aplikasi semasa kuliah dulu hahahaha


Awalnya kita akan diberikan yang namanya software requirements atau pengertian sederhana nya itu daftar kebutuhan aplikasi yang akan kita buat. Setalah semua itu selesai kita akan melanjutkan membuat aplikasinya dengan mulai untuk ngoding sesuai dengan software requirements yang sudah dibahas sebelumnya. Setelah selesai menuliskan kode program selanjutnya kita melakukan testing untuk melihat apakah yang sudah kita kerjakan selama ini berjalan dengan baik (sesuai dengan software requirements). Nah sekilas dari proses pengembangan ini tidak ada masalah bukan ?


Ya benar, memang dari proses pengembangan di atas akan berjalan lancar kalau software requirements nya tidak berubah. Tapi hal ini bisa dibilang mustahil, mungkin untuk project yang memiliki scope kecil seperti tugas kuliah atau semacam nya hal seperti diatas bisa berjalan dengan lancar, bayangkan jika project yang akan kita tangani itu memiliki scope yang cukup luas dimana perubahan itu bisa dibilang terjadi terus menerus mengikuti dengan kebutuhan yang ada. Beberapa masalah yang biasanya muncul karena requirements yang selalu berubah-ubah adalah kita sebagai developer kehilangan kepercayaan diri untuk menambah maupun mengurangi fitur karena takut aplikasi kita akan mengalami break atau bahkan dengan kita menambahkan sebuah fitur baru akan mengakibatkan munculnya bugs baru. Oleh karena itu kita memerlukan automated test yang bertujuan unutk mengecek apakah baris code yang kita tambahkan atau kita ubah tidak merusak baris code yang sudah ada sebelumnya yang akan menimbulkan bugs baru.


Ngoding Dulu Baru di Test


Ada beberapa kelemahan yang muncul dengan menggunakan metode ini


  1. Over-engineering yaitu setelah kita berhasil menuliskan test , ternyata kita baru kalau implementasi yang kita tuliskan lebih kompleks dari yang seharusnya
  2. No Test at All yaitu kita jadi males untuk menuliskan automated test karena aplikasi kita / code yang kita tuliskan baik-baik saja bahkan sampai pada tahap production


Nah sekarang kita balik nih metode nya temen-temen, yaitu nulis test nya dulu baru ngoding. Nah metode seperti ini kita kenal dengan istilah Test Driven Development


TDD (Test Driven Development)


Test Driven Development adalah sebuah metode pengembangan perangkat lunak yang dikendalikan oleh pengujian atau test. Sederhananya adalah kita terlebih dahulu menuliskan code untuk testing terlebih dahulu sebelum menuliskan code untuk aplikasi kita.


Mari kita lihat alur kerja pada TDD


  1. Menuliskan code testing terlebih dahulu, pada proses penulisan code testing ini kita usahakan untuk memasukan semua skenario yang kita pikirkan untuk input dan output-nya
  2. Selanjutnya kita jalankan testnya. Dan pastinya testnya akan fail karena kita belum menuliskan code apapun untuk membuat test nya pass
  3. Ketikan working code dengan catatan seminimum mungkin dengan tujuan agar test nya pass
  4. Setelah itu kita jalankan kembali testnya dan lihat hasilnya. apabila test nya masih belum pass, silahkan teman-teman perbaiki kembali working code nya sampai kita dapat memenuhi ekspektasi yang kita tulis pada test nya dan statusnya menjadi pass
  5. Setelah test nya pass dan kita merasa working code yang kita tuliskan tadi masih berantakan kita dapat melakukan refactor , do something cleaning dan DRY-ing. Hal ini tidak masalah kita lakukan selama test nya masih pass.
  6. Ulangi proses dari no 1–5 untuk fungsi-fungsi lainnya didalam project kita




php laravel
avatar nel09

Ditulis oleh @nel09

"Berbagi ilmu dan hal menarik lainnya kepada orang banyak, agar menjadi manfaat"