Rabu, 20 Mei 2015

Directed Tes Generation using Simbolic Grammars



Title
Directed Tes Generation using Simbolic Grammars
Authors
RupakMajumdar, and Ru-Gang Xu
Abstract
CESE (Concolic Execution with Selective Enumeration) adalahtools yang mengkombinasikanenumerasitesmasukandenganeksekusisimbolis. Percobaanmenunjukkanbahwasifatkombinasi yang diterapkan di CESE membawahasilcakupan yang lebihbaik, daripadahanyadenganmenerapkanenumerasitesmasukansaja, ataudenganmenerapkaneksekusisimbolissaja.
Introduction
Percobaanditerapkanpadasistembesardimanamasukanannyaberasaldari domain terstruktur, seperticompiler, command processor, dansebagainya.
Ada duateknik yang dikombinasikandalam CESE, yaituenumerasidansimbolis.Pengetesanenumerasididasarkanpadapenguraianmasukananberdasarkanspesifikasinyahinggaukurantertentu, kemudian program akanmengeksekusisemuamasukanantadi[1]. Sedangkan, padapengetesansimbolis[2],  programdieksekusisecarasimbolis, tidakberdasarkanpadamasukanankonkritnya.
Untukmenggabungkankeduatekniktersebut, diperlukansuatusimbolic Grammars untukmenyeimbangkanpenggunaankeduanya.Jadi, nantinyasimbolic Grammars tersebutbekerjadengancaramengubahmasukanandalambentukGrammarmenjadimasukanandalambentuksimbolis, kemudianmenguraikannyasatu per satumenjadistringdenganteknikenumerasi, dan yang terakhir, menjalankanpengetesansimbolispadastring simbolicyang telahdiurai.
Methods and Materials
Pengujianditerapkanpada program SimpleCalc, program denganbahasa C. GrammaruntukmasukananSimpleCalc :
Oleh CESE, masukanantersebutdiubahmenjadisuatusimbolicGrammar, menjadi :
Ada empatfasedalampenerapanalgoritma CESE, yaitusimbolicGrammar, enumerasi, instrumentasi program, daneksekusiconcolic.
Program P dengan statement masukanmi :=masukan(ki,Gi). FasesimbolicGrammarmi :=masukan(ki,G’i). Faseenumerasi, masukan di loop –> for j = 0 to ki – 1 d0 mi[j] := y[j].
Efekdarilooptersebutadalahhanyamenahankonstantasimboldalamstringsebagaimasukanan, sekaligusmeng-instansiasisemuasimbolkonstannya. Selanjutnyapenerapaneksekusiconcolicpadainstrumentasi program tersebut.
Results
Dari hasilpenelitian, diketahuibahwapengujianmelalui CESE dapatmenghematwaktu 30menit dibandingkandenganpengetesansecara manual.Biladibandingkandenganpengujianconcolicmenggunakan CUTE [3], CESE 10% lebihbaikdibandingkandengan CUTE.
Jadi, denganduateknikkombinasi yang diterapkanpada CESE, mampumengungkapkanbugpadaperangkatlunak, lebihbaikdaripadadenganteknik-tekniklainnya.
References
[1]  D. Coppit and J. Lian. yagg: an easy-to-use generator for structured test inputs. In ASE, 2005.
[2]   L. Clarke. A system to generate test data and simbolically execute programs. IEEE Trans. Software Eng., 2:215–222, 1976.
[3]   K. Sen, D. Marinov, and G. Agha. Cute: a concolic unit tesing engine for c. In FSE, 2005.