Rabu, 20 Mei 2015

Software Assurance by Bounded Exhaustive Testing



Title
Software Assurance by Bounded Exhaustive Testing
Authors
David Coppit, Jinlin Yang, SarfrazKhurshid, and Kevin Sulliva
Abstract
Bounded Exhaustive Testing (BET) adalahteknikverifikasimasukanperangkatlunak.Penelitiansebelumnyamengatakanbahwa BET hanyabisamengungkapkanfaults di sistemkecildenganmasukan yang tidakbegitukompleks. Namunkinihasilpenelitianterbarumengatakanbahwa BET, dikombinasikandenganabstraksiterhadapspesifikasidanteknikpemfaktoran, bisamenjaditoolsverifikasiperangkatlunak yang bisadiandalkan.
Introduction
Penelitiansebelumnyamenunjukkanbahwa BET mampudigunakanuntukmengetesmodulperangkatlunakdenganstruktur data sederhana.
Yang menjadipertanyaan-nyamampukah BET diterapkanpadamodulperangkatlunakbesar. Denganmengacupadahipotesa Jackson, bahwapengetesanmasukankecilbisamengungkapkanfault, makakalauditerapkanpadapengetesanmasukanbesarakanmampumengungkapkanfaultdalamporsi yang lebihbesar
Untukitu, pengetesandilakukandengansubjek Galileo tools untuk memodelkan danmenganalisis reliability (denganpemodelan DFT, Dynamic Fault Trees[5], [6], [7]), fault-tolerant, sistemterkomputerisasi.
Percobaandilakukandenganmengabstraksispesifikasimasukan yang di-offload-kanke Alloy [8], agar Alloy tidakkehabisanmemoribilaberjalansecaraonload.
Lalu detail abtraksidicatat, denganmenggunakanTestEra[9]untukmembangkitkanmasukanabstrak. kemudian, mengkombinasikanmasukanabstrakdengan detail-detailnyauntukmenyusunmasukanspace-nya.
Dengantekniktersebut, mampumengungkapkanfault-fault yang ada.Percobaanditerapkanpadalebihdari 250.000 masukan DFT.
Methods and Materials
*DFT*
DFT adalahgrafikpemodelansistem, terdiridaribasic node (representasieventdalamsistem), gates node (representasifailure event yang munculsebagaifungsidarieventlainnya, bisastatik[And Gates] ataudinamik [Priority-And Gates]), danconstraint (representasibatasandarievent, bisa FDEP [kegagalan yang terjadisecaracascade] atau SEQ [kegagalansesuaiurutan]).
Spare gatesterjadijikadanhanyajikasemuamasukannyagagalataumenjaditidakada. Sistembekerjabilaevent1 memberimasukan.Bilaevent1 gagalataumenjaditidakada, makaspare gateakanmendapatmasukandarievent2. FDEP mengindikasikanbahwabilaterjadikegagalanpadaevent1 makaevent3 jugaikutgagal.Akibatnya, sistemakanberhenti total, bilaevent1 danevent2 mengalamikegagalan.
*Galileo*
Adalahtoolsuntukmenganalisa DFT. Galileo akanmenguraikanpohon DFT kedalam sub-sub pohonuntukdipecahkansecaraterpisahdenganmenggunakan DFT solvers (dynamic solver yang menterjemahkan Markov chains [10]ataustatic solver yang menterjemahkanmenjadi BDD [5]), nantinyahasilakandirangkaikembaliuntukmemperolehhasilakhir.
Penelitian BET inibertujuanuntukmengevaluasiapakahmungkinuntukmenggunakan BET untukmengetes Galileo.
PengetesandilakukandenganmembangkitkanmasukandenganmenggunakanTestEra (framework testing class-classpada Java).Lalu output-nyadicekmenggunakan Nova solver (Galileo dynamic analyzer) sebagaioracle-nya.
Pengetesandilakukandenganlingkupkecilterlebihdahulu.Penelitiantahapiniberhentisaatlingkuptujuantelahdipenuhiatausaatpengetesanperangkatlunakmenjaditidakmungkinakibatkegagalansistem.
Results
Dari hasilpengetesan, kecepatanoraclemenurunseiringdenganmeningkatnyamasukanfaulttree.Sedikitsulituntukmengetesdengan 6 masukantanpamengoptimalkankinerjaoracle.

Jumlahmasukan yang dibangkitkan, hingga 8 cakupanevent.Pengetesanmampumeng-instansiasisemua DFT konkrithingga 6 event.
Selainitu, BET mampumengungkapkan 8 faultspadagalileo, 3 faultspadaspesifikasidan 3 faultspadaoracle.
Discussion and Recommendations
Ada keterbatasandalampenelitianini, yaitu:
-          TestErakurangmampumenanganitipe data numericdenganbaik.
-          Alloy tidakmendukung data integer.
-          Bilaadafault di oracleatau di spesifikasi, maka BET tidakdapatditerapkan.
-          Hasil statistic reliabilitassistemtidakdapatdidasarkanpadapenggunaan BET.
Akan tetapi, denganketerbatasantersebut, BET merupakantoolsverifikasi yang mampumengungkapfault, baik yang sifatnyasubstansialmaupunfault yang halus, padasuatusistemdenganukurantertentu.
References
[1]     D. Jackson and C.A. Damon, “Elements of Style: Analyzing a Perangkatlunak Design Feature with a Counterexample Detector,” IEEE Trans. Software Eng., vol. 22, no. 7, pp. 484-495, July 1996.
[2]     D. Coppit and K.J. Sullivan, “Galileo: A Tool Built from Mass-Market Applications,” Proc. Int’l Conf. Software Eng., pp. 750-753, June 2000.
[3]     J.B. Dugan, K.J. Sullivan, and D. Coppit, “Developing a Low-Cost High-Quality Software Tool for Dynamic FaultTree Analysis,” IEEE Trans. Relativity, vol. 49, no. 1, pp. 49-59, Mar. 2000.
[4]     K.J. Sullivan, J.B. Dugan, and D. Coppit, “The Galileo FaultTree Analysis Tool,” Proc. Int’l Fault-Tolerant Computing Symp., pp. 232-235, June 1999.
[5]     S.A. Doyle and J.B. Dugan, “Dependability Assessment Using Binary Decision Diagrams (BDDs),” Proc. Int’l Fault-Tolerant Computing Symp., pp. 249-258, July 1995.
[6]     J.B. Dugan, S. Bavuso, and M. Boyd, “Dynamic Fault-Tree Models for Fault-Tolerant Computer Systems,” IEEE Trans. Relativity, vol. 41, no. 3, pp. 363-377, Sept. 1992.
[7]     W.E. Vesely, F.F. Goldberg, N.H. Roberts, and D.F. Haasl, “FaultTree Handbook,” Technical Report NUREG-0492, US Nuclear Regulatory Commission, Washington, D.C., 1981.
[8]     D. Jackson, “Micromodels of Software: Modelling and Analysis with Alloy,” http://sdg.lcs.mit.edu/alloy/reference-manual.pdf, 2001.
[9]     D. Marinov, A. Andoni, D. Daniliuc, S. Khurshid, and M. Rinard, “An Evaluation of Exhaustive Testing for Data Structures,” Technical Report MIT-LCS-TR-921, MIT CSAIL, Cambridge, Mass., Sept. 2003.
[10]   M.A. Boyd, “Dynamic FaultTree Models: Techniques for Analysis of Advanced Fault Tolerant Computer Systems,” PhD dissertation, Dept. of Computer Science, Duke Univ., Durham, N.C., Apr. 1991.