Deadlock-Guided Testing

Static deadlock analyses might be able to verify the absence of deadlock. However, they are usually not able to detect its presence. Moreover, when a potential deadlock is detected, they provide little (and often no) information that can help the user in finding the source of the anomalous behaviour...

Descripción completa

Detalles Bibliográficos
Autores: Isabel Márquez, Miguel, Gómez-Zamalloa Gil, Miguel
Tipo de recurso: artículo
Fecha de publicación:2021
País:España
Institución:Universidad Complutense de Madrid (UCM)
Repositorio:Docta Complutense
Idioma:inglés
OAI Identifier:oai:docta.ucm.es:20.500.14352/99066
Acceso en línea:https://hdl.handle.net/20.500.14352/99066
Access Level:acceso abierto
Palabra clave:Deadlock analysis
Deadlock detection
Symbolic execution
Testing
Test case generation
Verification
Lenguajes de programación
33 Ciencias Tecnológicas
Descripción
Sumario:Static deadlock analyses might be able to verify the absence of deadlock. However, they are usually not able to detect its presence. Moreover, when a potential deadlock is detected, they provide little (and often no) information that can help the user in finding the source of the anomalous behaviour. This paper proposes a testing methodology that combines static analysis and symbolic execution for effective deadlock detection in asynchronous programs. When the program features a deadlock, our testing methodology provides an effective technique to catch deadlock traces. While if the program does not have deadlock, but the static deadlock analysis inaccurately spotted it, our approach is able to prove deadlock freedom (up to the limit of the performed symbolic exploration).