Apa itu fault injection testing?
fault injection testing adalah metode pengujian perangkat lunak yang secara sengaja memperkenalkan kesalahan ke dalam sistem untuk memastikan bahwa sistem dapat bertahan dan pulih dari kondisi kesalahan. Pengujian injeksi kesalahan biasanya dilakukan sebelum penerapan untuk mengungkap potensi kesalahan yang mungkin muncul selama produksi. Mirip dengan pengujian stres, pengujian injeksi kesalahan digunakan untuk mengidentifikasi kelemahan spesifik dalam sistem perangkat keras atau perangkat lunak sehingga dapat diperbaiki atau dihindari.
Jenis pengujian injeksi kesalahan
fault injection testing dalam perangkat lunak dapat dilakukan menggunakan injeksi waktu kompilasi atau runtime.
Injeksi waktu kompilasi adalah teknik di mana penguji mengubah kode sumber untuk mensimulasikan kesalahan dalam sistem perangkat lunak. Perubahan ini dapat dilakukan dengan memodifikasi atau memutasi kode yang ada, seperti mengubah satu baris kode untuk mewakili nilai yang berbeda. Penguji juga dapat menambahkan atau menyisipkan kode baru, seperti menyertakan logika tambahan.
Injeksi runtime menggunakan pemicu perangkat lunak untuk menyuntikkan kesalahan ke dalam perangkat lunak saat sedang berjalan. Pemicu dapat diatur untuk menyuntikkan kesalahan pada waktu tertentu, yang dikenal sebagai pemicu berbasis waktu. Pemicu juga dapat diatur menggunakan mekanisme jebakan, yang menghentikan perangkat lunak pada lokasi spesifik dalam kode atau peristiwa dalam sistem. Ini dikenal sebagai pemicu berbasis interupsi.
Injeksi kesalahan mirip dengan jenis pengujian lain seperti chaos engineering. Namun, injeksi kesalahan berbeda karena membutuhkan pendekatan spesifik untuk menguji satu kondisi. Pengujian injeksi kesalahan juga dapat diterapkan pada perangkat keras, karena dapat mensimulasikan kegagalan perangkat keras seperti hubungan pendek pada papan sirkuit.
Manfaat pengujian injeksi kesalahan
Manfaat pengujian injeksi kesalahan meliputi:
- Ketahanan perangkat lunak yang lebih baik.
- Pemunculan bug atau kesalahan sebelum terjadi secara alami dalam produksi.
- Peluang bagi pengembang untuk melakukan perubahan pada masalah yang sebelumnya tidak diketahui sebelum rilis.
Alat pengujian injeksi kesalahan
Injeksi kesalahan dapat dilakukan secara manual dan tidak memerlukan alat tambahan. Namun, alat dapat membantu mengotomatisasi proses.
Misalnya, alat pengujian Library-Level Fault Injector (LFI) secara otomatis mengidentifikasi kesalahan dan menyuntikkan kesalahan di antara perpustakaan dan aplikasi. Fault Tolerance and Performance Evaluator (FTAPE) adalah alat injeksi kesalahan otomatis lainnya, yang menyuntikkan kesalahan ke dalam akses memori dan disk. Selain itu, alat Xception dapat membantu mengotomatisasi penggunaan pemicu perangkat lunak, yang memicu kesalahan pada memori.