TDD ( Test Driven Development)

Akhir tahun 2013 lalu mendapat sebagai predikat pegawai baru di sebuah perusahaan yang bernama eComindo, pada awal masuk kantor tersebut langsung mendapat project dan pengerjaannya mengimplement TDD( Test Driven Development). Ih waw banget kaaan? secara metodenya aja belum tau gimana, terus harus implement gitu di project ini? *begitulah kata saya dalem hati*.

Tapi karna dapet mentor yang sangat luar biasa hebatnya, akhirnya sedikit demi sedikit paham tentang metode ini dan bisa di implementasi di project, TE O PE BE GE TE deh buat bapak mentor 🙂

Kira-kira begitulah perkenalan saya sama si TDD ini, nah sekarang kita bahas yuk TDD-nya 😀

TDD (Test Driven Development) itu adalah sebuah pendekatan dalam pembuatan software yang membuat testing code terlebih dahulu kemudian implementasinya, biasanya kita kalau membuat program pasti dibuat dulu programnya baru di test tetapi ini berbeda, justru di test dulu dan implementasi programnya belakangan. Testing code disini merupakan script testing yang meliputi semua kemungkinan terjadinya kesalahan agar implementasinya sudah bisa menutup kesalahan-kesalahan yang kemungkinan terjadi.

Siklus dari TDD ini adalah

  1. Testing code,  dimana ini disebut zona merah
  2. Implementasi code,   zona merah yang sebelumnya harus menjadi hijau tanpa mengubah apapun dari testing code *intinya g boleh akal-akalan* :p
  3. Refactor code, ini biasanya membuat code lebih ciamik lagi dalam artian codenya bisa dibuat lebih simple.

Keren kaan??? si programmer harus memikirkan gimana caranya membuat skrip test case lewat coding :p

Nah terus gimana caranya? disini lah kita akan bahas dasarnya dulu untuk lebih lanjutnya tunggu seri berikutnya yaaaah 🙂

 

disini kita akan implementasi pake bahasa pemrograman C# dan IDE-nya adalah visual studio 2012.

  • Buat project baru pada window visual studio  File -> New -> Project (Ctrl + Shift + N) 
  • Pada dialox box new project expand Visual C# dan pilih Console Application dan beri nama TestDrivenDevelopment kemudian klik Ok, seperti gambar dibawah

langkah2

  • Kemudian di Solusion Explorer yang disebelah kanan, Klik kanan -> Add -> New Project

langkah4

  • Pada dialog box New Project expand Visual C# dan pilih Test -> Unit Test Project, Beri nama TDDTest

langkah5

 

  • Kemudian Solusion Explorer yang ada di sebelah kanan, klik kanan TDDTest -> Reference pilih Add Reference

langkah6

  • Dan pada dialog box Add Reference pilih Solusion dan centang TestDrivenDevelopment

langkah7

  • Nah, setelah persiapan tadi udah selesai mari kita code 🙂

Ceritanya kita akan membuat program pengecekkan bilangan prima *bikin yang simple aja dulu :p *

program ini pada dasarnya sama dengan program yang lainnya yakni mengecek bilangan yang dimasukkan itu adalah bilangan prima atau bukan,

x : aaah, kok mau bikin program ngecek bilangan prima aja kok ribet banget siiiih???!!!!!!!

y : ya, namanya juga bikin programnya pake implementasi metode TDD, jadi harus ikut gimana aturan maennya TDD biar g dibilang curang :p

nah setelah selesai debat mari kita lanjut bahasnya 🙂

Inget yaaa, aturan yang dipakai itu ada 3,

  1. Zona Merah, Ketika kita baru bikin unit test
  2. Zona Hijau, ketika kita sudah implementasi code
  3. Zona Refactor, ketika code yang sudah diimplementasi diperiksa lagi dan hapus code-code yang sebenernya tidak perlu.

Mari kita lanjut kaaaan 🙂

Sebelum kita membuat codenya, mari kita buat interfacenya dulu, tujuannya apa bikin interface? dengan adanya interface ini kita akan mengetahui design by contract dari program yang akan kita buat.

Nah, pada Solusion Explorer klik kanan pada TestDrivenDevelopment -> Add -> New Item

langkah8

kemudian pada dialog box pilih Visual C# Items -> Interface -> beri nama IPrimes.cs

langkah9

pada IPrimes.cs isikan code seperti ini :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace TestDrivenDevelopment
{
public interface IPrimes
{
///
/// Check number is that prime or not
////// will return bool value, if number is prime value is true other wise false
bool IsPrime(int number);
}
}

Setelah membuat interface untuk pengecekannya sekarang kita akan membuat script untuk testnya

Pada Solusion Explorer expand TDDTest  dan pada file UnitTest1.cs ketikkan code berikut

using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TestDrivenDevelopment;namespace TDDTest
{
[TestClass]
public class UnitTest1
{
private IPrimes _service;[TestInitialize()]
public void TestInit()
{
_service = new Program();
}/// <summary>
/// Check prime positif case
/// will give number has a prime
/// ex : 2, 3, 5, etc
/// </summary>
[TestMethod]
public void CheckBilangan_PositifCase()
{bool result = _service.IsPrime(2);

Assert.IsTrue(result);

}

/// <summary>
/// Check prime negatif case
/// will give number does not a prime
/// ex : 4, 6, 8, etc
/// </summary>
[TestMethod]
public void CheckBilangan_NegatifCase()
{
bool result = _service.IsPrime(4);

Assert.IsFalse(result);

}
}
}

setelah script testnya sudah jadi, lalu klik kanan pada class UnitTest1 kemudian pilih Run Test

Langkah10

 

Dan hasilnya akan menjadi seperti gambar dibawah(lihat sebelah kiri) dan inilah yang disebut dengan Zona Merah

Langkah11

 

Zona Merah sudah kita lalui selanjutnya kita akan membuat Zona Hijau

Pada Solusion Explorer  expand TestDrivenDevelopment pada file Program.cs ketikkan program berikut

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace TestDrivenDevelopment
{
public class Program : IPrimes
{
public Program() { }public bool IsPrime(int number)
{bool result = true;

for (int i = 2; i <= number; i++)
{
if (number % i == 0)
{
result = false;
break;
}
}

if (number == 2) result = true;

if (number == 0 || number == 1) result = false;

return result;
}

static void Main(string[] args)
{
}
}
}

dan setelah code diatas diimplementasi, coba jalankan sekali lagi UnitTest-nya, dan hasilnya akan menjadi Zona Hijau  *horeeeeeeeeee*

Langkah12

 

sekarang, karena program sudah ada pada tahap di Zona Hijau langkah selanjutnya adalah Zona Refactor

Pada Test Explorer block kedua Unit Test kemudian klik kanan pilih Analyse Code Coverage for Selected Tests 

Langkah13

Tunggu beberapa saat *mungkin bisa bikin mie dulu :p* kemudian akan muncul window seperti gambar dibawah, expand testdrivendevelopment.exe -> TestDriventDevelopment -> Program 

Langkah14

 

klik kanan pada IsPrime -> Go to source code

Langkah15

 

dan hasilnya akan seperti gambar dibawah, lihat lah pada code yang berwarna ungu kemerahan dikit (pokoknya yang warnanya beda) :p

Langkah16

 

Nah, dari situ udah ketauan mana yang mesti disederhanain lagi kan codenya? hehehehehe

bisa kan benerin sendiri? :p

 

 

udah dulu yaaaa mudah-mudahan bermanfaat 🙂

 

Leave a comment