A software system can record events produced during its execution on a “tape” we call trace or log. It may be desirable for various reasons to search in that trace an event or a sequence of events that could reveal a malfunction; this process is called “trace validation” or “log analysis”. Such analysis techniques, inspired from the field of intrusion detection, can actually be transferred to a larg number of other use cases. When reading the contents of the log in real time, the process is also called “runtime verification” or “event stream processing”.
BeepBeep: a general-purpose monitor
For many years, we have been developing a log analysis and event processing software called BeepBeep. It has its own web site and all its code is open source.
The following slides give an overview of how BeepBeep works.
The following slides are taken from a more detailed tutorial on BeepBeep’s architecture.
For an in-depth study of event stream processing and a detailed presentation of BeepBeep’s concepts, please refer to a recent technical paper published by LIF:
- S. Hallé. (2017). From Complex Event Processing to Simple Event Processing. arXiv:1702.08051, 40 pages.
Finding bugs in video games
Among other things, BeepBeep has been successfully used to detect bugs in video games. As a matter of fact, we made a “proof of concept” project with BlooBuzz, a subsidiary of Québécor Media. The following playlist contains five video clips showing how BeepBeep can be used to detect bugs in a video game, automatically fill in a bug report, save a video of the actions leading to the bug, etc.
For more information about the use of BeepBeep in video games, please refer to the following research paper:
S. Varvaressos, K. Lavoie, A. Blondin Massé, S. Gaboury, S. Hallé. (2014). Automated Bug Finding in Video Games: A Case Study for Runtime Monitoring. Proc. Int. Conference on Software Testing (ICST 2014), IEEE.
Students involved (current and past)
- Kim Lavoie
- Dominic Vaillancourt
- Simon Varvaressos