Pola Test Driven Development - TDD

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