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