4 research outputs found

    Coverage-Driven Testing for Multithreaded Programs

    Get PDF
    Tato práce se zabývá problematikou hledání chyb ve vícevláknových programech pomocí techniky pokrytím řízeného testování, jak je chápáno ve studovaném nástroji Maple. Testování se se skládá ze dvou fází. V první fázi se buduje množina pokrytelných chování testovaného programu. Následně se algoritmus snaží dosáhnout těchto chování za pomoci deterministického vykonání testu.Hlavní přínos práce spočívá v uceleném popisu nástroje Maple, včetně technických detailů.Na základě studia jsou identifikovány slabá místa. Některé z nich, konkrétně využívání náhodného rozhodování a prioritizace vynucovaných chování, jsou blíže studovány.Výsledkem je několik úprav nástroje Maple, ze kterých některé vedou k většímu počtu úspěšných dosažení chování a v určitých případech k vyššímu počtu vyvolání chyb, což je experimentálně demonstrováno na sadě vícevláknových programů.This work deals with a problem of searching errors in multithreaded programs using a coverage-driven testing technique as perceived in program Maple. The testing consists of two phases. In the first phase of testing a set of coverable behaviours of the tested program is being built. Consequently, the algorithm tries to achieve these behaviours with a help of deterministic test execution. The main acquisition of the work lays in a compact description of Maple including all the technical details. Based on the study of the tool there were weak places identified. Some of them are studied in detail, especially those which use random decision making and prioritizing of the forced behaviours. The result are several modifications of Maple, from which some lead to a higher number of exposed behaviours and higher error exposition in some cases. This is demonstrated on a test suite of parallel programs.

    Test Optimization by Search-Based Algorithms

    Get PDF
    Testování vícevláknových programů je náročný proces kvůli velkému množství možných interakcí mezi vlákny, které je třeba otestovat. Technika vkládání šumu umožňuje zvýšit počet otestovaných proložení (interakcí) konkurenčních vláken generováním šumu. Tato práce optimalizuje techniky prohledávání prostoru v oblasti testování vícevláknových programů, a to s využitím deterministických heuristik použitých při aplikací genetických algoritmů na prostor míst v běhu programu, do kterých je možné umístit šum. V práci je navrženo několik nových heuristik vkládání šumu, které jsou deterministické, narozdíl od většiny současných heuristik pracujících s generátorem náhodných čísel. Motivací odstranění náhodnosti je informovanější prohledávání a získávání optimálnějších výsledků pomoci zvýšení stability výsledku poskytovaných novými heuristikami. Součástí práce je i základní sada testovacích programů, která bude použita k vyhodnocení výsledků nových heuristik vkládání šumu.Testing of multi-threaded programs is a demanding work due to the many possible thread interleavings one should examine. The noise injection technique helps to increase the number of tested thread interleavings by noise injection to suitable program locations. This work optimizes meta-heuristics search techniques in the testing of concurrent programs by utilizing deterministic heuristic in the application of genetic algorithms in a space of legal program locations suitable for the noise injection. In this work, several novel deterministic noise injection heuristics without dependency on the random number generator are proposed in contrary to the most of currently used heuristic. The elimination of the randomness should make the search process more informed and provide better, more optimal, solutions thanks to increased stability in the results provided by novel heuristics. Finally, a benchmark of programs, used for the evaluation of novel noise injection heuristics is presented.
    corecore