Jumat, 15 Juni 2012

Software Penguji Aplikasi (DBUnit)

A. Tingkatan-Tingkatan Resting

1) Unit testing

Unit test digunakan untuk mengetes bagian terkecil (unit detail) dari suatu software dan biasanya dikerjakan oleh developer dengan membuat mock object untuk ditesnya. Unit test menjalankan test pada semua function atau method, apabila terjadi error pada tiap unit kode programnya, maka developer akan melakukan refactoring terhadap kodenya.

Untuk teknologi bahasa pemrograman java, unit tes dilakukan dengan menggunakan framework junit.

2) Integrated testing

Integrated testing digunakan untuk mengetes suatu software yang terdiri dari modul-modul yang terintegrasi atau bisa juga terintegrasi dengan suatu database. Contoh tool yang digunakannya adalah DBUnit.

3) 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.

4) System testing

Merupakan testing keseluruhan dari suatu software. System testing ini biasanya merunut pada Terdiri dari berbagai jenis tes, yaitu: user interface testing, usability testing, performance testing, compability testing, error handling testing, load testing, volume testing, stress testing, user help testing, security testing, scalability testing, capability testing, sanity testing, regression testing, reliability testing, recovery testing, instalation testing, maintenance testing.

B. Pengertian DBUnit

Pengujian data akses merupakan salah satu jenis pengujian spesifik untuk teknologi tertentu. DBUnit merupakan keluarga dari JUnit yang digunakan untuk pengujian data akses. Pengujian DBUnit menggunakan file XML sebagai "data set" dimana data set tersebut seolah-olah merupakan hasil pengolahan data. File XML tersebut akan digunakan untuk membandingan hasil akses data yang sebenarnya. Jadi, dalam pengujian dengan DBUnit diperlukan akses ke database.

C. Implementasi DBUnit

DBUnit dapat me-reset kondisi database sesuai keinginan setiap kali test akan dijalankan.

Caranya adalah harus buat test data, yaitu satu record berisi data admin:test dalam tabel user. Test data ini disimpan dalam file checkLogin.xml

<dataset>

<user id='1'

username='admin'

password='admin'

/>

</dataset>

Sebelum test dimulai, pastikan database direset. Tambahkan method berikut di kode test:

public class DatabaseAccess extends junit.framework.TestCase{

public void testCheckLogin() {

// reset database

prepareDatabase();

DatabaseAccess db = new DatabaseAccess();

// asumsikan ada username admin dan password admin di database

assertTrue(db.checkLogin("admin", "secret"));

// coba dengan user sembarang, harusnya akan menghasilkan false

assertFalse(db.checkLogin("admin", "gakada"));

}

private void prepareDatabase(){

DatabaseOperation.CLEAN_INSERT.execute(dbConn, getTestData());

}

private IDataSet getTestData(){

return new FlatXmlDataSet(new FileInputStream("checkLogin.xml"));

}

}

DBUnit akan me-reset isi database development. Pastikan test dijalankan di DATABASE DEVELOPMENT, dan bukan DATABASE PRODUCTION.


 

Referensi :

labs.if.undip.ac.id

http://divitri.wordpress.com/2008/01/05/software-testing-part-2/

http://endy.artivisi.com/blog/java/ruthless-testing-1/