Conditional rewriting logic as a unified model of concurrency
Selected papers of the Second Workshop on Concurrency and compositionality
Symbolic execution and program testing
Communications of the ACM
Maude: specification and programming in rewriting logic
Theoretical Computer Science - Rewriting logic and its applications
SELECT—a formal system for testing and debugging programs by symbolic execution
Proceedings of the international conference on Reliable software
ARCHER: using symbolic, path-sensitive analysis to detect memory access errors
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
A complete guide to the future
ESOP'07 Proceedings of the 16th European conference on Programming
Pex: white box test generation for .NET
TAP'08 Proceedings of the 2nd international conference on Tests and proofs
Model Testing Asynchronously Communicating Objects using Modulo AC Rewriting
Electronic Notes in Theoretical Computer Science (ENTCS)
Symbolic execution of concurrent objects in CLP
PADL'12 Proceedings of the 14th international conference on Practical Aspects of Declarative Languages
State of the art: Dynamic symbolic execution for automated test generation
Future Generation Computer Systems
Hi-index | 0.00 |
This paper extends dynamic symbolic execution to distributed and concurrent systems. Dynamic symbolic execution is used to systematically identify equivalence classes of input values and has been shown to scale well to large systems. Although mainly applied to sequential programs, this scalability makes it interesting to consider the technique in the distributed and concurrent setting as well. In order to extend the technique to concurrent systems, it is necessary to obtain sufficient control over the scheduling of concurrent activities to avoid race conditions. Creol, a modeling language for distributed concurrent objects, solves this problem by abstracting from a particular scheduling policy but explicitly defining scheduling points. This provides sufficient control to apply the technique of dynamic symbolic of interleaved processes. The technique has been formalized in rewriting logic and executes in Maude.