I want to write about a part of the culture that has been alive since the 90s but has within the last few years truly broken into the mainstream and is now a big part of today’s youth culture. I’m of course talking about speedrunning, the art of playing through video games as quickly as possible. You can go right now to the popular streaming service Twitch and watch hundreds of speedrunners completing their favorite video games in record times.
There is a strong speedrunning culture around popular video games where gamers are playing their favorite video games for hours, trying to perfect their run and make a new record time beating it. The best speedrunners get their name to the top of the leader boards and the bragging-rights to say that they are the best in the World in playing it. Speedrunning is a cousin of esports, but whereas esports focuses on competitive games with other human players, speedrunning focuses on beating the game code itself.
There are multiple different speedrun categories. Two of the most common are normal speedruns and tool-assisted speedruns (TAS). Normal speedruns focus on beating the game on the original system using the gamers memory, reaction time and hand-eye coordination skills. You could think that this is very close to manual testing where the focus is on the mechanical execution. Tool-assisted speedruns use emulators to simulate the game and a pre-programmed set of commands for the emulator to execute. This is very close to test automation, where we know the requirements (how to beat the game), what steps does this require (game character movement and skills) and are executed by another program controlling the commands (tool-assisted execution).
Many popular games have their own competition categories and completion criteria. One example of extra challenge criteria could be to complete the game without dying, collecting all the collectables or completing the game without using a particular item. Another popular category is the segmented runs where the speedrunner is focused on completing a part of the game, maybe a single level, as quickly as possible. Another category is World’s First, where people compete for achieving something for the first time. Every time a new World of Warcraft expansion is released, all the major guilds in the World compete fiercely to be the first to raid a new dungeon.
Speedrunners usually choose games that have a special place in their heart. Some want to be the best at their childhood favorite video game. Some want to beat games that give them a tough challenge. Some want to use their brains and completely break the game. And that leads us to the headline of this post – how similar is speedrunning to software testing?
If there were no bugs in video games, all the games would have to be played from the beginning to the end according to the way the game creators intended. Unfortunately (but fortunately for speedrunners!) all software and video games especially have a lot of bugs. And most of them have not even been found yet. But this gives a clever gamer the opportunity to complete the game way faster than originally intended.
Most games have bugs that enable the player to skip whole sections of the game and take out hours from the total run time. Many old-school 3D platformers have bugs with collision detection that makes it possible to get the player character to areas where they shouldn’t be – and get further in the game earlier.
The point I want to make is this: most new speedrun records are made because a new bug has been found that enables a new strategy to beat the game more quickly. If you come up with a new strategy that saves you a lot of time, you can beat the game faster than even the mechanically best players. After the new strategy has been made public, the mechanically best players squeeze out the remaining seconds with perfect execution.
The more you follow speedrunning communities, the more bugs you encounter. And the bugs are crazier and crazier. Professional speedrunners who are looking for new strategies, use emulators to study the game’s architecture and how it is technically laid out. They are using tools to figure out memory addresses where the game progression is stored and then trying to find a way to manipulate it. An example of this would be the case, where a door leads to a new level but by stacking a certain item you can corrupt the memory address to change where the door takes you. Studying these game mechanics and how they affect playing it requires a deep understanding of the game’s technical makeup.
This leads me back to my original thought. Yes, I do think that speedrunners have a great background for becoming software testers. In some sense, they already are. Especially those, who spent hours upon hours studying the game, just to break it and manipulate it to their liking. If you are doing tool-assisted running on top of that, you could already be doing software automation. Then it’s only a small leap to becoming a test automation developer.
About Tuukka Virtanen
Test automation consultant with technical experience in test automation and quality assurance. TMap Next certified Test Engineer with knowledge in test planning and execution and test design techniques. Master of Science in Information Management. Indie game development as a side project. Creative and visual thinker. The latest assignment included web and mobile game test automation with Appium and Robot Framework in an Agile customer project and regression test automation for websites.
More on Tuukka Virtanen.