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
C# DbContext ServiceLifeTime
my note about C Sharp ServiceLifeTime
PostgreSQL Index Usage Monitoring
Having too many unused or underused indexes on a table can slow down write and update operations in your PostgreSQL database, making it crucial to regularly identify and manage them for optimal performance.
KAK Labs Newsletter #6 - Staying Safe From Pegasus Spyware
Newsletter #6 - Pegasus, Ruby, PostgreSQL and networkQuality tool
Material Design - Paragraph Spacing
According to Google's Material Design, keep paragraph spacing in the range between .75x and 1.25x of the type size.
Amazon SDK for C# - S3 File Download Methods
Comparison between `TransferUtility.DownloadAsync`, `DownloadSingleFileAsync`, and `GetObjectAsync`.