TDD di Mata Kuliah PPL… Oh ini ya pentingnya..

Achmad Firdaus Adinegoro
temancatat
Published in
4 min readApr 3, 2018

Pertama kali mendengar kata TDD sebenarnya bukan di mata kuliah PPL (Proyek Perangkat Lunak) yang saat ini sedang saya ambil. Tetapi saya baru mengerti kepentingan dari pentingnya TDD ini di saat saya mengambil mata kuliah ini.

For your information, mata kuliah ini merupakan mata kuliah dimana kita diwajibkan untuk langsung terjun dan berpartisipasi di proyek yang diadakan oleh industri. Mata kuliah ini mewajibkan TDD sebagai metode developmentnya. Mata kuliah ini juga adalah alasan kenapa saya membuat blog ini, hehe.

TDD itu apa?

TDD merupakan singkatan dari Test Driven Development, sebuah metode development dimana pembuatan tes merupakan pokok-wajib-kudu-harus dilakukan dan diimplementasikan di setiap proses development. Mungkin yang kita tahu testing dilakukan hanya ketika program kita sudah jadi, yes? Yak TDD juga melakukan hal itu, tapi bukan hanya itu saja. TDD mengedepankan tes bahkan sebelum kodingan tersebut dibuat. Nah loh, kok bisa?

Jadi dalam TDD, sebelum kita melakukan implementasi kode. Kita biasanya membuat test-test terlebih dahulu. Hal ini selain dapat memvisualisasikan bagaimana program kita kedepannya akan dibuat seperti apa, pembuatan tes di awal juga dapat mempersiapkan programmer untuk melakukan antisipasi di bagian-bagian mana saja dari bagian kode yang rentan akan error.

Misalnya kemarin saya kebagian untuk melakukan konversi format dari suatu angka (misalnya 25000) ke format uang dengan tipe data String (misalnya 25,000.00). Maka yang akan saya lakukan pertama adalah membuat test dimana saya coba masukkan suatu input contoh dan output contoh. Input kemudian dimasukkan ke dalam kode yang saya masukkan, kemudian saya cek apakah keluarannya sesuai dengan ekspektasi saya.

@Test
public void testValidPriceFormatUS() {
assertTrue( priceUtil.convertPriceFormatUS(price).equals(expectedPriceUS)
);
}

Terus pentingnya dimana tuh?

Nah, pentingnya adalah ketika implementasi, pembuatan aplikasi di Android Studio tidak seperti membuat aplikasi untuk komputer… melakukan debugging susahnya minta ampun. Kenapa? karena tidak semua kode yang kita implementasikan di android dapat kita tes secara manual dengan commandline. Disinilah pentingnya testing dari tes-tes yang kita buat di awal berguna. Android studio dengan bantuan gradle (if configured correctly… thanks a lot my hustler) menyediakan fitur testing:

Testing

Kalau kita jalankan build tersebut kita dapat mengetahui bagian-bagian dari tes mana yang sudah benar dan bagian mana yang salah, dan hal ini bisa dilakukan dari komputer lokal.

Hasil testing

Nah kita bisa cek bagian-bagian tes yang salah dari halaman .html yang disediakan gradle di path app\build\reports\tests\testDebugUnitTest (kalau menggunakan build testDebug. Di halaman ini kita bisa mengetahui berapa persen dari tes kita yang berhasil dan tes-tes apa saja yang masih gagal. Contoh apabila saya coba sengaja “gagalkan” kode saya yang sudah diimplementasikan, hasil halaman testingnya akan menjadi seperti ini:

Dapat dilihat tes-tes mana saja yang gagal

Nah, kalau kita klik link yang dibawah kita bisa tahu jenis error apa yang muncul. Kalau dalam kasus saya ini assertion error, jadi apa yang output kode tidak seperti ekspektasi.

Assertion Failed Error

Nah, untuk mempermudah lagi, jika kamu ada print (misalnya System.out.println) di kode kamu (biasanya untuk debugging), gradle menyediakan tab khusus yang menunjukkan standard output yang keluar selama testing. Jangan lupa dihapus ya!

Misalnya ingin tahu output dari branch ini apa
Ada tab Standard output
Oh ternyata salahnya karena tidak ada minus. Pencarian error dapat lebih cepat!

Kurang lebih itulah yang saya berhasil dapatkan dari TDD di PPL ini. Tentunya masih banyak lagi keuntungan lain dari TDD. Tapi sampai saat ini yang paling impactful dari saya adalah.. ya seperti yang saya tulis di blog ini. Semoga bermanfaat dan sampai jumpa lagi~

--

--