Communicating sequential processes
Communicating sequential processes
Modeling concurrency with partial orders
International Journal of Parallel Programming
Advances in Petri nets 1986, part II on Petri nets: applications and relationships to other models of concurrency
Debugging Parallel Programs with Instant Replay
IEEE Transactions on Computers
Interleaving set temporal logic
Theoretical Computer Science
Handbook of theoretical computer science (vol. B)
Bisimulation and action refinement
Selected papers of the 3rd workshop on Concurrency and compositionality
Journal of the ACM (JACM)
Model checking
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
Verifying properties of parallel programs: an axiomatic approach
Communications of the ACM
Communications of the ACM
The Book of Traces
Syntactic Detection of Process Divergence and Non-local Choice inMessage Sequence Charts
TACAS '97 Proceedings of the Third International Workshop on Tools and Algorithms for Construction and Analysis of Systems
Temporal Debugging for Concurrent Systems
TACAS '02 Proceedings of the 8th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Deciding Properties for Message Sequence Charts
FoSSaCS '98 Proceedings of the First International Conference on Foundations of Software Science and Computation Structure
Model-Checking of causality properties
LICS '95 Proceedings of the 10th Annual IEEE Symposium on Logic in Computer Science
An Exprssively Complete Linear Time Temporal Logic for Mazurkiewicz Traces.
LICS '97 Proceedings of the 12th Annual IEEE Symposium on Logic in Computer Science
The temporal logic of programs
SFCS '77 Proceedings of the 18th Annual Symposium on Foundations of Computer Science
Calculating probabilities of real-time test cases
FATES'05 Proceedings of the 5th international conference on Formal Approaches to Software Testing
FATES'05 Proceedings of the 5th international conference on Formal Approaches to Software Testing
Hi-index | 0.00 |
The outcome of verifying software is often a 'counterexample', i.e., a listing of the actions and states of a behavior not satisfying the specification. In order to understand the reason for the failure it is often required to test such an execution against the actual code. In this way we also find out whether we have a genuine error or a ''false negative''. Due to nondeterminism in concurrent code, recovering an erroneous behavior on the actual program is not guaranteed even if no abstraction was made and we start the execution with the prescribed initial state. Testers are faced with a similar problem when they have to show that a suspicious scenario can actually be executed. Such a scenario may involve some intricate scheduling and thus be illusive to demonstrate. We describe here a program transformation that translates a program in such a way that it can be verified and then reverse transformed for testing a suspicious behavior. Since the transformation implies changes to the original code, we strive to minimize its effect on the original program.