Automated Gui Testing for Games using pseudo-DSL
MetadataShow full item record
In the last few years, game development has been going through rapid improvements in terms of graphics quality and game play and, thus, the need for better interaction between gamers and games (artificial intelligence) has greatly increased. As games become more complex, however, so do game states; and game developers now have to work on game engines that are able to provide users with more flexible scenarios. As a result, programming a game to react in unpredictable ways significantly raises the possibilities of facing new challenges, as there is always more space for errors and bugs that the human eye is now unable to perceive, let alone reproduce for testing purposes, within a reasonable period of time. I firmly believe that evolutionary computing could prove to be a valuable asset towards this direction and play an interesting role in game development and testing, by helping game designers, programmers and testers to better understand the behavior of a game. The advantages of evolutionary programming methods could fulfill the need for high testing standards, since they can produce almost human and less predictable behaviors. In my thesis, I will research evolutionary computing techniques and examine how they perform in player behavior simulation, as well as develop the corresponding algorithms to given testing purposes. More specifically, this thesis presents a prototype of a new Domain Specific Language to describe a testing purpose and how it could be decomposed into a plan. Then, this needs to be converted into fitness functions, along with an efficient algorithm to solve these functions to produce test-cases satisfying the purpose; which might be difficult for a human tester to solve manually. For my evaluation part, I will develop a tool/library using an emerging scripting language, Lua. My main goal in that part is to prove the scalability of my algorithm and expose wrong behavior, bugs and errors in real game software. The field of evolutionary game testing is still unexplored and it seems that it can potentially offer a lot to the computing science community. My research could help in reducing time consumption in game testing. It could also improve the Quality Assurance procedure and provide game designers with new ways of developing better AI systems.