Název:
Přesné heuristiky pro vkládání šumu v nástroji SearchBestie
Překlad názvu:
Fine-Grain Noise-Injection Heuristics for SearchBestie Infrastructure
Autoři:
Kozák, David ; Smrčka, Aleš (oponent) ; Křena, Bohuslav (vedoucí práce) Typ dokumentu: Bakalářské práce
Rok:
2017
Jazyk:
cze
Nakladatel: Vysoké učení technické v Brně. Fakulta informačních technologií
Abstrakt: [cze][eng]
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.
Klíčová slova:
chyby ve vícevláknových programech; Java; metriky pro testování; testování; verifikace softwaru; vkládání šumu; vícevláknové programování; concurrency errors; concurrent programming; Java; metrics for testing; noise injection; software verification; testing
Instituce: Vysoké učení technické v Brně
(web)
Informace o dostupnosti dokumentu:
Plný text je dostupný v Digitální knihovně VUT. Původní záznam: http://hdl.handle.net/11012/84856