Quick answer: A small team's QA stack has six layers: automated tests (Unity Test Framework, GUT or GdUnit4 for Godot, Unreal's Automation System), device testing (Firebase Test Lab, AWS Device Farm, BrowserStack), beta distribution (Steam Playtest, TestFlight, Google Play tracks), profilers, crash and bug reporting from real players (Bugnet), and a tracker. Most of it is free; the crash and bug layer is what catches what the rest miss.
Indie teams rarely have a QA department, and they do not need one to ship a stable game. They need a handful of tools that each catch a different class of bug, and a habit of using them. Here is the toolkit by layer, with what each tool is good at.
1. Automated tests
| Engine | Tool | Good for |
|---|---|---|
| Unity | Unity Test Framework | Edit mode and play mode tests for systems, save data and gameplay rules |
| Godot | GUT (Godot Unit Test) or GdUnit4 | Unit and scene tests written in GDScript (GdUnit4 also supports C#) |
| Unreal | Automation System and Gauntlet | Automation tests from the Session Frontend; Gauntlet for running sessions at scale |
Start with the code that is expensive to get wrong: save and load, economy maths, progression flags. A dozen tests there prevent the bugs that cost the most reviews.
2. Device testing
Firebase Test Lab runs Android and iOS builds on real devices in Google's data centres, including a game loop mode for games. AWS Device Farm and BrowserStack App Automate offer large real-device fleets as well. They are the cheapest way to find the phone your game crashes on before players do.
3. Beta distribution
Steam Playtest (a separate app, so testers cannot review your game), Steam beta branches, itch.io restricted pages, TestFlight and Google Play testing tracks get builds to real players. See the best beta testing platforms for indie games.
4. Profilers and debuggers
Every engine ships a profiler (the Unity Profiler, Godot's debugger profiler and monitors, Unreal Insights). For graphics issues, RenderDoc captures and inspects frames, and PIX covers DirectX on Windows. Use them when a report says “stutters” and you need to know why.
5. Crash and bug reporting from real players
The first four layers find bugs on machines you control. This layer finds them on the thousands you do not. Bugnet captures crashes and errors automatically from live builds with the last log lines, a screenshot, the player's GPU, RAM, OS and build and a performance snapshot, and gives players an in-game report button for everything that does not crash. Duplicates group into one bug with a count, crash-free sessions are tracked per build, and a check compares your two latest versions to flag a bad patch. SDKs cover Unity, Unreal, Godot, GameMaker, Construct 3, Pygame and the web. Free to start.
6. A bug tracker
Somewhere to triage, assign and close. Bugnet includes one; if your team plans elsewhere, it files bugs into GitHub, Linear, Jira, ClickUp, Trello, Notion and more. See the best bug tracking software for game studios.
Putting it together: a weekly QA routine
- Run the automated tests on every build (a CI job is ideal).
- Before a release, run a device pass on the oldest and most popular hardware you support.
- Ship to a beta branch or playtest first.
- Watch crash-free sessions and new bug groups for the new build for 48 hours.
- Promote, hotfix or roll back based on what the data says.
Frequently asked questions
What QA tools do indie game developers need?
Automated tests for core systems, a way to test on real devices, a beta distribution channel, your engine's profiler, crash and bug reporting from live players, and a bug tracker. Most of these are free.
What testing framework should I use for Godot?
GUT (Godot Unit Test) and GdUnit4 are the most widely used. Both let you write tests in GDScript, and GdUnit4 also supports C#.
How do I test my game on many Android phones?
Use a device cloud such as Firebase Test Lab, AWS Device Farm or BrowserStack App Automate to run your build on real devices, and add crash reporting so you see failures on devices you did not test.
Do I need crash reporting if I have automated tests?
Yes. Tests catch bugs on machines and paths you control. Crash reporting catches the ones that only happen on players' hardware, drivers and save files.
Can a small team do QA without a QA department?
Yes, by combining automated tests on the riskiest code, device testing before releases, beta builds, and automatic crash and bug reporting from players.
Every QA tool finds a different kind of bug. The one that watches live players finds the ones that cost you reviews.