Automated bug finding in video games: A case study for runtime monitoring

被引:23
作者
Varvaressos S. [1 ]
Lavoie K. [1 ]
Gaboury S.E. [1 ]
Hallé S. [1 ]
机构
[1] Laboratoire D'informatique Formelle, Département D'informatique et de Mathématique, Université du Québec A Chicoutimi, 555 boul. de l'Université, Chicoutimi, 1G7H 2B1, QC
关键词
Debugging; Formal specification; Runtime verification; Temporal logic;
D O I
10.1145/2700529
中图分类号
TP39 [计算机的应用];
学科分类号
081203 ; 0835 ;
摘要
Runtime verification is the process of observing a sequence of events generated by a running system and comparing it to some formal specification for potential violations. We show how the use of a runtime monitor can greatly speed up the testing phase of a video game under development by automating the detection of bugs when the game is being played. We take advantage of the fact that a video game, contrarily to generic software, follows a special structure that contains a "game loop." This game loop can be used to centralize the instrumentation and generate events based on the game's internal state. We report on experiments made on a sample of six real-world video games of various genres and sizes by successfully instrumenting and efficiently monitoring various temporal properties over their execution, including actual bugs reported in the games' bug tracking database in the course of their development.
引用
收藏
相关论文
共 35 条
[1]  
Top 10 Linux Games for the Holidays, (2000)
[2]  
Barringer H., Havelund K., TraceContract: A scala DSL for trace analysis, FM 2011, (2011)
[3]  
Formal Methods. Lecture Notes in Computer Science, Vol. 6664
[4]  
Bayse E., Cavalli A.R., Nunez M., Zaidi F., A passive testing approach based on invariants: Application to the WAP, Computer Networks, 48, 2, pp. 235-245, (2005)
[5]  
Bodden E., Hendren L.J., Lam P., Lhotak O., Naeem N.A., Collaborative runtime verification with tracematches, Journal of Logic and Computation, 20, 3, pp. 707-723, (2010)
[6]  
Worst Videogame Bugs of All Time: From Game-Ending Glitches to Data, (2007)
[7]  
Destroying Nightmares, (2016)
[8]  
Calvar J., Tremblay-Lessard R., Halle S., A runtime monitoring framework for event streams with non-primitive arguments, Proceedings of the 2012 IEEE 5th International Conference on Software Testing, Verification, and Validation (ICST'12), pp. 499-508, (2012)
[9]  
Clark J., DeRose S., XML Path Language (XPath) Version 0, W3C Recommendation, (1999)
[10]  
Colombo C., Pace G.J., Schneider G., LARVA-safer monitoring of real-time Java programs (tool paper), Proceedings of the 7th IEEE International Conference on Software Engineering and Formal Methods (SEFM'09), (2009)