TDD 2.0

Benedictus Alvin
PDB+R
Published in
3 min readMar 18, 2019

Halo teman-teman semua. Saya Bene, salah satu Hacker dari kelompok PDB+R akan kembali membahas mengenai Test Driven Development. Sebab sebelumnya TDD saya belum disertai coverage nya (ㄒoㄒ)

Definisi

Test Driven Development (TDD) adalah salah satu pendekatan dalam pengembangan sebuah perangkat lunak yang mengkombinasikan pendekatan Test First Development (TFD) dan proses refactoring. Developer diharuskan membuat test terlebih dahulu agar pengembangan software dapat disesuaikan dengan kebutuhan dan keinginan.

Setelah test sudah dibuat, maka kita perlu melakukan pengimplementasian terhadap test yang dibuat hingga mencapai code coverage 100%. Code coverage dapat dilihat dari apakah test yang dijalankan sudah berjalan dengan benar serta apakah kode yang telah dijalankan sudah sesuai dengan test yang tersedia. Apa mungkin masih ada kode yang belum dibuat test nya?

Nah, untuk mempermudah pemantauan TDD dalam Agile Development maka proses pengembangan dibagi menjadi 3 tahap yang keterangannya akan kita tulis setiap kali commit dilakukan. Ketiga tahapnya yaitu :

  1. Red: Proses membuat test

Proses ini dilakukan saat kita membuat suatu project. Pertama kita harus membuat testnya. Setelah itu kita harus mengimplementasikan kodenya sehinnga memenuhi test yang dibuat.

2. Green: Kode yang diimplementasikan sudah memenuhi test

Proses ini muncul ketika kita sudah selesai mengimplementasikan kode sesuai test yang ada, serta dalam runner sudah di anggap lolos (green). Kita dapat melihat code coverage yang telah kita buat.

3. Refactor: Mengubah code guna meningkatkan kualitas software

Proses ini dilakukan setelah melewati tahap green, biasanya untuk merefactor code yang sudah tersedia agar lebih efisien tanpa mengubah fitur yang sudah ada.

Manfaat

Berikut manfaat dari penggunaan TDD dalam mengembangkan software, yaitu:

  • Program tetap sesuai dengan Acceptance Criteria yang diberikan client
  • Sebagai dokumentasi sejauh mana progress yang telah di lakukan
  • Lebih terarah dalam memikirkan dan membuat spesifikasi input-output project kita
  • TDD dapat mengurangi waktu untuk debug.

Implementasi dalam Kelompok

Membuat file test untuk CRUD Term / Periode. Contoh dalam hal ini adalah pada fitur CRUD Term untuk mengecek apakah url tersebut ada atau tidak.

Contoh Test pada CRUD Term

Setelah itu dilakukan implementasi test yang dalam hal ini pada urls.py dalam fitur app_crud_term.

Setelah membuat test, kita bisa mengecek code coverage melalui command:

Dan dapat melihat code coverage untuk CRUD_Term:

Hasil Code Coverage

Dari gambar diatas, terlihat code coverage nya sudah bernilai 100%, maka test yang dibuat sebelumnya telah berhasil dijalankan dan sudah mencakup pengimplementasian pada app_crud_term\urls.py.

Oke deh, sekian hal yang saya ingin kembali sampaikan terkait TDD. Doakan kembali semoga saya sanggup menghadapi rintangan-rintangan TDD di depan, dan pantau terus kelompok kami ya. Bye byeee d( ̄◇ ̄)b

--

--