Implementasi Karakteristik Sistem Multi-Agent Pada Pengujian Perangkat Lunak
Elly Antika*), Prawidya Destarianto**), Hendra Yufit Riskiawan***)
Politeknik Negeri Jember E-mail: *ellyantika.niam@gmail.com
,**destaryan@yahoo.com, ***hendra.yufid@gmail.com
Abstrak
Software pengujian memiliki peran penting dalam menjaga kualitasnya. Pentingnya menciptakan perangkat lunak berkualitas tinggi melalui pengujian perangkat lunak dengan menggunakan sumber daya yang minim dengan pengujian perangkat lunak otomatis. Otomatisasi pengujian perangkat dapat dilakukan dengan berbagai metode. Agen dapat menciptakan tanggapan berdasarkan masukan tanpa intervensi manusia. Sifat otonom sistem berbasis agen dapat digunakan pada pengujian perangkat lunak untuk menyederhanakan perulangan proses dan otomatisasi pengujian dengan berbagai skenario pengujian. Penelitian ini mengusulkan suatu sistem pengujian perangkat lunak yang menerapkan sistem teknologi berbasis multi agen. Multi agen cerdas yang dikembangkan terdiri dari empat agen, agen interface, agen unit testing, agen functional testing dan agen white-box testing. Semua agen akan memiliki kesamaan dalam hal keterampilan komunikasi, otonomi, dan berkolaborasi untuk mencapai tujuan dari sistem. Ke empat agen melakukan tugas mereka secara otonom dan memiliki orientasi hasil yang jelas. Berdasarkan hasil evaluasi uji yang dilakukan oleh sistem memberikan hasil yang sama dan bahkan lebih komprehensif dibandingkan dengan pengujian manual, karena kemampuannya untuk melakukan pengujian di seluruh elemen yang ditemukan. Sementara pengujian internal struktur data program dilakukan oleh agen white-box testing bisa menjawab prinsip-prinsip pengendalian
Kata kunci: multi-agent, software testing, hybrid testing.
1. PENDAHULUAN
Perangkat lunak diartikan sebagai kumpulan instruksi yang membentuk suatu program komputer yang apabila dijalankan akan memberikan hasil sesuai dengan target yang telah ditentukan [1]. Kemajuan perkembangan perangkat lunak diberbagai bidang kehidupan manusia menyebabkan ketergantungan manusia terhadap perangkat lunak semakin besar [2]. Kondisi tersebut meningkatkan arti penting keberadaan perangkat lunak yang berkualitas baik dan
reliable.
Perangkat lunak yang dikembangkan di era modern memiliki kompleksitas yang tinggi, sehingga meningkatkan tingkat kesulitan dalam melakukan pengujian. Hal tersebut seringkali menyebabkan manajer proyek memutuskan untuk mengurangi aktivitas ataupun sumber daya yang diperlukan untuk melakukan pengujian perangkat lunak [3]. Berawal dari kondisi tersebut, penelitian mengenai pengujian perangkat lunak saat ini mengarah pada bagaimana cara melakukan
pengujian perangkat lunak yang mampu menjaga kualitas perangkat lunak dengan baik dengan sumber daya yang sedikit [2]. Sistem berbasis agen merupakan teknologi yang sesuai untuk menyelesaikan permasalahan yang kompleks dan dalam lingkungan yang terdistribusi [4]. Woolridge [5] menyatakan bahwa salah satu karakteristik utama dari sistem berbasis agen adalah sifat otonom. Agen mampu memberikan reaksi berdasarkan berbagai masukan yang diberikan lingkungan tanpa ada intervensi dari manusia. Otomatisasi pengujian perangkat lunak diartikan sebagai sebagai proses pengujian perangkat lunak yang memanfaatkan perangkat lunak lain yang dirancang khusus untuk menjalankan tes pada suatu perangkat lunak dan membandingkan hasilnya dengan keluaran yang diharapkan [6].
Pengujian perangkat lunak secara otomatis dapat meningkatkan efisiensi proses pengujian untuk mengidentifikasi bagian dari perangkat lunak yang rawan mengalami
kegagalan. Pengujian perangkat lunak secara otomatis bisa dilakukan dengan menggunakan metode white-box testing, unit
testing dan functional testing. Karakteristik
yang dimiliki dari metode pengujian perangkat lunak ini memperluas area yang mampu diuji secara otomatis sehingga mampu mengurangi beban dari penguji perangkat lunak [7].
Sesuai dengan paparan diatas maka pada penelitian ini ingin menawarkan sebuah solusi pengujian perangkat lunak menggunakan metode Pengujian Hibrida dengan memanfaatkan pendekatan sistem multi agen untuk membangun sistem pengujian perangkat lunak otomatis. Tujuan dari penelitian ini adalah membangun sistem pengujian perangkat lunak otomatis dengan metode Pengujian Hibrida menggunakan pendekatan teknologi berbasis multi agen.
2. METODE PENELITIAN
Sistem pengujian perngkat lunak yang dikembangkan dalam penelitian ini merupakan sistem pengujian perangkat lunak multi agen yang terdiri dari 4 agen. Agen pertama adalah interface agent dan tiga agen lainnya adalah agen penguji yang memiliki tugas melakukan pengujian sesuai dengan metode pengujian yang sudah ditentukan yaitu unit testing, functional testing danwhite-box testing. Perangkat lunak yang
sedang diuji akan disebut
application-under-test (AUT). Rancangan sistem ditampilkan
pada Gambar 1.
AUT Test Result
Function Template Interface Agent Agent Penguji 1 Unit Testing Agent Penguji 2 White Box Testing
Agent Penguji 3 Functional
Testing Test Case Generation
Gambar 1. Rancangan arsitektur sistem
yang dikembangkan
Sebuah halaman web yang diajukan untuk diuji akan diterima oleh interface agent.
Interface agent akan mendistribusikan tugas
pengujian sesuai dengan fungsi masing-masing agen penguji. Pengujian dilakukan per halaman yang ada pada web yang digunakan dalam penelitian. Fungsi lain dari
interface agent adalah mengatur interaksi
dengan pengguna sistem.
Agen unit testing menguji bagaimana perilaku perangkat lunak apabila menerima masukan data yang tidak sesuai dengan yang seharusnya diterima. Agen white-box testing. Pada bagian ini akan menguji struktur logika yang ada pada kode program. Pengujian dilakukan dengan mengeksekusi instruksi-instruksi, kondisi maupun perulangan. Setiap agen penguji akan memberikan laporan apakah halaman web yang diuji lolos tahap uji atau masih memerlukan perbaikan menurut pengujian yang dilakukan.
Agen functional testing, pada bagian ini agen menguji fungsionalitas dari halaman web. Langkah-langkah pengujian: melakukan pengecekan dalam function template untuk mengetahui fungsionalitas dari halaman web yang diuji, membandingkan kesesuaian fungsi yang sudah ada pada halaman web dengan fungsi yang tersimpan pada function
template. Alur pengujian perangkat lunak
multi agen dapat dilihat pada gambar 2
.
Start Halaman Web
Pembagian Jenis Uji Data Uji Functional Testing Data Uji white-box Testing Data Uji Unit Testing Functional Testing White-box
Testing Unit Testing Hasil Uji Finish Test Case Functional Template
Gambar 2. Alur pengujian sistem
3. HASIL DAN PEMBAHASAN
3.1 HasilBerdasarkan observasi yang dilakukan di PT. Bali Orange Communication, pengujian dilakukan terhadap aplikasi berbasis web yang dibangun bertujuan untuk memastikan program aplikasi berjalan sesuai
software requirement spesification (SRS)
yang disepakati dengan pengguna. Selanjutnya, dilakukan pengujian terhadap aplikasi tersebut dengan User Acceptance
Test (UAT) sebelum diserahterimakan kepada
pengguna untuk digunakan. Sehingga diharapkan sistem pengujian berbasis multi agen ini dapat digunakan sebagai alat bantu pengujian sebelum tahap UAT dilaksanakan. Dalam penelitian ini, AUT yang digunakan sebagai objek pengujian adalah perangkat lunak berbasis web yang diperoleh dari PT. Bali Orange Communication. AUT yang dijadikan objek pengujian yaitu Sistem Pengarsipan Surat sebagai AUT1 dan Sistem Informasi Registrasi sebagai AUT2.
Tabel 1. Hasil pengujian perangkat lunak menggunakan multi agen pada AUT1. No Menu Pengujian oleh
Sistem Pengujian manual 1 Jenis Surat Functional Testing: Menguji 27 link, dari link hapus dan edit di masing-masing data yang ditampilkan. Semua
link hidup dan
sesuai target.
Functional Testing:
Menguji 9 link. Semua link hidup dan terdapat satu link yang tidak sesuai target.. Unit Testing: Menguji pengisian form sebanyak 3 kali. Pengujian terhadap input kosong tidak dilakukan. Hasil pengisian form
gagal pada saat kode jenis surat diisi dengan string yang tidak diijinkan. Unit Testing: Menguji pengisian form sebanyak 6 kali pengujian. Pengisian form
gagal apabila salah satu field input
kosong atau field kode jenis surat diisi dengan string yang tidak diijinkan.
White-box Testing:
Menguji struktur data internal dari
function yang digunakan pada pengelolaan jenis surat. Seluruh function berfungsi dengan baik. White-box Testing: Menguji function berdasarkan indikator keberhasilan yang telah ditentukan. Banyaknya function yang diuji sebanyak 5 function. Seluruh function berfungsi dengan baik 2. Hak Akses Functional Testing: Menguji 27 link, termasuk keseluruhan dari link hapus dan edit di masing-masing
data yang
ditampilkan. Semua
link hidup dan
sesuai target.
Functional Testing:
Menguji 9 link. Semua link hidup dan sesuai target. Link edit dan hapus data tidak diuji secara keseluruhan. Unit Testing: Menguji pengisian form sebanyak 3 kali. Pengujian Unit Testing: Menguji pengisian form sebanyak 6 kali pengujian.
No Menu Pengujian oleh Sistem Pengujian manual terhadap input kosong tidak dilakukan. Hasil pengisian form
gagal pada saat field
hak akses dan
keterangan diisi dengan string yang tidak diijinkan.
Pengisian form
gagal apabila field
input hak akses
kosong. Apabila
field keterangan kosong maka proses
simpan tetap
berhasil. Proses
simpan tetap
berhasil apabila field keterangan diisi dengan string yang tidak diijinkan.
White-box Testing:
Menguji struktur data internal dari
function yang digunakan pada pengelolaan jenis surat. Seluruh function berfungsi dengan baik. White-box Testing: Menguji function berdasarkan indikator keberhasilan yang telah ditentukan. Banyaknya function yang diuji sebanyak 5 function. Seluruh function berfungsi dengan baik 3. Rekam Surat Masuk Functional Testing: Menguji 11 link. Semua link hidup dan sesuai target.
Functional Testing:
Menguji 9 link. Semua link hidup dan sesuai target.
UnitTesting: Menguji pengisian form sebanyak 3 kali. Pengujian terhadap input kosong tidak dilakukan. Hasil pengisian form
gagal pada saat field nomor surat diisi dengan string yang tidak diijinkan. UnitTesting: Menguji pengisian form sebanyak 5 kali pengujian. Pengisian form
gagal apabila field
input nomor surat,
pengirim surat atau kota tampat surat diterbitkan kosong. Pengisian form juga mengalami kegagalan bisla field nomor surat diisi dengan string yang tidak diijinkan.
White-box Testing:
Menguji struktur data internal dari 12
function yang digunakan pada pengelolaan surat masuk. Seluruh function berfungsi dengan baik. White-box Testing: Menguji function berdasarkan indikator keberhasilan yang telah ditentukan. Banyaknya function yang diuji sebanyak 2 function. Seluruh function berfungsi dengan baik 4. Rekam Surat Keluar Functional Testing: Menguji 11 link. Semua link hidup namun 6 link tidak sesuai target.
Functional Testing:
Menguji 9 link. Semua link hidup namun 6 link tidak sesuai target. UnitTesting: Menguji pengisian form sebanyak 3 kali. Pengujian terhadap input kosong tidak dilakukan. Hasil pengisian form
gagal pada saat field
UnitTesting:
Menguji pengisian form sebanyak 5
kali pengujian.
Pengisian form
gagal apabila field
input nomor surat,
penerima surat atau kota tempat surat
No Menu Pengujian oleh Sistem
Pengujian manual
nomor surat diisi dengan string yang tidak diijinkan.
diterbitkan kosong. .
White-box Testing:
Menguji struktur data internal dari 12
function yang digunakan pada pengelolaan surat masuk. Seluruh function berfungsi dengan baik. White-box Testing: Menguji function berdasarkan indikator keberhasilan yang telah ditentukan. Banyaknya function yang diuji sebanyak 4 function. Seluruh
function berfungsi dengan baik.
Tabel 2. Hasil pengujian perangkat lunak menggunakan multi agen pada AUT2
No Me nu Pengujian oleh Sistem Pengujian manual 1 Kota Functional Testing: Menguji 61 link. Semua link hidup.
Functional Testing:
Menguji 4 link. Semua link hidup dan sesuai target.
UnitTesting: Dilakukan 3 kali pengujian untuk melakukan pengisian form. Pengujian terhadap masukan kosong tidak dilakukan. Proses input data gagal apabila nama atau kode kota diisi dengan karakter non alfa numerik.
UnitTesting:
Dilakukan 5 kali pengujian
pengisian form. Proses gagal apabila salah satu
field input baik kota maupun propinsi kosong. Proses juga mengalami
kegagalan apabila nama kota diisi dengan karakter non alfanumerik. White-box Testing: Menguji 6 function yang digunakan dalam pengelolaan data kota. Semua function berjalan dengan baik. White-box Testing: Menguji 3 function yang digunakan dalam pengelolaan kota berdasarkan indikator keberhasilan yang telah ditentukan. Semua function berjalan dengan baik.
3.2 Pembahasan berdasarkan evaluasi karakteristik sistem agen
Karakteristik yang dimiliki oleh keempat agen dalam penelitian ini berdasarkan atribut dan karakteristik agen menurut Woolridge [5] tertulis pada tabel 3.
Tabel 3. Karakteristik agen
Karakteristik Agen Interface Agent Agen Unit Testing Agen Function al testing Agen White-box Autonomy Intelligence Reasoning - - - - Learning - - - - Mobility - - - - Stationary Delegation Reactivity Proactivity - - - - Goal Oriented Communication - - - - Coordination Capability - - -
Agen dapat melakukan tugas secara mandiri, memiliki kemampuan kontrol terhadap setiap aksi yang dilakukan sehingga dapat mencapai tujuan dalam melakukan tugasnya secara mandiri, memiliki pengetahuan internal berupa kemampuan
parsing dan identifikasi baris-baris program,
melakukan generate terhadap test case yang diperlukan, serta melakukan pengujian terhadap baris-baris program dengan ketiga metode pengujian yang ditugaskan. Namun agen belum memiliki kemampuan learning untuk beradaptasi dalam perubahan lingkungan.
Aspek komunikasi antara agen dengan pengguna diakomodir dalam antarmuka pengguna sistem. Sedangkan aspek komunikasi, koordinasi, dan kolaborasi antara agen dengan agen lain masih terstruktur dan terkondisikan, dengan kata lain belum ada bahasa standar untuk berkomunikasi dan berkoordinasi antar sesama agen didalam sistem.
4. KESIMPULAN
4.1 KesimpulanDari hasil penelitian yang telah dilakukan dapat diambil beberapa kesimpulan. Yang pertama, sistem pengujian perangkat lunak dapat menjalankan proses pengujian dengan metode unit testing,
functional testing, dan white box secara
simultan. Yang kedua, karakteristik agen yang dimiliki memungkinkan agen melakukan tugasnya secara otonom dan berorientasi pada hasil yang jelas yakni melaksanakan pengujian terhadap AUT dan menghasilkan laporan hasil pengujian. Yang ketiga, berdasarkan hasil evaluasi pengujian yang dilakukan oleh sistem memberikan hasil
yang sama dengan pengujian manual, bahkan pada beberapa kasus pengujian didapatkan hasil yang lebih rinci dibandingkan pengujian manual.
5. DAFTAR PUSTAKA
[1]
Pressman, R.S., Software Engineering: A Practitioner Approach 7th ed., McGraw-Hill, New York, 2010.[2] Yuan, G., Study Of Implementation of Software Test Management System Based on Web. IEEE 3rd International Conference on Communication Software and Networks, 708–711, 2011. [3] Konka, B., A Case Study on Software Testing Methods and Tools, Tesis, Department of Computer Science and Engineering. University of Gothenburg, Göteborg, Sweden, 2011.
[4] Dhavachelvan, P. and Uma, G. V, Complexity Measures for Software Systems: Toward Multi-agent based Software Testing. In Proceeding of 3rdInternational Conference on Intelligent Sensing and Information Processing (ICISIP). Chennai, India, 14–17, 2005.
[5] Woolridge, M., An Introduction to Multiagent Systems, John Wiley & Sons, Ltd., Chicheste, 2002.
[6] Dustin, E., Rashka, J. and Paul, J., Automated Software Testing: An Introduction, Management and Performance 1st ed., Addison-Wesley, Upper Saddle River, New Jersey. 2008. [7] Catelani, dkk., Software Automated
Testing: A Solution to Maximize The Test Plan Coverage and to Increase Software Reliability and Quality in Use. Computer Standards & Interfaces, 33, 2, 152–158. 2011.
[8] lshahwan, N. and Harman, M., Automated web application testing using search based software engineering, 26th IEEE/ACM International Conference on Automated Software Engineering (ASE 2011), 3– 12, 2011.
[9] Vengattaraman, T., Abiramy, S., Dhavachelvan, P. and Baskaran, R., An application perspective evaluation of multi-agent system in versatile environments. Expert Systems with Applications, 38, 3, 1405–1416, 2011 [10] Dan, W. and Song, M., Multi-agents
based for Humanistic Intelligent Class Scheduling System. In Proeeding of Third International Symposium on Information Science and Engineering. Shanghai, 476–480, 2010.
[11]Weiss, G., Multiagent Systems A Modern Approach to Distributed Modern Approach to Artificial Intelligence 3rd ed., MIT Press, Cambridge, Massachusetts, 2013