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