Seminar Nasional Teknologi Informasi dan Komunikasi Terapan (SEMANTIK) 2015
191
Implementasi Karakteristik Sistem Multi-Agent Pada Pengujian Perangkat Lunak Elly Antika*), Prawidya Destarianto**), Hendra Yufit Riskiawan***) Politeknik Negeri Jember E-mail: *
[email protected], **
[email protected], ***
[email protected] 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
ISBN: 979-26-0280-1
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
192
Seminar Nasional Teknologi Informasi dan Komunikasi Terapan (SEMANTIK) 2015
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 dan white-box testing. Perangkat lunak yang sedang diuji akan disebut application-undertest (AUT). Rancangan sistem ditampilkan pada Gambar 1.
pengujian sesuai dengan fungsi masingmasing 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 instruksiinstruksi, 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
Test Case
Test Case Generation
Data Uji Functional Testing
Functional Testing
Agent Penguji 1 Unit Testing
Data Uji white-box Testing
White-box Testing
Data Uji Unit Testing
Functional Template
Unit Testing
Hasil Uji AUT
Test Result Interface Agent
Agent Penguji 2 White Box Testing
Finish
Gambar 2. Alur pengujian sistem Function Template
Agent Penguji 3 Functional Testing
Gambar 1. Rancangan arsitektur sistem yang dikembangkan Sebuah halaman web yang diajukan untuk diuji akan diterima oleh interface agent. Interface agent akan mendistribusikan tugas
ISBN: 979-26-0280-1
3. HASIL DAN PEMBAHASAN 3.1 Hasil Berdasarkan observasi yang dilakukan di PT. Bali Orange Communication, pengujian dilakukan terhadap aplikasi berbasis web yang dibangun bertujuan untuk memastikan program aplikasi berjalan sesuai
Seminar Nasional Teknologi Informasi dan Komunikasi Terapan (SEMANTIK) 2015
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.
No
Menu
White-box Testing: Menguji struktur data internal dari function yang digunakan pada pengelolaan jenis surat. Seluruh function berfungsi dengan baik.
Tabel 1. Hasil pengujian perangkat lunak menggunakan multi agen pada AUT1. No 1
2.
Menu Jenis Surat
Hak Akses
Pengujian oleh Sistem Functional Testing: Menguji 27 link, dari link hapus dan edit di masingmasing data yang ditampilkan. Semua link hidup dan 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. White-box Testing: Menguji struktur data internal dari function yang digunakan pada pengelolaan jenis surat. Seluruh function berfungsi dengan baik.
Functional Testing: Menguji 27 link, termasuk keseluruhan dari link hapus dan edit di masing-masing data yang ditampilkan. Semua link hidup dan sesuai target. Unit Testing: Menguji pengisian form sebanyak 3 kali. Pengujian
ISBN: 979-26-0280-1
Pengujian manual
3.
Functional Testing: Menguji 9 link. Semua link hidup dan terdapat satu link yang tidak sesuai target..
Rekam Surat Masuk
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 function berdasarkan indikator keberhasilan yang telah ditentukan. Banyaknya function yang diuji sebanyak 5 function. Seluruh function berfungsi dengan baik 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 6 kali pengujian.
Pengujian oleh Sistem terhadap input kosong tidak dilakukan. Hasil pengisian form gagal pada saat field hak akses dan keterangan diisi dengan string yang tidak diijinkan.
Functional Testing: Menguji 11 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.
White-box Testing: Menguji struktur data internal dari 12 function yang digunakan pada pengelolaan surat masuk. Seluruh function berfungsi dengan baik.
4.
Rekam Surat Keluar
193
Pengujian manual 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 function berdasarkan indikator keberhasilan yang telah ditentukan. Banyaknya function yang diuji sebanyak 5 function. Seluruh function berfungsi dengan baik Functional Testing: Menguji 9 link. Semua link hidup dan sesuai target. 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 function berdasarkan indikator keberhasilan yang telah ditentukan. Banyaknya function yang diuji sebanyak 2 function. Seluruh function berfungsi dengan baik
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
194
No
Seminar Nasional Teknologi Informasi dan Komunikasi Terapan (SEMANTIK) 2015
Menu
Pengujian oleh Sistem 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.
Pengujian manual diterbitkan kosong. .
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 1
Me Pengujian oleh nu Sistem Kota Functional Testing: Menguji 61 link. Semua link hidup. 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. White-box Testing: Menguji 6 function yang digunakan dalam pengelolaan data kota. Semua function berjalan dengan baik.
Pengujian manual Functional Testing: Menguji 4 link. Semua link hidup dan sesuai target. 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 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.
ISBN: 979-26-0280-1
Tabel 3. Karakteristik agen Karakteristik Agen Autonomy Intelligence Reasoning Learning Mobility Stationary Delegation Reactivity Proactivity Goal Oriented Communication Coordination Capability
Interface Agent
Agen Unit Testing -
Agen Function al testing -
Agen Whitebox -
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 Kesimpulan Dari 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
Seminar Nasional Teknologi Informasi dan Komunikasi Terapan (SEMANTIK) 2015
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: [2]
[3]
[4]
[5]
A Practitioner Approach 7th ed., McGraw-Hill, New York, 2010. 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. 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. 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. Woolridge, M., An Introduction to Multiagent Systems, John Wiley & Sons, Ltd., Chicheste, 2002.
ISBN: 979-26-0280-1
[6]
195
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