Unit Testing Menggunakan JUnit
Testing adalah suatu mekanisme yang
vital di dalam software development, apalagi
jika kita adalah seorang developer yang tidak ingin program kita menjadi
program buangan alias tidak digunakan lagi pada saat pembuatan software sudah
selesai. Testing harus menjadi bagian yang penting dalam
software development.
Unit Testing
Unite testing adalah sebuah kode
yang ditulis oleh developer, yang digunakan untuk menguji bagian kecil/area
spesifik dari suatu fungsionalitas dari kode yang akan ditest. Unit testing
akan memperbaiki design code dan mengurangi waktu yang digunakan untukdebugging
secara drastis.
Unit testing dilakukan oleh
programmer yang menuliskan suatu modul/unit
tertentu. Test code tidak akan dikirimkan ke user, jadi hanya production code (kode yang digunakan dalam program utama) yang dikirim ke user. Unit testing dilakukan setelah programmer selesai menuliskan suatu kode/fungsi/method yang ada dalam
suatu class. Dapat juga dilakukan setelah menambahkan sebuah fungsionalitas baru atau setelah melakukan refactoring.
tertentu. Test code tidak akan dikirimkan ke user, jadi hanya production code (kode yang digunakan dalam program utama) yang dikirim ke user. Unit testing dilakukan setelah programmer selesai menuliskan suatu kode/fungsi/method yang ada dalam
suatu class. Dapat juga dilakukan setelah menambahkan sebuah fungsionalitas baru atau setelah melakukan refactoring.
Unit testing membutuhkan suatu
tools yang spesifik untuk tiap-tiap bahasa pemrograman. Dan tools tersebut
terpisah dengan bahasa pemrograman. Beberapa contoh tools yang digunakan pada
unit testing :
-
CUnit : digunakan untuk bahasa C
-
JUnit : digunakan untuk bahasa Java
-
VBUnit : digunakan untuk bahasa Basic
-
NUnit : digunakan untuk bahasa C# (baca: c-sharp)
-
PHPUnit : digunakan untuk bahasa PHP
Pada kasus ini akan dibahan unti test yang digunakan untuk bahasa Java (JUnit)
JUnit adalah sebuah testing
framework Java yang bersifat open source yang digunakan untuk menulis dan
menjalankan software testing secara berulang-ulang. JUnit
mengikuti arsitektur xUnit dalam membuat framework unit testing-nya.
JUnit dikembangkan oleh Erich Gamma dan Kent Beck. JUnit dapat diperoleh
dengan mendownload dari situs http://junit.sourceforge.net/. Permasalahan
utama yang sering muncul pada pengujian dengan metode konvensional adalah tidak
efisiennya penggunaan waktu. Menuliskan statement-statement debug ke dalam kode
adalah metode yang kurang efektif. Metode ini mengharuskan developer untuk
mengamati output program dengan cermat setiap kali program dijalankan untuk
memastikan program berjalan dengan benar. Dengan menggunakan JUnit untuk
mengkodekan ekspektasi-ekspektasi dalam bentuk Automated Unit Testing,
maka kegiatan pengujian menjadi lebih singkat.
Dalam unit testing, terdapat
beberapa aturan penamaan yang harus diikuti. Sebuah test class harus memiliki
nama yang sama dengan class yang akan di-test dan diberiprefix “test”.
Sebelum
melakukan testing, terlebih dahulu kita harus mengetahui aturan coding dengan
menggunakan JUnit, yaitu :
- Nama class test harus diakhri dengan “Test”.
- Mengimport JUnit -> import junit.framework.TestCase;
- Main class harus
- public
- meng-extend TestCase
- Method pada class harus
- public dan bukan static
- mengembalikan sebuah void
- tidak memiliki parameter
- nama method diawali dengan kata “test”
- Membuat method assert di dalam method test, misalnya
- assertTrue(boolean
condition) atau assertTrue(String message, boolean condition)
–> Menghasilkan error report apabila boolean false - assertEquals(expected,
actual) atau assertEquals(String message, expected, actual)
–> Menghasilkan error report apabila nilai expected dan actual tidak sama. - fail() atau fail(String
message)
–> Disebabkan karena test gagal.
Code Coverage dengan Menggunakan Cobertura
Coverage
testing
Testing yang dilakukan
untuk mengukur kecukupan suatu unit test, apakah unit test yang dibuat telah
meng-cover semua unit kode program. Analoginya, coverage test bekerja dengan
membandingkan jumlah kode program dengan jumlah unit testnya. Contoh tool yang
biasa digunakan cobertura.
Pada dasarnya,
code coverage dilaksanakan dengan menggunakan instrumentation. Instrumentation
adalah istilah yang digunakan untuk menunjukkan manipulasi aplikasi dengan cara
melakukan injeksi kode-kode untuk reporting ke dalam posisi-posisi tertentu
yang bisa menunjukkan bagian yang telah dicakup oleh test atau belum.
Instrumentasi dilakukand pada level source code atau level compiled. Pada level
source code, tool yang digunakan akan menginjeksikan kode instrumentasi ke
source code (mengubah source code) baru kemudian di kompilasi. Pada level
compiled, kode instrumentasi diinjeksikan setelah dikompilasi.
Tidak ada komentar:
Posting Komentar