digilib@itb.ac.id +62 812 2508 8800

Pengujian mutasi adalah salah satu metode untuk meningkatkan kualitas dari kasus-uji dalam mendeteksi kesalahan/fault pada perangkat lunak. Metode ini memiliki kendala utama dalam penggunaannya yaitu tidak efisien karena membutuhkan pembangkitan dan pengeksekusian mutan (mutant) dalam jumlah yang besar, dan mutan ini juga perlu di eksekusi terhadap kasus-uji yang biasanya juga berukuran cukup besar. Jumlah mutan yang besar diperlukan untuk memastikan keterwakilan sebanyak mungkin fault, dan jumlah kasus-uji yang banyak adalah untuk memastikan terlingkupi sebanyak mungkin baris kode yang dieksekusi, tetapi tentu ini akan meningkatkan waktu pemrosesan. Penggunaan metode optimasi berbasis-pencarian pada permasalahan optimasi rekayasa perangkat lunak (search-based software engineering) mulai populer belakangan ini, hal ini karena kemudahan dalam pengimplementasian pada permasalahan, yaitu hanya membutuhkan pendefinisian representasi solusi dan fungsi evaluasi solusi tersebut. Koevolusi salah satu metode berbasis-pencarian yang cocok untuk digunakan pada permasalahan yang terdiri dari bagian-bagian untuk di optimasi secara simultan. Sifat ini membuat metode ini lebih cocok untuk digunakan pada permasalahan pengujian mutasi dengan cara membaginya menjadi dua permasalahan yaitu optimasi pada pembangkitan mutan dan optimasi pada pembangkitan kasus-uji. Pada penelitian ini metode koevolusi diterapkan dengan cara menggabungkan antara metode pembangkitan mutan berbasis regular expression dengan metode pembangkitan kasus-uji. Solusi mutan dan kasus-uji yang dibangkitkan di-evolusi secara bersama-sama menggunakan metode algoritma genetika, dengan fungsi evaluasi yang terhubung, yaitu mutan diukur berdasarkan kemampuannya untuk lolos dari deteksi kasus-uji, dan kasus uji diukur berdasarkan kemampuannya untuk mendeteksi mutan, sehingga terbentuk koevolusi yang saling berlawanan. Validasi metode usulan dilakukan dengan dua cara yaitu berdasarkan nilai perkiraan kualitas (nilai fitness) dan berdasarkan kualitas aktual (sebenarnya) solusi yang dilakukan dengan 6 kasus lab dan 1 kasus riil sebagai benchmark. Validasi menggunakan nilai fitness menunjukkan bahwa pada semua kasus, metode usulan berhasil meningkatkan kualitas mutan dan kasus-uji. Sedangkan pada validasi kualitas aktual berdasarkan tingkat detected-mutant (DM) dan undetected-mutant (UM), metode secara umum berhasil mendekati performansi benchmark (seluruh-kasus-uji) yaitu rata-rata 95% untuk tingkat DM dan 96% untuk tingkat UM, dan dengan jumlah kasus-uji 88% lebih kecil dari benchmark. Dari nilai tersebut empat kasus mencapai tingkat yang sama dengan benchmark (100% DM dan 100% UM), dan satu kasus melebihi benchmark untuk tingkat UM (105% UM), sedangkan untuk kasus riil (tanpa benchmark) mencapai 96% DM.