TDD dan Implementasinya dalam Proyek Perangkat Lunak

Sumber : https://www.rishabhsoft.com/blog/unit-testing-for-android-mobile-applications

TDD atau Test Driven Development merupakan salah satu metode pengembangan software yang telah lama dikenal. Dahulu kita membuat implementasinya lalu kemudian melakukan test kemudian agar mengetahui bug dan masalah lainnya sebelum dipublikasikan. Namun dengan TDD kita akan membuat test terlebih dahulu sebelum implementasinya, apa kelebihan hal tersebut?

Test Driven Development

Sumber : https://www.nouraraar.com/test-driven-development-in-swift/

Terdapat 3 tahap dalam TDD yaitu Red , Green, dan Refactor.

  • Red, pada tahap ini dilakukan pembuatan test tanpa adanya implementasi code. Test tersebut berdasarkan requirements yang ada. Misal terdapat requirements yang mengharuskan ada text tertentu pada halaman. Nah kemudian kita akan membuat test yang akan berhasil sesuai requirements tersebut.
  • Green, pada tahap ini setelah selesai membuat test, akan dibuat implementasinya agar memenuhi test-test yang telah dibuat.
  • Refactor, setelah kita membuat implementasi yang memenuhi test kemudian kita akan me-refactor yaitu simplifikasi code agar memenuhi clean code.

Implementasi TDD dalam Proyek Perangkat Lunak

Menuliskan Test (Red)

Kemudian pada tahap testing akan gagal.

Namun kalian dapat mencoba untuk membuat implementasi yang kosong saja seperti ini. Agar pipeline gagal bukan karena linter namun karena test yang gagal.

Membuat Implementasi hingga Green

Kemudian pipeline akan berhasil.

Refactor Code

Code Coverage

Bagaimana TDD Membantu dalam Proyek Perangkat Lunak

Terlihat potongan test sederhana, namun cukup untuk membantu saya mengimplementasikannya. Pada baris pertama saya akan mengecek terlebih dahulu text yang akan saya gunakan. Kemudian saya akan pump secara async (Kita tidak perlu harus menunggu sebanyak waktu yang ditentukan) selama 3 detik. Lalu akan saya coba test apakah text kemudian akan berubah menjadi 57 dari yang semula 60.

Setelah timer berakhir kemudian akan dimunculkan suatu teks untuk mengirim ulang OTP. Saya akan menambahkan test untuk hal tersebut.

Dan berikut hasil yang didapat.

Kelebihan dan Kekurangan TDD

  • Meminimalisir bug, dengan TDD kita akan membuat test terlebih dahulu untuk mengurangi kemungkinan error yang terjadi pada implementasinya. Sehingga dengan TDD ketika membangun code, bug-bug yang sudah diprediksi dapat diselesaikan dengan cepat.
  • Meningkatkan produktivitas

Kekurangannya yaitu:

  • 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 [1].
  • Apabila tidak memiliki abstarksi design atau prototype akan lebih sulit membangun aplikasi karena hanya berdasarkan requirements sehingga hanya menggunakan design thinking.

Kesimpulan

Referensi

Mahasiswa Fasilkom UI angkatan 2018

Mahasiswa Fasilkom UI angkatan 2018