Posted by keratonJava@gmail.com, 18 October 2014

Test ini bertujuan untuk menguji integrasi antara software kita dengan elemen luar. Elemen ini dapat berupa, database, network, atau framework thrid party yang digunakan. Dengan adanya test ini maka apabila terjadi perubahan terhadap elemen luar tersebut kita bisa cepat mengadaptasinya.

Setelah membahas menengai unit test, kali ini kita akan menjelaskan mengenai sebuah test jenis lain, yaitu test integrasi. Test integrasi bertujuan untuk menvalidasi integrasi antara elemen luar dengan software kita. Test ini haruslah terdapat pada bagian pheriperique dari software, bagian batas luar. Berikut adalah beberapa contoh dari test integrasi.

Test DAO

DAO atau Data access object adalah sebuah lapisan yang dibuat untuk menghubungkan antara software kita dengan elemen persistan yang biasanya berupa database. Database merupakan elemen luar dari sebuah software. Kita tidak boleh tergantung dengan sebuah database, karena dalam perkembangan sebuah software. Dapat terjadi kalau kita ingin mengubah database jenis satu dengan database jenis lain. Contoh yang sedang trend pada saat ini adalah migrasi dari database relasional menjadi database NoSQL.

Test integrasi disini adalah test pada lapisan tersebut. Disini mau tidak mau, test tersebut haruslah tergantung dengan jenis database yang digunakan. Tapi harus diperhatikan, walaupun test ini tergantung akan jenis database, tapi janganlah test tersebut terlalu tergantung akan isi dari database. Contohnya apabila kita hendak mengetest sebuah query "Select .." yang mencari sebuah data, maka kita harus memasukan data-data yang hendak dicari. Dengan demikian test kita terbebas dari isi database, test kita dapat dieksekusi di database mana saja, asalkan kompatible dengan database yang digunakan. Ini sangat berguna apabila kita hendak menggunakan In memory database, seperti H2 untuk kebutuhan test. Keuntungan In memory database adalah dapat dieksekusi dengan cepat karena mudah untuk di instansiasi.

Seringkali sangat susah untuk melakukan hal ini secara murni 100%. Apalagi kalau data yang ada sangatlah kompleks. Dalam hal ini tidaklah mengapa kalau beberapa data referensi sudah terdapat didalam sebuah database sebelum dijalankan sebuah test. 

Test ketergantungan dengan applikasi lain

Disebuah sistem informatika yang kompleks biasanya terdapat beberapa applikasi yang terpisah. Namun antara applikasi-applikasi tersebut dapat berkomunikasi dengan menggunakan koneksi jaringan. Disini test integrasi adalah untuk menvalidasi format koneksi yang digunakan. Karena format ini dapat berubah-ubah sesuai dengan perkembangan appliaksi yang dipanggil. Sebagai contoh dari service yang menggunakan format EJB (untuk applikasi JEE java) menjadi applikasi dengan menggunakan webservice. Dengan adanya test, kita dapat mengubah applikasi kita dengan cepat agar sesuai dengan format yang baru. 

Karena tergantung dengan ketersediaan akan applikasi lain, biasanya test ini sangat susah untuk diatur. Apalagi kalau sebuah sistem tidak memiliki sebuah lingkungan yang memang khusus untuk test integrasi. Mungkin tidak perlu untuk di test secara sering, tapi tetap harus dilakukan setelah terjadi perubahan format antar applikasi. Dan harus di ingat untuk menjalankan test ini haruslah berkoordinasi antara pengembang applikasi-applikasi lain.

Test integrasi framework

Framework digunakan sebagai alat bantu agar kita menjadi lebih produktif. Karena dengan menggunakan framework kita tidak perlu menulis sendiri dari scratch akan suatu kebutuhan. Namun framework tetap elemen luar dari applikasi kita. Janganlah applikasi terlalu tergantung akan sebuah framework. Sebagai contoh disini adalah dua logging framework yaitu log4j dan logback. Pada awalnya kita menggunakan log4j, namun setelah cukup lama berjalan ternyata logback lebih cocok untuk kebutuhan yang ada. Dengan menggunakan sebuah lapisan antara log4j dengan applikasi kita, migrasi ini menjadi lmudah dan lancar, karena yang dimodifikasi cuma bagian lapisan tersebut. Dan tentu saja untuk menvalidasi framework yang baru test integrasi tetap harus dilakukan.

Kesimpulan

Untuk menutup artikel ini, saya hanya ingin mengulang apabila software kita menggunakan elemen luar. Langkah pertama haruslah membuat lapisan antara elemen tersebut dengan software kita dan jangan lupa menambah test untuk lapisan tersebut untuk menvalidasi elemen luar tersebut.


Tagged with : craftsmanship test


comments powered by Disqus