Unity Game QA Checklist: 12 Tests Before Client Handoff
Your Unity game is finally complete.
The environments look polished, the characters are animated, the gameplay systems are implemented, and the main menu works.
You generate the final build, launch the game, and everything appears fine.
Is the project ready to deliver?
Not necessarily.
A game can run successfully while still containing problems that only appear under specific conditions.
A player might lose progress after restarting. A menu button could stop responding at a particular resolution. An advertisement might fail to grant its reward, or a level could become impossible to complete after an unexpected interaction.
These issues are particularly important when delivering a game to a client.
The client expects more than an executable file. They need a project that meets the agreed requirements, functions on its intended platforms, and includes the necessary development files.
That’s where game quality assurance (QA) becomes essential.
A structured QA process helps developers identify problems, verify completed features, and document the project’s condition before handover.
This guide provides 12 practical Unity game QA checks for mobile, PC, and other supported platforms.
1. Define Acceptance Criteria Before Testing
The first step is understanding what the game is supposed to do.
Without clearly defined requirements, it’s difficult to determine whether a feature is working correctly.
Review the Agreed Project Scope
Start with the development brief, feature list, or approved project requirements.
For example, a mobile driving simulator might require multiple vehicles, several environments, vehicle upgrades, level progression, and a currency system.
Each feature should have a clear expected result.
A requirement such as “vehicle selection must work” is too broad.
A more useful acceptance criterion would be:
When a player purchases and selects an unlocked vehicle, that vehicle must appear correctly in the selected gameplay mode.
Separate Requirements From New Requests
During final testing, clients may request additional features.
These should be distinguished from defects in previously agreed functionality.
A bug is generally a failure to meet an existing requirement.
A new feature request changes or extends the agreed scope.
This distinction helps development teams manage revisions and project delivery fairly.
2. Perform Basic Smoke Testing
Smoke testing is a quick evaluation of whether the most important parts of the game work.
It should be performed before beginning more detailed QA.
What Should a Smoke Test Cover?
Start the application and confirm that the main menu loads correctly.
Launch a gameplay level, interact with the primary controls, complete a basic objective, and return to the menu.
Check that the application doesn’t crash during these actions.
Example: Supermarket Simulation Game
Imagine testing a Unity supermarket game.
A basic smoke test might include opening the game, starting a level, picking up a product, placing it on a shelf, completing the objective, and returning to the main menu.
If the game crashes when loading the first level, there’s little value in testing advanced progression systems until that issue is resolved.
Smoke testing helps identify major blockers before the team spends time on detailed validation.
3. Test Core Gameplay Mechanics
Gameplay functionality is the foundation of a successful game.
Visual polish cannot compensate for unreliable controls or broken objectives.
Test Player Controls
Verify that movement, camera controls, jumping, interaction, and other essential actions behave as expected.
For a racing game, test acceleration, braking, steering, collisions, and camera switching.
For a shooting game, examine aiming, firing, reloading, enemy damage, and weapon selection.
Test Unusual Player Behavior
Players don’t always follow the expected sequence.
They may repeatedly press buttons, move into unexpected areas, or interact with objects in unusual ways.
For example, what happens if a player attempts to purchase an already unlocked item?
What if they pause the game during a level transition?
These scenarios can expose problems that normal gameplay testing misses.
Verify Win and Lose Conditions
Confirm that every level can be completed and that failure conditions behave correctly.
Test what happens when the player loses, retries, restarts, or exits before completing an objective.
4. Validate Game Progression and Save Systems
A game may appear functional during a single session but fail after restarting.
Save-system testing is therefore an important part of QA.
Check Progress Persistence
Complete a level, unlock an item, and change a setting.
Close the application completely.
Then reopen it.
Verify that the expected progress and settings remain available.
Test Interrupted Sessions
Where appropriate, test what happens if the application closes during gameplay.
The game should handle interruptions according to its documented save behavior.
Check Economy Consistency
If a player purchases an item using in-game currency, verify that the correct amount is deducted and the purchased item remains unlocked.
Test situations involving insufficient currency, repeated purchases, and interrupted transactions.
The objective is to identify inconsistent or unintended changes to player progress.
5. Test Every Important UI/UX Interaction
A visually attractive interface isn’t necessarily a functional one.
Game UI testing should cover both appearance and interaction behavior.
Verify Menu Navigation
Check every important button.
This includes Play, Settings, Shop, Pause, Restart, Achievements, and other screens included in the project.
Verify that buttons open the correct panels and that navigation behaves consistently.
Test Different Screen Sizes
A UI designed for one resolution may not work correctly at another.
For mobile games, check supported screen orientations and aspect ratios.
For PC games, test the supported window sizes and display resolutions.
Look for overlapping text, clipped buttons, incorrect scaling, and elements positioned outside the visible screen.
Review Interaction Feedback
Players should understand when an action succeeds or fails.
For example, a purchase button should provide appropriate feedback if the player lacks sufficient currency.
A disabled option should not appear fully interactive.
For projects requiring interface improvements, professional game UI/UX design services can be considered separately from functional QA.
6. Use Automated Tests for Repeated Logic
Manual testing is essential, but some checks can be automated.
Unity provides the Unity Test Framework for testing C# functionality.
The framework supports Edit Mode and Play Mode tests, with options for running supported tests through the Editor or target-platform players. Unity User Manual
Edit Mode Tests
Edit Mode tests are useful for checking logic that doesn’t require a running gameplay scene.
Examples include currency calculations, inventory rules, item pricing, and progression conditions.
Suppose a player has 500 coins and purchases an item costing 200.
An automated test can verify that the remaining balance is 300.
Play Mode Tests
Play Mode tests can validate functionality that depends on runtime behavior.
For example, a test might verify that a gameplay object initializes correctly or that a particular interaction triggers an expected state change.
Unity’s official testing guide explains how to create and execute automated tests.
Automation Doesn’t Replace Manual Testing
Automated tests are valuable for repeatable conditions.
However, they cannot fully evaluate visual quality, player enjoyment, usability, or every unexpected gameplay situation.
A practical QA strategy combines automated checks with manual testing.
7. Test Performance on Target Devices
A game that performs well inside the Unity Editor may behave differently on actual hardware.
Performance testing should use devices representative of the intended audience.
Test Real Gameplay Conditions
For mobile games, evaluate loading times, frame stability, memory consumption, and responsiveness.
For PC games, test the hardware configurations specified in the project requirements.
Avoid evaluating performance only while the player is standing in an empty environment.
Test demanding gameplay situations involving effects, characters, physics, or complex environments.
Use the Unity Profiler
Unity’s Profiler can collect performance data from applications running on supported target platforms.
For Unity 6, developers can enable a Development Build and connect the Profiler to the running application.
The official documentation explains how to collect performance information using a network connection, cable, or IP address. Unity Documentation
Define Measurable Targets
Instead of accepting a vague requirement such as “the game should run smoothly,” establish appropriate performance targets for the intended devices.
These targets should be agreed upon before final acceptance testing.
8. Review Graphics, Animations, and 3D Assets
Technical functionality is only part of game quality.
Visual problems can also affect the player experience.
Inspect Important 3D Assets
Check character models, vehicles, props, and environments for visible problems.
Look for incorrect materials, missing textures, clipping geometry, broken animations, and inconsistent lighting.
Test Animation Transitions
Verify that characters transition correctly between idle, movement, interaction, and other supported animation states.
For example, a character should not remain stuck in a running animation after movement stops.
Review Collision and Physics
A visually correct model can still have incorrect collision geometry.
Test whether characters, vehicles, and interactive objects behave properly when colliding with the environment.
For a driving simulator, inspect wheel alignment, suspension behavior, collision response, and vehicle positioning.
The goal is to confirm that the visual assets and gameplay systems work together correctly.
9. Verify Platform-Specific Features
Different platforms introduce different testing requirements.
Android and iOS Games
Test supported touch controls, screen orientation, application lifecycle behavior, and mobile-specific integrations.
If the game includes advertising or in-app purchases, verify those systems using appropriate test environments.
Avoid using real financial transactions when a platform-supported test mode is available.
Windows PC Games
Verify keyboard and mouse controls, supported resolutions, graphics settings, application startup, and save-file behavior.
If gamepad support is included, test the relevant controller interactions.
VR Games
For VR projects, evaluate controller input, object interactions, interface readability, and player comfort.
Test the actual supported headset rather than assuming that successful Editor testing establishes device compatibility.
Platform testing should reflect the devices and features promised in the project scope.
10. Document Bugs With Reproducible Reports
Finding a bug is only the beginning.
Developers also need enough information to reproduce and fix it.
What Should a Bug Report Include?
A useful bug report identifies the affected build, device or platform, steps to reproduce the issue, expected behavior, and actual behavior.
Screenshots, videos, and relevant logs can provide additional context.
Example Bug Report
| Field | Example |
|---|---|
| Bug ID | QA-014 |
| Title | Purchased vehicle becomes locked after restart |
| Platform | Android |
| Build Version | 0.9.4 |
| Steps | Purchase vehicle, select it, close the app, reopen the game |
| Expected Result | Vehicle remains unlocked |
| Actual Result | Vehicle appears locked |
| Severity | High |
| Status | Open |
This is a hypothetical example, not a report from an actual GamePro Studio project.
Use Logs to Investigate Errors
Unity’s Console and application log files can contain stack traces that help developers identify where an error occurred.
The official Unity stack trace documentation explains how stack traces can assist debugging. Unity Documentation
A clear bug report reduces unnecessary communication and helps developers focus on the actual problem.
11. Run Regression Testing After Fixes
Fixing one issue can unintentionally create another.
Regression testing checks whether previously working functionality still behaves correctly after changes.
Example: Inventory System Fix
Imagine a developer fixes a problem where players can duplicate products in a supermarket simulator.
After implementing the fix, the team should test more than the original duplication issue.
They should also verify that players can still pick up products, place items, complete objectives, and save progress.
Prioritize Critical Systems
Not every change requires repeating every test.
However, changes affecting shared gameplay systems may require broader regression testing.
Important systems include player controls, progression, saving, monetization, inventory, and scene transitions.
Retest the Final Build
After completing the required fixes, generate a new build and test it.
Don’t assume that a fix verified only inside the Editor will behave identically in the delivered application.
12. Prepare the Final Client Handover Package
Once testing is complete, the project needs to be delivered in an organized format.
The exact deliverables should match the agreed contract.
Include the Required Project Files
A Unity source-code handover commonly includes the editable project, required assets, scripts, scenes, package configuration, and project settings.
Ensure that the project can be opened using the documented Unity Editor version.
Include the Final Build
Provide the agreed Android, iOS, Windows, or other platform build where applicable.
The client should know which file represents the final approved version.
Document Dependencies
Identify required plugins, SDKs, external services, and any configuration steps needed to open or build the project.
Do not include private credentials or sensitive account information unnecessarily.
Provide a QA Summary
A concise delivery report can document the tested build, covered platforms, completed checks, known limitations, and unresolved issues accepted by the client.
This makes the handover easier to review.
For clients planning a new project, GamePro Studio’s game development services cover development and related production requirements that can be defined during initial project planning.
Practical Example: Testing a Unity Racing Game Before Delivery
Consider a hypothetical Unity racing game containing several vehicles, tracks, upgrades, and gameplay modes.
The project appears complete, and the developer is preparing the final delivery.
A structured QA process would begin with basic gameplay testing.
The team would verify that players can select vehicles, start races, control their cars, and complete objectives.
Next, they would test progression.
Unlocked vehicles and purchased upgrades should remain available after restarting the application.
The UI would be reviewed for navigation problems, overlapping elements, and incorrect button behavior.
Performance testing would focus on demanding racing situations, such as scenes containing multiple vehicles, environmental effects, and complex geometry.
Finally, the developer would generate a clean build, verify the project files, and prepare the handover documentation.
For an example of the type of Unity racing project that could require this testing approach, explore the Car Stunt Simulator Unity project.
This example illustrates a general QA workflow. It does not claim that the published project underwent the exact testing process described here.
Common Game QA Mistakes to Avoid
One common mistake is testing only the first level or main gameplay scene.
Another is assuming that a successful Unity build means the project is free of important defects.
Developers may also overlook save-system testing, unusual player interactions, and platform-specific functionality.
Poor bug reports can make issues difficult to reproduce.
Finally, delivering source code without identifying the correct Unity version or required dependencies can create unnecessary problems for the receiving team.
Professional QA is not about proving that a game contains zero bugs. It is about identifying risks, verifying requirements, and documenting the project’s condition before delivery.
When Is a Unity Game Ready for Client Acceptance?
A project is generally ready for acceptance review when its agreed features have been implemented and the required tests have been completed.
Critical defects should be resolved, while any remaining issues should be clearly documented and evaluated against the agreed acceptance criteria.
The final build should match the version being reviewed.
Clients should also receive the agreed project files, documentation, and delivery instructions.
A structured handover gives both parties a clearer understanding of what has been completed.
Conclusion
Game quality assurance is an essential part of professional Unity development.
A polished game needs more than attractive graphics and functional gameplay during a single test session.
Developers should verify core mechanics, UI interactions, progression, save systems, performance, platform compatibility, and final project deliverables.
Automated testing can improve consistency, while manual testing helps identify problems involving usability and unexpected player behavior.
Clear bug reports and regression testing make the development process easier to manage.
Most importantly, agreed acceptance criteria help developers and clients determine whether a project is ready for delivery.
A successful game handover is not simply the transfer of files. It is the delivery of a tested, documented, and reviewable product.
At GamePro Studio, our services include Unity game development, UI/UX design, 3D modeling, environment production, and cross-platform development.
You can explore our game development portfolio to review our published projects.
If you’re planning a Unity development project or need assistance with an existing game, contact GamePro Studio to discuss your requirements.
Frequently Asked Questions
1. What is QA testing in Unity game development?
Quality assurance testing evaluates whether a Unity game meets its functional, technical, and usability requirements. It can include gameplay testing, interface validation, performance profiling, compatibility checks, bug reporting, and regression testing.
2. What should developers test before delivering a Unity game?
Developers should verify core gameplay, menus, player progression, save systems, graphics, animations, platform-specific features, and performance. They should also test the final build and confirm that the agreed project files are included.
3. Can Unity game testing be automated?
Yes. The Unity Test Framework supports automated Edit Mode and Play Mode tests. These are useful for checking repeatable logic and runtime behavior, but manual testing remains important for usability, visual quality, and unexpected player interactions.
4. What is the difference between smoke testing and regression testing?
Smoke testing checks whether the most important features work well enough to proceed with detailed testing. Regression testing checks whether previously working functionality remains correct after code changes or bug fixes.
5. What files should be included in a Unity game client handover?
Depending on the contract, a handover may include the editable Unity project, required assets, scripts, project settings, package dependencies, final platform builds, setup instructions, and a QA summary. The exact deliverables should be agreed upon before development begins.