Přesné heuristiky pro vkládání šumu v nástroji SearchBestie - Kozák, David (Vysoké učení technické v Brně. Fakulta informačních technologií, 2017)
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.
Fine-Grain Noise-Injection Heuristics for SearchBestie Infrastructure
Keywords: verifikace softwaru; testování; vícevláknové programování; Java; chyby ve vícevláknových programech; vkládání šumu; metriky pro testování; software verification; testing; concurrent programming; Java; concurrency errors; noise injection; metrics for testing