Show simple item record

dc.rights.licenseCC-BY-NC-ND
dc.contributor.advisorPrasetya, Wishnu
dc.contributor.authorKroon, Thijn
dc.date.accessioned2025-06-12T23:01:17Z
dc.date.available2025-06-12T23:01:17Z
dc.date.issued2025
dc.identifier.urihttps://studenttheses.uu.nl/handle/20.500.12932/49026
dc.description.abstractDynamic symbolic execution (DSE) is a powerful technique for automated test generation, but its effectiveness largely depends on the search strategy used to explore program paths. This thesis introduces MAZE, a modular DSE engine for Java bytecode grounded in a formal operational semantics. MAZE distinguishes itself from existing Java-based DSE tools through its modular architecture supporting diverse search strategies and their arbitrary combinations, enabling the systematic comparison of strategies. We evaluate six distinct search strategies, including coverage-guided, constraint complexityguided, and hybrid approaches that combine complementary techniques. These are applied to 10 Java classes chosen for their diverse control flow, floating-point operations, and objectoriented features, with effectiveness measured by line and branch coverage and mutant kill ratio. Informed, state-aware strategies consistently outperform default approaches such as depth-first (DFS) and breadth-first search (BFS). Notably, BFS consistently outperforms DFS across most benchmarks, suggesting it may serve as a more suitable default. However, strategy effectiveness is still context-sensitive, with certain strategies excelling in floating-point-heavy or recursive code. Consequently, interleaved strategies tend to perform best by combining the strengths of multiple techniques. While MAZE outperforms non-DSE tools such as EvoSuite and Randoop on our benchmark set, its current support for only a subset of Java limits evaluation on large-scale open-source projects. Nevertheless, the controlled environment allows for isolating the impact of different search strategies. Our findings highlight that search strategy design plays a central role in improving DSE-based test generation.
dc.description.sponsorshipUtrecht University
dc.language.isoEN
dc.subjectThis thesis explores the impact of search strategies on dynamic symbolic execution (DSE) based test generation for Java bytecode. Using the modular DSE engine MAZE, grounded in a formal operational semantics, six strategies are evaluated based on code coverage and fault detection. Results show that context-aware and interleaved strategies outperform standard approaches like DFS and BFS.
dc.titleEvaluating Search Strategies in Dynamic Symbolic Execution for Java Test Generation
dc.type.contentMaster Thesis
dc.rights.accessrightsOpen Access
dc.subject.keywordsDynamic Symbolic Execution (DSE); Operational Semantics; Symbolic Exeuction; Search Strategies; Test Generation; Coverage-Guided Search; Software Testing; Unit Testing
dc.subject.courseuuComputing Science
dc.thesis.id46271


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record