Test Driven Development - TDD
- Categories:
- software engineering
Menurut pengalaman pribadi dan mudah dipahami, menurut saya TDD atau Test Driven Development adalah metode development software dengan melakukan tiga fase, yaitu “Red-Green-Refactor”.
Fase Merah atau Red
Fase Red yang dimaksud disini adalah tulis test case terlebih dahulu. Tes tersebut dijalankan dan pasti hasilnya gagal / merah karena kode implementasi software memang belum ditulis. Contoh test case dalam bahasa pemrograman Ruby:
kode diatas tujuannya melakukan tes terhadap method one dari class MyClass
.
Fase Hijau atau Green
Fase Green adalah fase dimana kita melakukan implementasi kode agar test case sukses. Contoh:
Ketika test case ketika fase red dijalankan kembali, bisa dipastikan bahwa hasilnya adalah hijau atau sukses.
Fase Refactor
Fase refactor ini adalah fase untuk melakukan perubahan kode agar menjadi lebih baik. Fase refactor hanya dilakukan setelah semua test case sukses atau hijau semua, tidak ada yang gagal. Contoh refactor:
Tiga proses diatas dilakukan berulang - ulang saat hingga program yang kita inginkan selesai. Karena proses pembuatan perangkat lunak dilakukan berdasarkan tes yang dibuat, bisa dipastikan kode implementasi yang kita buat tidak melenceng kemana - mana dan hanya menuliskan kode sesuai dengan tes yang dibuat.
Dengan adanya tes, kelebihan lainnya adalah ketika menulis kode untuk fitur lain, kita bisa mengecek apakah membuat error fitur yang lainnya tersebut.
Gambar oleh Jan Olbrich
Recent Posts
How to Defend Against Brute-Force and DoS Attacks with Fail2ban, Nginx limit_req, and iptables
In this tutorial, I’ll explain how to protect your public-facing Linux server and Nginx web server from common threats, including brute-force and DoS attacks.
Is Getting AWS Solutions Architect Associate Certification Worth It?
If you are a full-time Software Engineer, there's no strong need to pursue this certification.
DevSecOps
My Notes about DevSecOps
AWS Secrets Manager
Explanation about AWS Secrets Manager with example code.
Envelope Encryption
Envelope encryption is the practice of encrypting plaintext data with a data key, and then encrypting the data key under another key.