Return to search

Fuzz testing coverage measurement based on error log analysis

Fuzz testing is a black box testing method in which a SUT is subjected to anomalous inputs in order to uncover faults such as crashes or other incorrect behaviour. A defining attribute of any black box testing is the assumption that the inner workings and the source code of the SUT are unknown. This lack of information adds an element of difficulty to the task of estimating test coverage.

During testing a SUT typically produces a log of error conditions and other events which were triggered by the testing process. This log data is available even when the source code is not. The purpose of this study was to research whether a meaningful metric of test coverage could be extracted from the log data. The goal was to discover a metric similar to code coverage, but applicable to black box testing.

A hypothesis was presented that a large variety of observed events translated to great code coverage as well. To extract this metric, a rudimentary pattern recognition algorithm was devised in order to automatically classify the events encountered during a test run.

Measurements were performed on three open source SUTs representing three widely used communication protocols. Log analysis results were compared to code coverage measurements in order to study any possible correlation between them.

The results were positive, as the study showed clear correlation between the code coverage metric and the log analysis results for two of the three case studies. Further study is required to establish whether the studied log analysis method is generally applicable. / Fuzz-testaus on mustalaatikkotestausmenetelmä, jossa testikohteesta pyritään löytämään vikoja altistamalla se virheelliselle syötteelle. Mahdolliset ohjelmistoviat ilmenevät kaatumisina tai muuna virheellisenä toimintana. Mustalaatikkotestaukselle ominaista on se, että kohteen sisäistä toimintaa ja lähdekoodia ei tunneta, mikä tekee testauskattavuuden arvioinnista ongelmallista.

Testauksen aikana kohde tavallisesti tuottaa lokitiedoston, joka sisältää kohteessa havaitut virhetilat. Tämä lokiaineisto on käytettävissä myös silloin, kun lähdekoodia ei tunneta. Tämän tutkielman tarkoituksena on selvittää, onko mahdollista kehittää mittaustekniikka testikattavuuden arviointiin lokiaineiston perusteella. Tämä mittaustekniikka muistuttaisi koodikattavuusmittausta, mutta sitä voisi soveltaa myös mustalaatikkotestauksen yhteydessä.

Tutkielmassa esitetty hypoteesi oli se, että mikäli lokissa havaitaan suuri määrä erilaisia virhetiloja, myös koodikattavuus olisi korkea. Mittausten suorittamiseksi kehitettiin alkeellinen hahmontunnistusalgoritmi, joka luokitteli testauksen aikana kerätyn lokiaineiston.

Mittaukset toistettiin kolmella testikohteella, joiden lähdekoodi oli avointa, ja jotka edustivat yleisesti käytettyjä tietoliikenneprotokollia. Lokianalyysituloksia verrattiin koodikattavuusmittaustuloksiin, jotta mahdollinen korrelaatio tulosten välillä havaittaisiin.

Tutkimuksen tulokset olivat positiiviset, sillä kahdessa esimerkkitapauksessa kolmesta havaittiin selkeää korrelaatiota koodikattavuusmittausten ja lokianalyysitulosten välillä. Menetelmän yleinen sovellettavuus vaatii kuitenkin lisätutkimusta.

Identiferoai:union.ndltd.org:oulo.fi/oai:oulu.fi:nbnfioulu-201605051644
Date09 May 2016
CreatorsHaanpää, T. (Tuomas)
PublisherUniversity of Oulu
Source SetsUniversity of Oulu
LanguageEnglish
Detected LanguageEnglish
Typeinfo:eu-repo/semantics/masterThesis, info:eu-repo/semantics/publishedVersion
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess, © Tuomas Haanpää, 2016

Page generated in 0.0014 seconds