Learn how a behavior model combined with autonomous testing helped us find interesting bugs in our reference Super Mario game implementation. The model validates every frame during exploration, but when it disagrees with the game, which one is wrong? This is bidirectional testing: the model tests the game, and the game tests the model. The process uncovered several real engine bugs, including a teleport bug in Level 4 where Mario gets snapped across the screen due to overlapping collision boxes. All code is open source:
https://github.com/testflows/Examples/tree/v3.0/SuperMario