Monday, September 2, 2019

Test Driven Development (TDD)

[ Telah di Presentasikan ]

Nama Kelompok :
1. Rhomy Idris Sardi
2. Ragil Abdi Maulana


Test Driven Development (TDD) merupakan sebuah strategi pengembangan perangkat lunak yang langkah pengerjaannya adalah dengan membuat test case terlebih dahulu baru kemudian dilakukan producing code dan refactoring.
Metode TDD mengharuskan pengembang untuk menentukan terlebih dahulu kebutuhan dan desain dari perangkat lunak yang akan dibangun kemudian melakukan implementasi kode. Satu poin penting dalam metode TDD adalah pengembangan perangkat lunak berfokus pada spesifikasi bukan pada validasinya. Sebab pada TDD validitas dari kode program sudah pasti terjamin saat sistem selesai dibuat. Sehingga akan mempercepat waktu pengembangan program ketika mengerjakan proyek dalam sekala yang besar.

Proses pengembangan perangkat lunak akan menghasilkan suatu produk yang berkualitas apabila terjadi sinkronisasi antar analisis dan pemrogram[3]. Sebuah perangkat lunak dikatakan berkualitas apabila perangkat lunak dapat bekerja sesuai apa yang diinginkan pengguna (user requirement dan bussines process). Selain itu, dapat memudahkan pengguna dalam modifikasi perbuahan, serta memudahkan dalam menemukan bug. Semua spesifikasi tersebut dapat diakomodasi oleh metode TDD. Sebab pada metode TDD terdapat unit test yang berperan untuk menjaga agar pengembang tetap stay on track ketika membuat sebuah perangkat lunak. Sehingga memungkinkan hasil perangkat lunak yang dibuat akan sesuai dengan kebutuhan dan proses bisnis pengguna.

Proses Tahapan Test Driven Development (TDD)


Tahapan-tahapan metode Test Driven Development (TDD) adalah sebagai berikut:
  1. Pengembang menuliskan unit test terlebih dahulu, sesuai spesifikasi dan bisnis proses dari sistem yang diinginkan oleh pengguna.
  2. Setelah membuat unit test, pengembang menuliskan kode program untuk menyelesaikan unit test sampai pass (tidak terjadi error).
  3. Pengembang melakukan refactoring kode program yaitu mengubah struktur program agar lebih mudah dipahami dan dimodifikasi, tanpa harus mengubah dari behavior program.
TDD merupakan gabungan antara Test First Development (TFD) dan refactoring. Tahapan Unit Test menggunakan metode Test First Development (TFD), dimana alur kerjanya digambarkan sebagai berikut :

Berdasarkan gambar, hal pertama yang dilakukan ketika menerapkan metode TFD adalah membuat unit test hasil turunan dari user requirement. Saat pertama kali tes dijalankan hasilnya akan error, sebab belum terdapat kode apapun yang membuat tes menjadi terpenuhi. Oleh sebab itu, tugas pengembangan adalah membuat kode sampai tes yang membuat berhasil terpenuhi. Pengembang akan terus melakukan revisi kode program, dan apabila tes pertama sudah berhasil terpenuhi maka akan berganti ke tes-tes berikutnya sesuai fungsinya masing-masing. Apabila semua unit test sudah berhasil dijalankan, maka pengembangan sistem selesai dibangun.

Tahapan berikutnya setelah melalui unit test adalah, melakukan proses refactoring. Pada metode TFD, kode yang dihasilkan biasanya kurang rapi atau acak-acakan. Oleh sebab itu dilakukan proses refactoring agar kode lebih mudah di maintenance dan dipahami oleh pengembang lain. Proses refactoring dilakukan dengan memperhitungkan hasil pengujian agar tetap passed artinya fitur tetap dapat bekerja sebagaimana mestinya (sesuai spesifikasi).


Kelebihan dan Kekurangan :

Kelebihan :
Beberapa keuntungan yang kita dapat ketika menggunakan Test Driven Development adalah :
  1. Saat terjadi error kita akan tahu persis letak error tersebut berada.
  2. Dibandingkan meng-test sistem secara keseluruhan, melakukan TDD memberikan waktu yang cepat dalam penggabungan suatu sistem.
Kekurangan :
  1. Sulit menentukan unit test yang benar dalam sebuah studi kasus karena tidak ada ukuran yang menunjukkan kebenaran dari suatu unit test yang dibangun.
  2. Tim pembangun sulit membuat abstraksi dari sebuah interface karena tidak ada physical design yang dilakukan di awal proses pembangunan aplikasi. Tim pembangun hanya membangun aplikasi dengan design thinking.
  3. Dalam pembangunan aplikasi dengan metodologi ini dibutuhkan tim pembangun yang sudah berpengalaman dan memahami bagaimana menulis test yang baik dan juga mengerti sedikit tentang arsitektur yang baik sehingga tidak cocok bagi tim pembangun pemula.

Referensi :
1. Beck, K. (2003). Test-Driven Development: By Example. Boston : Addison-Wesley.
2. Rachmadi, G. 2015 . “Implementasi Test Driven Development Dalam Studi Kasus Pengembangan Sistem Informasi Rawat Jalan Di Rumah Sakit Hewan Universitas Airlangga”. Skipsi. Universitas Airlangga, Surabaya.
3. Firmansyah, R. 2016. “Pengembangan Perangkat Lunak Pengajuan Sidang Tugas Akhir Menggunakan Metodologi Test Driven Development”. Skripsi. Universitas Pasundan, Bandung.
4. Setiawan, A., Satoto, K.I., Isnanto, R.R. 2013. “Implementasi Automated Unit dan Integration Testing Pada Pengujian Perangkat Lunak”. TRANSIENT. Vol.2, No.3, 708-713.



No comments:

Post a Comment