Bernhard Aichernig, Andreas Griesmayer, Rudolf Schlatte, and Andries Stam. Modeling and testing multi-threaded asynchronous systems with Creol. In Proceedings of the 2nd International Workshop on Harnessing Theories for Tool Support in Software (TTSS 2008), Istanbul, Turkey, 30 August 2008, volume 243 of Electronic Notes in Theoretical Computer Science, pages 3–14. Elsevier, July 2009. (PDF) (doi:10.1016/j.entcs.2009.07.002)
The paper describes a model-based testing technique for asynchronous, concurrent systems and shows how the modeling language Creol can serve as a test oracle. Creol is a nice object-oriented modeling language for distributed systems by University of Oslo. We applied the technique to a commercial agent-based information system.
- Create an abstract model of the system under test (SUT) in Creol.
- Instrument the source code of the SUT by aspect-oriented programming techniques (here AspectC) for recording events.
- Execute tests on the SUT and record the events.
- Translate the event traces to Creol test cases.
- Replay the test case on the model.
- If successful: the test passed;
- If it fails: model check if there is a different non-deterministic path for this test case, if not the test failed.
Check out my other conference papers.