Different from what happens for most types of software systems, testing video games has largely remained a manual activity performed by human testers. This is mostly due to the continuous and intelligent user interaction video games require. Recently, reinforcement learning (RL) has been exploited to partially automate functional testing. RL enables training smart agents that can even achieve super-human performance in playing games, thus being suitable to explore them looking for bugs. We investigate the possibility of using RL for load testing video games. Indeed, the goal of game testing is not only to identify functional bugs, but also to examine the game's performance, such as its ability to avoid lags and keep a minimum number of frames per second (FPS) when high-demanding 3D scenes are shown on screen. We define a methodology employing RL to train an agent able to play the game as a human while also trying to identify areas of the game resulting in a drop of FPS. We demonstrate the feasibility of our approach on three games. Two of them are used as proof-of-concept, by injecting artificial performance bugs. The third one is an open-source 3D game that we load test using the trained agent showing its potential to identify areas of the game resulting in lower FPS.
翻译:与大多数类型的软件系统不同,测试电子游戏在很大程度上仍然是由人类测试者完成的手工活动,这主要是由于连续和智能用户互动视频游戏需要的连续和智能用户互动视频游戏。最近,强化学习(RL)已被利用到部分功能测试自动化。RL能够培训甚至能在游戏中达到超人性能的智能剂,从而在游戏中进行超人性能的训练,从而适合探索它们寻找错误。我们调查使用RL测试游戏来装载游戏游戏的可能性。事实上,游戏测试的目标不仅是为了识别功能错误,而且是为了检查游戏的性能,例如,在屏幕上显示高要求的3D场景时,它能够避免滞后和保持每秒的最小框架数(FPS)。我们定义了一种方法,即使用RL来训练能够玩游戏的代理器作为人,同时试图找出游戏中导致FPS下降的场景区。我们展示了我们三种游戏方法的可行性。其中两种方法被用于通过注射人工性能错误来验证概念。第三一种是开源的3D游戏,我们在FPS上进行低载的游戏测试,从而显示其潜在的代理测试区域。