Software Assurance by Bounded Exhaustive Testing


Nama  : I Nyoman Resa Aji Prayudha
Nim     : G.231.10.0149

Software Assurance by Bounded Exhaustive Testing
(Jaminan Perangkat Lunak oleh Bounded Exhaustive Testing)

Abstrak
Bounded Exhaustive Testing (BET) adalah teknik verifikasi masukan perangkat lunak. Penelitian sebelumnya mengatakan bahwa BET hanya bisa mengungkapkan faults di sistem kecil dengan masukan yang tidak begitu kompleks. Namun kini hasil penelitian terbaru mengatakan bahwa BET, dikombinasikan dengan abstraksi terhadap spesifikasi dan teknik pemfaktoran, bisa menjadi tools verifikasi perangkat lunak yang bisa diandalkan.
Pengenalan
Penelitian sebelumnya menunjukkan bahwa BET mampu digunakan untuk mengetes modul perangkat lunak dengan struktur data sederhana.
Yang menjadi pertanyaan-nya mampukah BET diterapkan pada modul perangkat lunak besar. Dengan mengacu pada hipotesa Jackson, bahwa pengetesan masukan kecil bisa mengungkapkan fault, maka kalau diterapkan pada pengetesan masukan besar akan mampu mengungkapkan fault dalam porsi yang lebih besar [1].
Untuk itu, pengetesan dilakukan dengan subjek Galileo [2], [3], [4], tools untuk memodelkan dan menganalisis reliability (dengan pemodelan DFT, Dynamic Fault Trees [5], [6], [7]), fault-tolerant, sistem terkomputerisasi.
Percobaan dilakukan dengan mengabstraksi spesifikasi masukan yang di-offload-kan ke Alloy [8], agar Alloy tidak kehabisan memori bila berjalan secara onload.
Lalu detail abtraksi dicatat, dengan menggunakan TestEra [9] untuk membangkitkan masukan abstrak. kemudian, mengkombinasikan masukan abstrak dengan detail-detailnya untuk menyusun masukan space-nya.
Dengan teknik tersebut, mampu mengungkapkan fault-fault yang ada. Percobaan diterapkan pada lebih dari 250.000 masukan DFT.


Materi dan Bahan
*DFT*
DFT adalah grafik pemodelan sistem, terdiri dari basic node (representasi event dalam sistem), gates node (representasi failure event yang muncul sebagai fungsi dari event lainnya, bisa statik [And Gates] atau dinamik [Priority-And Gates]), dan constraint (representasi batasan dari event, bisa FDEP [kegagalan yang terjadi secara cascade] atau SEQ [kegagalan sesuai urutan]).
Gambar 1. DFT dengan spare gate, 3 event dan sebuah pembatas FDEP
Spare gates terjadi jika dan hanya jika semua masukannya gagal atau menjadi tidak ada. Sistem bekerja bila event1 memberi masukan. Bila event1 gagal atau menjadi tidak ada, maka spare gate akan mendapat masukan dari event2. FDEP mengindikasikan bahwa bila terjadi kegagalan pada event1 maka event3 juga ikut gagal. Akibatnya, sistem akan berhenti total, bila event1 dan event2 mengalami kegagalan.
*Galileo*
Adalah tools untuk menganalisa DFT. Galileo akan menguraikan pohon DFT ke dalam sub-sub pohon untuk dipecahkan secara terpisah dengan menggunakan DFT solvers (dynamic solver yang menterjemahkan Markov chains [10] atau static solver yang menterjemahkan menjadi BDD [5]), nantinya hasil akan dirangkai kembali untuk memperoleh hasil akhir.
Penelitian BET ini bertujuan untuk mengevaluasi apakah mungkin untuk menggunakan BET untuk mengetes Galileo.
Pengetesan dilakukan dengan membangkitkan masukan dengan menggunakan TestEra (framework testing class-class pada Java). Lalu output-nya dicek menggunakan Nova solver (Galileo dynamic analyzer) sebagai oracle-nya.
Pengetesan dilakukan dengan lingkup kecil terlebih dahulu. Penelitian tahap ini berhenti saat lingkup tujuan telah dipenuhi atau saat pengetesan perangkat lunak menjadi tidak mungkin akibat kegagalan sistem.


Hasil
Dari hasil pengetesan, kecepatan oracle menurun seiring dengan meningkatnya masukan fault tree. Sedikit sulit untuk mengetes dengan 6 masukan tanpa mengoptimalkan kinerja oracle.
Tabel 1. Jumlah DFT dan AFT yang di-generate
Jumlah masukan yang dibangkitkan, hingga 8 cakupan event. Pengetesan mampu meng-instansiasi semua DFT konkrit hingga 6 event.
Selain itu, BET mampu mengungkapkan 8 faults pada galileo, 3 faults pada spesifikasi dan 3 faults pada oracle.
Discussion and Recommendations
Ada keterbatasan dalam penelitian ini, yaitu:
-          TestEra kurang mampu menangani tipe data numeric dengan baik.
-          Alloy tidak mendukung data integer.
-          Bila ada fault di oracle atau di spesifikasi, maka BET tidak dapat diterapkan.
-          Hasil statistic reliabilitas sistem tidak dapat didasarkan pada penggunaan BET.
Akan tetapi, dengan keterbatasan tersebut, BET merupakan tools verifikasi yang mampu mengungkap fault, baik yang sifatnya substansial maupun fault yang halus, pada suatu sistem dengan ukuran tertentu.

References


0 komentar:

Posting Komentar