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:
describe MyClass do
describe "#one" do
it "returns 'satu'" do
my_instance = MyClass.new
expect(my_instance.one).to eq "satu"
end
end
end
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:
class MyClass
def one
return "satu"
end
end
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:
# kode tes, method one menjadi satu
describe MyClass do
describe "#satu" do
it "returns 'satu'" do
my_instance = MyClass.new
expect(my_instance.satu).to eq "satu"
end
end
end
# implementasi, mengubah method one menjadi satu
class MyClass
def satu
return "satu"
end
end
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