Applying dynamic analysis to programs running in interpreted environments

Autor: S. P. Vartanov, M. K. Ermakov, A. Y. Gerasimov
Jazyk: English<br />Russian
Rok vydání: 2018
Předmět:
Zdroj: Труды Института системного программирования РАН, Vol 29, Iss 1, Pp 135-148 (2018)
Druh dokumentu: article
ISSN: 2079-8156
2220-6426
DOI: 10.15514/ISPRAS-2017-29(1)-9
Popis: The present-day trends in software engineering include the steady increase of code and design complexity which reinforces the high demand in automated software testing and analysis tools. In this paper, we showcase several dynamic program analysis applications and present our solutions. These applications include memory profiling, automated test generation using dynamic symbolic execution and automated detection of concurrency bugs in multithreaded programs. Our memory profiling tool is designed for Java applications for Android and it is implemented through Android Dalvik VM modification. This approach allowed us to overcome existing Dalvik VM limitations that make existing profiling tools based on dynamic bytecode instrumentation inaccessible. We have successfully applied our tool to several core Android applications - the results provided in the paper outline the effectiveness of the approach. The second solution we discuss in the paper - dynamic symbolic execution for test generation automation - allows us to efficiently generate test scenarios for Java program graphical user interface. The core technologies of the approach include the use of static bytecode instrumentation and automatic GUI model extraction. We implement the approach on top of a user interface test automation framework GUITAR. Finally, we present our approach to automatically identify concurrency bugs in multithreaded Java applications. The approach is based on static bytecode instrumentation for trace generation and employs ThreadSanitizer defect detection tool for identifying bugs.
Databáze: Directory of Open Access Journals