Test-Driven Development

Taufik Algi
2 min readApr 5, 2021

Test-Driven Development (TDD) adalah salah satu pendekatan pengembangan perangkat lunak. Seperti namanya, testing adalah salah satu aspek terpenting dalam TDD.

Apa itu Test?

Test, dalam pengembangan perangkat lunak, adalah proses mengevaluasi kode untuk mengetahui apakah perangkat lunak yang sedang dikembangkan sudah sesuai requirements atau belum. Dengan melakukan testing, kita dapat mengetahui apa saja kekurangan fitur yang terdapat pada requirements yang belum kita implementasikan atau melihat bug pada fitur yang sudah terimplementasi.

Sebelum TDD, ada sebuah metodologi yang bernama Test First Development (TFD). Pada penerapan TFD, yang pertama dilakukan adalah membuat kode test yang gagal, yang disebut dengan tahap RED. Kemudian membuat implementasi fitur yang akan membuat test tersebut berhasil, yang disebut dengan tahap GREEN. Pada proses ini, bisa saja terdapat duplikasi kode sehingga kita perlu me-refactor kode tersebut. Ini lah yang dinamakan TDD. Singkatnya, TDD merupakan TFD + Refactor, yang terdiri dari RED-GREEN-REFACTOR.

https://anarsolutions.com/test-driven-development-tdd/

Testing yang umum dilakukan adalah Unit Testing dan Functional Testing. Unit Testing adalah test yang dilakukan untuk mengetes modul atau method yang terdapat di kode kita. Sedangkan Functional Testing adalah test yang dilakukan untuk memeriksa fungsionalitas perangkat lunak yang kita kembangkan. Kita dapat memeriksa apakah perangkat lunak tersebut sudah berjalan sesuai yang kita inginkan.

Apa Keuntungan Melakukan TDD?

Sebuah metodologi tentunya memiliki kelebihan dan kekurangan dibanding metodologi lainnya, dan TDD bukanlah pengecualian. TDD juga memiliki beberapa kelebihan dan kekurangan sebagai berikut:

Keuntungan

  1. Dengan TDD, kita dapat mendeteksi bug yang mungkin terjadi lebih awal.
  2. Developer dapat mendesain perangkat lunak dengan lebih baik dan membuat kode yang lebih bersih dan dapat disesuaikan dengan mudah (clean code).
  3. Membantu untuk memilih langkah pengerjaan perangkat lunak dan juga memungkinkan orang lain untuk dapat memahaminya dengan baik.
  4. Test dapat dibuat untuk kasus khusus sesuai dengan keperluan konsumen.
  5. Menghemat waktu dalam memperbaiki dan mengembangkan fitur ketika menulis test case.
  6. Membuat pekerjaan lebih mudah dan simpel.
  7. Memberikan gambaran mengenai input dan output yang diberikan.

Kekurangan

  1. Untuk mendapatkan hasil yang baik, melakukan TDD membutuhkan keahlian khusus yang menyulitkan di proses awal, tetapi mempermudah proses selanjutnya.
  2. Banyakan developer yang tidak bisa menerapkan TDD.
  3. Ketika refactor dilakukan, mungkin saja test classes juga harus di-refactor.
  4. Membutuhkan banyak fokus.

Referensi

--

--

Taufik Algi

Undergraduate student of Computer Science at Universitas Indonesia