It depends on what type of games you want to test. For games like chess, which you don't need to traverse the world in which the game happens, testing would be easier, because your automated testing tool only needs to try different strategies and take different actions. Actually, the feedback given to your testing tool is limited and it only needs to process the chess board and different possible actions and outcomes. But, for third-person shooter games (or other complicated gameplay scenarios), the gameplay is way more complicated, and your automated testing tool should be very intelligent. It should process the whole gameplay and detect all the other elements in the gameplay in every moment of the game as it plays. It also needs to have a model that captures all the entities and actions within the gameplay to decide what it should do as it goes through the gameplay. Moreover, it needs to be extremely intelligent to learn how to reach next levels in the game. Regarding all the difficulties I mentioned, it seems that the best option to test a game is to use those tools provided by the game engines (like the one provided by Unity). As far as I know, there isn't a powerful automated testing tool for third-person shooter games or other complicated gameplay scenarios.