TDD: Why It Matters?

Agas Yanpratama
PDB+R
Published in
4 min readMar 31, 2019
TDD Diagram

Hai haiiiiiiiiiiii pembaca story PDB-R yang baik hati dan tidak sombong. Kali ini saya, Agas Hustler dari tim PPL PDB-R akan bercerita tentang test driven development, atau yang biasa disebut TDD. Topik yang akan dibahas adalah: Apa itu TDD? Keuntungan penerapan TDD? TDD dalam pemrograman Python? dan yang terakhir, apa implementasi TDD dalam proyek yang sedang dikerjakan?

TDD?

Test Driven Development (TDD) adalah sebuah pendekatan dalam pengembangan perangkat lunak yang mengambungkan TFD dan refactoring. Konsep TFD(Test First Development) adalah pengembangan perangkat lunak dimana kita membuat tes sebelum membuat code yang memenuhi fungsi yang diinginkan pada produk akhir kita dan refactor untuk memperbaiki saat kita menambahkan fitur baru, sehingga memudahkan saat kita melanjutkan pengembangan perangkat lunak yang sudah dibuat.

Mantra dari TDD adalah “red, green, refactor”. Mantra ini merupakan langkah-langkah yang dilakukan dalam pengembangan perangkat lunak yang mengimplementasikan TDD. Penjelasan dari langkahnya adalah:

  • Red: Langkah pertama dalam fase TDD adalah membuat tes, karena tidak menemukan pasangannya maka takdirnya akan gagal. Oleh karena itu, langkah ini disebut merah atau RED. 💔
  • Green: Langkah selanjutnya adalah membuat code yang sesuai dengan fungsionalitas juga yang telah dibuat di tes. Fokus dalam langkah ini membuat fungsi dari tes dan membuat menjadi hijau atau GREEN. 💚
  • Refactor: Langkah berikutnya adalah memperbaiki dan memperbagus fungsi yang telah dibuat, seperti memperhatikan redundansi, styling, dan hal lain untuk memperbagus dan memperbaiki code yang dibuat.

Keuntungan TDD

  • Cocok untuk agile development, karena agile berfokus pada delivery produk pada tiap scrum sehingga penggunaan tes sebagai apa yang ingin ditunjukkan pada scrum berhasil.
  • Umpan balik langsung yang menunjukkan dalam pengembangan fitur apakah sudah benar atau belum.
  • Mendukung kebutuhan program yang berubah-ubah.
  • Mengurangi code yang tidak terpakai karena program secara keseluruhan dibangun untuk menjamin keberhasilan dari pembutan tes.
  • Mempunyai alat untuk membantu memvalidasi tes yang sudah dibuat, hasil dari alat ini bisa membantu client dan programmer untuk menentukan langkah yang tepat, bisa menjadi dokumentasi, dan bisa untuk mengecek apakah dengan pengembangan suatu fitur merusak fitur lain.

TDD di Python?

TDD bukanlah konsep yang kita pelajari saat awal kita melakukan pemrograman atau coding menggunakan python dan bukan juga konsep yang harus kita terapkan untuk membuat program python yang dibuat berjalan sesuai dengan yang diinginkan. TDD adalah sebuah disiplin dalam pemrograman python dan seperti saat kita belajar bela diri, dibutuhkan guru yang keterlaluan dan mudah marah agar disiplin yang diajarkan bisa diterapkan. Guru atau master kita dalam TDD yang telah disepakati oleh komunitas testing menggunakan python adalah Testing Goat.

Kambing Gunung yang saat mendaki sangat lincah

Jika kita memutuskan untuk membuat sebuah website menggunakan python dan belum tahu apa yang ingin dilakukan, biasanya langkah pertama yang akan dilakukan adalah mencari framework dan mengkonfigurasinya sesuai dengan yang kita inginkan. Dalam TDD, kita harus menggunakan mindset yang berbeda yaitu dimulai dengan membuat tes terlebih dahulu.

Dalam TDD dengan python, framework yang tepat untuk mengimplementasikan TDD, karena mendukung tes yang sudah ada di dalam framework tesebut.

Implementasi

Pembuatan tes dalam aplikasi CRUD Ruangan:

Implementasi tes-1
Implementasi tes-2

Pembuatan fungsi sesuai dengan tes yang telah dibuat:

Fungsi-1
Fungsi-2

Mengecek dan refactor jika ada kesalahan yang mebuat fitur lain tidak berjalan.

Karena sudah 100% semua maka kita tidak membuat fungsi lain gagal dan kita melihat aspek dari fungsi dan tes yang dibuat untuk meningkatkan kualitas code.

References:

--

--