Discovering and Validating Concurrency Specification from Test Executions

Concurrent systems are notoriously hard to get correct and testingthese systems is challenging as typically only a subset of concurrentbehavior can be covered and observed. Hence, even with a large body oftest cases it often remains unclear if the test cases cover the rightbehavior and, at the same time, if the system behaves as expected. Inthis work we present an automated formal validation approach torediscover concurrency behavior from dynamic (symbolic) executions. Inparticular, we generate formal UPPAAL models based on testobservations, which can be used to validate the intuition of the testengineers and can be formally checked on its own for potential safetyviolations to enhance the overall validation process. We present thekey ideas, our implementation for model generation from testingpthreaded C code using the Forest symbolic execution framework, and wepresent early experimental results.

[1]  James C. Corbett,et al.  Bandera: extracting finite-state models from Java source code , 2000, ICSE.

[2]  Pablo Gonzalez-de-Aledo,et al.  FramewORk for Embedded System verification , 2015, TACAS 2015.

[3]  Wang Yi,et al.  TIMES: A Tool for Schedulability Analysis and Code Generation of Real-Time Systems , 2003, FORMATS.

[4]  John B. Shoven,et al.  I , Edinburgh Medical and Surgical Journal.

[5]  M. Malik,et al.  Operating Systems , 1992, Lecture Notes in Computer Science.

[6]  Vikram S. Adve,et al.  LLVM: a compilation framework for lifelong program analysis & transformation , 2004, International Symposium on Code Generation and Optimization, 2004. CGO 2004..

[7]  Martijn Hendriks Translating Uppaal to Not Quite C , 2001 .

[8]  Kim G. Larsen,et al.  A Tutorial on Uppaal , 2004, SFM.

[9]  James C. King,et al.  Symbolic execution and program testing , 1976, CACM.

[10]  Anna Philippou,et al.  Tools and Algorithms for the Construction and Analysis of Systems , 2018, Lecture Notes in Computer Science.

[11]  Wang Yi,et al.  UPPAAL - a Tool Suite for Automatic Verification of Real-Time Systems , 1996, Hybrid Systems.

[12]  Franco Cicirelli,et al.  Modelling Java concurrency: An approach and a UPPAAL library , 2013, 2013 Federated Conference on Computer Science and Information Systems.

[13]  Fredrik Bajers Automatic Translation from UPPAAL to C , 2005 .

[14]  Thomas A. Henzinger,et al.  Symbolic Model Checking for Real-Time Systems , 1994, Inf. Comput..

[15]  Franco Cicirelli,et al.  Modelling And Verification Of Concurrent Programs Using UPPAAL , 2011, ECMS.

[16]  Alexander L. Wolf,et al.  Event-Based Detection of Concurrency , 2006 .