Přesné heuristiky pro vkládání šumu v nástroji SearchBestie
Loading...
Date
Authors
Kozák, David
ORCID
Advisor
Referee
Mark
A
Journal Title
Journal ISSN
Volume Title
Publisher
Vysoké učení technické v Brně. Fakulta informačních technologií
Abstract
Tato práce se zabývá efektivními způsoby testování vícevláknových programů psaných v jazyce Java. Pro zvýšení šance na odhalení časově závislých chyb se využívá techniky vkládání šumu, kdy dochází ke vložení dalších instrukcí do testované aplikace za účelem prozkoumání netypických proložení událostí. Pro nalezení vhodných konfigurací pro vkládání šumu byl navržen nástroj SearchBestie, který využíval nástroj ConTest pro spouštění testů a instrumentaci bytecodu. Jelikož vývoj ConTestu byl zastaven, bylo třeba najít vhodnou alternativu. V průběhu této bakalářské práce bylo dokončeno propojení SearchBestie s nástrojem RoadRunner, který ConTest nahradil. Dále došlo k navržení a implementaci nových heuristik, které umožňují šum vkládat na přesně zvolená místa v kódu. Experimenty prokázaly, že ve většině případů skutečně přesné heuristiky dosahují lepších výsledků než heuristiky využívající náhodnosti.
The main topic of this thesis is testing of concurrent Java programs. Concurrency errors often manifest rarely. To increase a chance to spot such errors, a technique called noise injection can be used. This technique inserts extra instruction into the application under test to disturb the scheduler and thus to explore less common thread scheduling. Because noise injection can be parameterized in many ways, a tool called SearchBestie was created to handle noise-based testing as a search problem. SearchBestie used a tool called Contest for bytecode instrumentation and test execution. However, the development of ConTest has been discontinued and therefore an alternative tool was necessary. In the first part of this thesis, SearchBestie was connected with a tool called RoadRunner, which replaced ConTest. Afterwards new fine-grain noise-injection heuristics have been proposed and implemented. Experiments proved that these heuristics achieve better results in most cases.
The main topic of this thesis is testing of concurrent Java programs. Concurrency errors often manifest rarely. To increase a chance to spot such errors, a technique called noise injection can be used. This technique inserts extra instruction into the application under test to disturb the scheduler and thus to explore less common thread scheduling. Because noise injection can be parameterized in many ways, a tool called SearchBestie was created to handle noise-based testing as a search problem. SearchBestie used a tool called Contest for bytecode instrumentation and test execution. However, the development of ConTest has been discontinued and therefore an alternative tool was necessary. In the first part of this thesis, SearchBestie was connected with a tool called RoadRunner, which replaced ConTest. Afterwards new fine-grain noise-injection heuristics have been proposed and implemented. Experiments proved that these heuristics achieve better results in most cases.
Description
Citation
KOZÁK, D. Přesné heuristiky pro vkládání šumu v nástroji SearchBestie [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. 2017.
Document type
Document version
Date of access to the full text
Language of document
cs
Study field
Informační technologie
Comittee
doc. Ing. Richard Růžička, Ph.D., MBA (předseda)
doc. RNDr. Jitka Kreslíková, CSc. (místopředseda)
doc. RNDr. Dana Hliněná, Ph.D. (člen)
Ing. Bohuslav Křena, Ph.D. (člen)
Date of acceptance
2017-08-29
Defence
Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm " A ". Otázky u obhajoby: Definujte chybu živosti "Chování nevykazující pokrok". Definice 2.3.7 na str. 12 je cyklická. Jak si vysvětlujete markantní rozdíly v počtech nalezených chyb nástroji ConTest a RoadRunner při 20 fixních konfiguracích (tabulka 4.3 na str. 34)?
Result of defence
práce byla úspěšně obhájena
Document licence
Standardní licenční smlouva - přístup k plnému textu bez omezení