The Difference Between Games and Software Testing
When I was going through the process of transitioning from a games tester to a software tester, I couldn’t find any material on it.
So, to save others from the headache I endured, I decided to create a guide to doing just that.
In this guide, I want to highlight the difference between the two paths in testing, what I did to prepare for this sideways career move, and what I had already done that made the transition easier.
To clarify, in this post I'll use the term software testing to distinguish the difference between games testing and testing done outside the games industry. Although this could mean testing software, it could also mean testing desktop and mobile websites, web-based applications, or mobile apps.
My Life as a Games Tester
When I worked as a games tester and told someone what I did for a living, they almost always said, “So, do you just play games all day?”
“I wish!” I thought.
Being a games tester is one of the most challenging jobs that I've had in my life (and I've been working for 15 of the 31 years I’ve been alive!). It challenges your perseverance, your attention to detail, the attention to your job, and your love of games.
After eight hours of driving the same Honda Civic-style car in doughnuts, watching to see if it spontaneously combusts after the 14th loop, you may start to feel your passion ebbing.
Yes, this means you may have to test the same part of a game for days on end (depending on the complexity). It's clearly not all fun and games.
Games testing is only now utilizing small amounts of automation, but it is project, team, and company specific—not an industry standard. Most of games testing is done manually. When you test manually, it means you have to work through the test without aid from programmed automation scripts. Often, an experienced (maybe a lead or senior) tester will write out a test plan and distribute the work to their team.
A single test is referred to as a test case. Working through a test case is also known as running a test case. The length of a test case depends on the project, but they are generally short, and test one section of the game at a time. This helps to isolate issues within specific areas of the game.
What Is Different About Software Testing?
Unlike games testing, software testing greatly utilizes automation scripts, and yes, you test software, not games. These scripts can be created before or after producing written test cases, as either can be used to supplement the testing of the other. A number of tools and frameworks have been developed to make automation quicker, as setting up automation scripts can initially be very time consuming.
As software testing makes greater use of automation scripts, this generally means that the job of a software tester is more technical than a games tester. For example, being a software tester, you may need to be able to use tools to query databases. Still, it depends on the testing methodologies used by each company and what they're testing.
The field of software testing is usually seen as a more skilled profession than games testing, even though the skills required to be a games tester are exactly the same as those needed as a manual software tester.
So what background and experience do you need to get a job in each?
For software testing, you usually need a degree in computer science, software engineering, math, or anything technical, really.
For games testing, a degree may be useful, but it's not always necessary. A love of games, attention to detail, and a strong work ethic can usually get you into the field.
For games testing, the platforms you can test on are:
- PC (including Steam), and desktop
- Web – online games like MMOs, HTML5, and Facebook
For software testing, you have:
Types and Specialties
The platforms and content you test are the most obvious differences between the roles of a software and games tester.
These differences across the different platforms and between the content lead to diverse specialties within each role.
This involves going through every test case by hand (no matter how many times you need to run it).
This ensures that the game runs at or above the required frames per second.
If you're testing a browser game, you may need to test the game’s functionality, usability, and accessibility across different browsers. This ensures players have the same quality of experience, no matter what browser they use to play.
This is where you can show your real skill. Exploratory testing is where you're doing whatever you can to come across flaws and issues in the game. Once you've found an issue, you need to make sure you can recall the exact steps to reproduce it, so the developers can fix it.
In games testing, you may work across a number of different platforms like the latest consoles from Nintendo, Sony, or Microsoft. Each of these have different certification standards tests that games on their consoles are required to pass.
In software testing, specifically web testing, you may have to test whether the product is compatible with all the current versions of web browsers. In this situation, you would be classified as a specialist at compatibility testing.
With performance testing, you’re trying to determine how a system performs in terms of responsiveness and stability under a particular workload. Performance testing is a field that has a number of specialties within itself.
Automation involves creating test scripts that can be used repeatedly to allow testers to devote time to other tasks.
Functionality focuses on the inputs and outputs of the system and its behaviour. It can also be known as black box testing.
Any non-functional tests focus on how the system operates, rather than how it behaves. It can also be known as white box testing.
When you perform regression testing, you run through the entire functionality of a product to ensure that nothing has changed since a new feature was introduced.
Integration testing requires testing more than one component of the system at once, and making sure the way they are interacting is as expected.
This is testing individual components of the system. You must make sure their inputs and outputs are as expected.
Sanity testing is sometimes known as smoke testing. This is doing the bare minimum over a cross section of the product to ensure all the functionality is still intact.
When you perform systems testing, you work to ensure that all the components of the system work together at once and as expected.
Finally, end-to-end testing requires a test of the full cycle of the system from when the first object is produced or when the first customer interacts with it until the end state.
Automation Tools in Software Testing
I've learned that a task can only be as fun as the tool you're using to perform it.
When I first started automation it was painful—we used WaTiN. I look back now and realize that if we didn't begin with this tool, I might not have learned C# as deeply as I did, so silver linings and all that. But I let out a little scream of joy when our team was finally authorised to use Selenium. It's the most popular automation tool—at the time of writing—for web and mobile testing (with plugins).
IDE is a desktop app that allows the user to create automated scripts using simple commands to detail the command, the target, and the value. No knowledge of programming is required, just how to navigate the Direct Object Model (DOM) of websites.
Training and Certifications
Certifications from Foundation to Advanced level exist to extend and show your knowledge within software testing.
There’s currently no equivalent within games testing, although there’s nothing stopping a games tester from gaining a software testing certificate. In fact, it will probably help to strengthen the skills of that individual.
Games testing courses are available, but aren’t recognised as a necessary qualification for entry into the field.
Points to Consider When Moving from Games to Software Testing
When you decide to move from games testing to software testing you should consider the following:
Generally, software testers earn more money than games testers because, as I mentioned, the role could be more technical.
Better Quality of Life
The deadlines you work to aren't usually as high pressured as games industry projects. Although there may be some overtime, there's generally less of it, and it's often compensated. With less overtime, you have more time to be you and enjoy life, so you can work to live—not the other way around.
Improvement in Technical Expertise
Your programming skills will improve depending on how much automation you perform, but your exposure to tools that are used in the backend will also increase. You may work on a daily basis with databases improving your SQL skills, working closely with developers so you'll learn how to speak ‘dev talk’, and also debugging problems to a certain degree.
You'll have to make the time to learn automation, or demonstrate some technical ability, if you want a good chance at getting a role. If you want to get more technical, this could be a positive!
Starting from the Bottom
No matter where you were as a games tester, you'll have to start from the beginning as a software tester. This can hurt your pride a bit, but remember, juniors get a lot more leniency when it comes to making mistakes. It's best to revel in this time, make your mistakes, learn lots, find your niche, then work your way up.
There may be more points to consider as the decision to switch careers is a personal one and your motivations are not something I can account for, but these were my main ones.
When I looked at the pros and cons, the pros definitely outweighed the cons, so I switched.
Making the Transition Smoother
In order to make switching career paths as easy as possible, I created small automated tools to assist me during the mundane testing tasks. I also bought and began reading the book, Software Testing: An ISTQB-BCS Certified Tester Foundation. To help you as you explore, I’d suggest doing these things:
Read the Foundation Software Testing Book
This book covers all the basics of software testing and prepares you for any questions you may be asked about testing during your interview.
Learn the Basics of Any Programming Language
By picking up a programming language, you will make the hurdle of automation a slightly shorter jump. As you read earlier, Selenium can be programmed in a wide range of languages, so I’d recommend choosing one of these.
Play Around with Selenium
To be honest, you don't need a vast knowledge of a programming language to be able to understand the basics of Selenium. The commands are written in a readable way, so what you read is basically what you're telling the browser to execute. For example:
What do you think that means?
Move Forward One Percent at a Time
Start doing small things. Anything to build up your knowledge one step at a time, one day at a time.
After 30 days of doing this, you'll find that you have gained a lot more knowledge than you would've thought. Try reading a page from a book like the ISEB Foundation Software Testing, complete a small Selenium problem a day, or execute a small C# tutorial.
Whatever you choose, make sure it moves you forward towards your goal of building your software testing knowledge.
So What's Your Next Step?
Moving from games to software testing can seem very daunting, but if that's what you're considering, then you should jump in with both feet.
Learning alongside your current job will be tough, but it's definitely worth it. The benefits of this career move outweigh the short term drawbacks. You only need to have patience, be self motivated, and believe you can do it.