Test Driven Development for Safe Deployment

Nanda Dharma Wangsa
PPL SeLaw
Published in
3 min readApr 18, 2019

Test Driven Development (TDD) adalah pengembangan perangkat lunak dengan sirkulasi pengembangan yang pendek, yaitu membuat test case lalu mengimplementasikan code untuk melewati test tersebut. Lalu kenapa kita menggunakan TDD?

Testing penting untuk kita lakukan, namun testing secara manual tidak efektif karena ada kemungkinan kasus atau line of code yang tidak dicoba, namun alasan kenapa TDD adalah karena TDD adalah cara paling sederhana dalam mendapatkan kualitas kode yang baik dan code coverage yang baik.

Pada artikel kali ini akan menjelaskan tentang TDD dikaitkan dengan apa yang telah dikerjakan di tim SeLAW PPL 2019. TDD terdapat 3 fase, yaitu RED, GREEN, dan REFACTOR.

cycle of TDD

Phase 1: RED

Pada fase ini kita membuat serangkaian test case yang masih fail. Tujuan dari pembuatan tes ini adalah menentukan seperti apa fitur yang kita inginkan. Dalam teknis pembuatannya, sebuah test dimulai dengan fungsi setUp untuk membuat kondisi percobaan, lalu dilanjutkan dengan test case nya. Pada fitur kali ini kita mencoba fitur untuk Unvote dari peran Voter pada aplikasi kami.

Phase 2 : GREEN

Pada fase ini kita mengimplementasikan kode yang cukup untuk melewati test saja. Kita mengimplementasikan code untuk melakukan Unvote saja. Setelah itu kita memastikan apakah code coverage kita berhasil menjalankan semua line of code.

Ya, kita berhasil mendapatkan 100% code coverage!

Phase 3 : REFACTOR

Fase ini dijalankan ketika ada pembaruan terhadap fitur. Alurnya sama seperti pada gambar pertama pada artikel ini, yaitu kembali pada fase RED dan dilanjutkan menjadi siklus yang berkelanjutan hingga pengembangan berhenti.

Esensi yang kita dapat dari TDD adalah, ketika kode berhasil diimplementasi kita tidak perlu lagi untuk mencoba kode secara manual atau mencoba satu persatu, tetapi dengan adanya test kita bisa secara otomatis mengetahui apakah kode kita berhasil atau tidak. Dengan kata lain, TDD memudahkan kita untuk Debugging, dimana kegiatan itu akan sangat sulit ketika skala kode kita sudah sangat besar.

--

--