Digitalmapia adalah situs dimana semua orang bisa menulis artikelnya sendiri. Klik "Login/Register untuk masuk, lalu klik "Tulis Artikel" untuk mulai menulis.

Mengenal lebih jauh tentang Test Driven Development (TDD)

Apa itu TDD? TDD (Test Driven Development) adalah suatu konsep pengembangan aplikasi dimana script untuk melakukan testing aplikasi dibuat lebih dulu dibandingkan kode program utamanya. Script yang dimaksud disini adalah suatu kode program yang melakukan test untuk menguji parameter, nilai keluaran yang dihasilkan oleh suatu fungsi. Saya sendiri pertama kali mengenal TDD ketika menggunakan framework Laravel.

Mengapa menggunakan TDD?

Bayangkan, jika anda memiliki sebuah tim pengembangan web kemudian anggota tim anda melakukan commit modul yang mereka buat dengan menggunakan version control (misal : git). Anda sudah yakin bahwa modul mereka buat sudah berjalan dengan baik dan tidak ada error. Namun, bagaimana anda tahu apakah modul yang mereka buat tidak  menyebabkan error modul / class lain yang sudah ada? apakah anda akan mengecek-nya satu-satu untuk tiap modulnya? bagaimana jika terdapat banyak (puluhan hingga ratusan) modul dalam aplikasi anda? bagaimana jika setiap orang dalam tim pengembangan anda melakukan commit lebih dari sekali dalam seharinya. Hmm… merepotkan bukan?

Nah, dengan menggunakan TDD anda tidak perlu melakukan cek satu-satu untuk setiap modul. Anda hanya tinggal melakukan eksekusi terhadap test script yang telah dibuat sebelumnya. Eksekusi biasanya dilakukan melalui command line apabila anda menggunakan Laravel. Dengan sekali eksekusi seluruh test script yang ada akan dijalankan dan anda akan mengetahui dengan lebih cepat modul-modul mana saya yang perlu diperbaiki.

Think before code

Dengan menggunakan TDD, anda dipaksa untuk membiasakan diri berfikir sebelum ngoding. Mungkin anda akan berkata, “ya iyalah dimana-mana sebelum ngoding pasti mikir dulu” :D, sabar yang dimaksud berfikir disini adalah sebelum anda membuat suatu method dalam suatu class  anda dituntut untuk memikirkan terlebih dahulu output yang hasilkan oleh method/fungsi tersebut serta parameter / input apa yang dibutuhkan. Setelah itu buat test script untuk menguji apakah input dan output yang diinginkan telah sesuai. Berikut adalah contoh test script yang dibuat pada Laravel dengan bantuan library bernama Mockery :

function testReturnFalseIfValidationFailed(){

   Validator::shouldReceive('make')->once()->andReturn(

	Mockery::mock(array('passes' => false))

   );

   $result = $this->model->validate();

   $this->assertEquals(false, $result);
}

Pada contoh diatas diperlihatkan bagaimana melakukan unit test terhadap method bernama validate, Dimana test script akan berhasil apabila fungsi validate mengembalikan nilai false ( $this->assertEquals(false, $result) ). Sebagai catatan, fungsi validate pada contoh ini adalah sebuah fungsi yang digunakan untuk melakukan validasi terhadap data yang dimasukan. Sehingga, sudah sewajarnya apabila fungsi tersebut mengembalikan nilai false jika input yang diberikan user tidak sesuai.

Apabila ternyata input yang diberikan user tidak sesuai, tetapi fungsi validate mengembalikan nilai true. Maka unit test tersebut akan menampilkan pesan bahwa test script tidak berhasil.

Last words

Dengan menggunakan TDD, anda bisa membuat sebuah aplikasi yang lebih stabil karena kesalahan-kesalahan yang terjadi pada setiap fungsi bisa dideteksi dengan lebih cepat. Namun demikian, perlu dilakukan pembiasaan untuk menerapkan TDD ini. Dan tentu pembiasaan tersebut tidaklah mudah.

 

Laravel Wallpapper
  • http://acep.web.id/ Acep Saepudin

    untuk TTD ini kedepannya bisa dibuat kan sebuah tutorial (mungkin login) min ? biar noob sperti sya bisa lebih memahami cara penggunaan TTD ini :)

    terima kasih