Unit testing adalah salah satu teknik pengujian perangkat lunak pada unit fungsional terkecil. Pembuatan unit test dalam pengembangan perangkat lunak membutuhkan banyak waktu dan usaha. Saat ini, alat pembangkit unit test yang ada masih memiliki keterbatasan seperti cakupan yang belum optimal, kebutuhan komputasi yang besar, serta spesifik untuk domain tertentu. Salah satu cara untuk membangkitkan unit test pada suatu kode sumber adalah dengan mengacu pada hasil pemetaan kode sumber ke dalam Control Flow Graph (CFG). Pada tugas akhir ini dihasilkan perangkat lunak pembangkit unit test case dengan representasi CFG. Unit test case dapat dibangun dengan memetakan kode sumber ke CFG, menganalisis setiap jalur eksekusi pada CFG, serta membangkitkan test case dengan constraint pada setiap jalur. Struktur kode yang dapat dibangkitkan unit test casenya yaitu struktur sekuensial, percabangan, perulangan, penggunaan dictionary, objek kelas dengan operasi sekuensial, serta pemanggilan fungsi pada file yang sama. Pada kasus penyelesaian logika matematika, test case dibangkitkan dengan constraint solver. Pada kasus selain matematika, dilakukan prediksi test case dengan LLM Gemini. Dengan bantuan CFG, pembangkitan test case dapat maksimal pada setiap jalur (branch) sehingga didapatkan branch coverage yang tinggi. Selanjutnya, test case yang dihasilkan dinilai berdasarkan test smell dengan memanfaatkan pustaka yang ada. Test smell merupakan karakteristik yang dapat menunjukkan masalah yang terjadi. Hasil pengujian menunjukkan tidak ada test smell dari unit test case yang dihasilkan perangkat lunak untuk struktur kode yang telah dicakup.
Perpustakaan Digital ITB