Hier finden Sie wissenschaftliche Publikationen aus den Fraunhofer-Instituten.

FERA: A Framework for Critical Assessment of Execution Monitoring Based Approaches for Finding Concurrency Bugs

: Jahić, Jasmin; Bauer, Thomas; Kuhn, Thomas; Wehn, Norbert; Antonino, Pablo Oliveira


Arai, K.:
Intelligent Computing. Proceedings of the 2020 Computing Conference. Vol.1 : 16-17 July 2020, Virtual Event
Cham: Springer Nature, 2020 (Advances in Intelligent Systems and Computing 1228)
ISBN: 978-3-030-52248-3 (Print)
ISBN: 978-3-030-52249-0 (Online)
ISBN: 978-3-030-52250-6
Computing Conference <2020, Online>
Conference Paper
Fraunhofer IESE ()
Survey; Software testing ; Concurrent software; Runtime analysis; Multithreaded software; Lockset ; Data races

The software community has recognized the importance of concurrent multithreaded software and the criticality of concurrency bugs. However, it has still not fully acknowledged the complexity of the process for finding these bugs. When based on execution monitoring, the process includes tracing of the software execution, specification of concurrency bug models, modeling of synchronization mechanism patterns, and several other process steps and components. Existing approaches, however, focus only on the parts of the process for finding concurrency bugs (PFCB) and fail to notice their inter-dependencies, which affect the analysis outcome. Without a proper understanding of these inter-dependencies, the advances in this research area remain partially incremental and limited to specific use cases. In order to better understand this problem, we provide a model of a generic process for finding concurrency bugs (PFCB) and a framework for the critical assessment of execution-monitoring-based approaches for finding concurrency bugs (FERA). Our framework captures the inter-dependencies between the individual PFCB steps and establishes the relation between these inter-dependencies and the final outcome of the monitoring. The FERA framework is suitable for assessing the suitability of approaches for finding concurrency bugs, for specific software systems (e.g., with specific synchronization properties). With this paper, we demonstrate that finding concurrency bugs is not an isolated action consisting of applying an algorithm to an execution trace, but rather a continuous engineering process.