How to test a mobile game
Direct answer
Shipped untested, a mobile game charges a parent's saved card for in-game currency when a child taps a confusingly placed purchase button, and collects personal information from players under 13 without notifying parents or getting their consent. 8 tests are mandatory here, each tied to a risk in the map below. After the release smoke check, start the risk tests with end-to-end functional tests: a new account set to under 13 must start with voice and text chat off before any child plays a matched session with strangers.
8 mandatory testsfirst: end-to-end functional tests
What counts as a mobile game
A mobile game here is a free-to-play or paid iOS and Android game with in-app purchases of currency, items or passes, live services such as matchmaking and events, and players who may be children. It covers purchase confirmation, server-side inventory, loot box odds, chat defaults, parental consent and backend capacity at launches and events. Console and PC releases of the same game and real-money gambling apps are out of scope.
Adjacent product types not covered here
- kids app: A kids app is built for children with no matchmaking or live events, so ad SDK certification and parental gates lead instead of launch-day load.
- social network: A social network ranks posts in a feed and sells no in-game currency, so self-harm content and public-by-default profiles replace accidental purchases and loot box odds.
- messaging app: A messaging app carries chats between known contacts, so address book notices and reconnect storms replace chat with strangers matched into a squad.
Risk map
| Risk | Grade | Note | Evidence | |
|---|---|---|---|---|
| Physical or psychological harm to a user user-harm | harm | practitioner single incident, no second source | Voice and text chat are on by default, so a child matched with strangers in a squad is exposed to harassment from the first session. | |
| Money leaves or fails to arrive money-loss | money | primary | A child taps a confusingly placed purchase button and the saved card is charged for in-game currency without a parent's consent. | |
| Fine or enforcement by a regulator regulatory-penalty | legal | primary | The game collects personal information from players under 13 without notifying parents or getting their verifiable consent. | |
| Outage during a demand peak outage-under-load | outage | primary | Launch-day or live-event player traffic far above forecast overloads the game backend, and players cannot log in or play. | |
| App rejected or removed by a store store-rejection | distribution | primary | A loot box that does not show the odds of each item before purchase, or a kids-rated game with an uncertified ad SDK, is rejected. |
Mandatory tests (8)
Step 1: release smoke tests
Why:store-rejection
Done when: On the release build, a new player completes the tutorial, buys one item with a sandbox account and finds it in the inventory after a restart, and the loot box screen shows item odds before the buy button.
Tool class: mobile automation. Who usually runs it: QA engineer.
Step 2: end-to-end functional tests
Why:user-harmregulatory-penalty
Done when: A new account set to under 13 starts with voice and text chat off, and only a verified parent can turn them on.
Tool class: mobile automation. Who usually runs it: QA engineer.
Step 3: exploratory testing
Done when: A tester acting as a child tries to buy currency and chat with strangers, and each attempt stops at a parental gate.
Tool class: test management. Who usually runs it: QA engineer.
Step 4: data integrity and migration testing
Why:money-loss
Done when: For a sample of sandbox purchases, every charge in the store's purchase records matches a purchase the player confirmed in the game, and each purchased item appears in the player's inventory once.
Tool class: data validation. Who usually runs it: developer.
Step 5: payment and money-flow testing
Why:money-loss
Done when: No sandbox purchase can start from a loading screen, sleep wake or item preview, and every purchase asks for a confirmation that names the item and price.
Tool class: mobile automation. Who usually runs it: QA engineer.
Step 6: compliance checks
Why:regulatory-penaltystore-rejection
Done when: A reviewer confirms each loot box shows item odds before purchase, and a player under 13 cannot reach chat or purchases without a parent's consent.
Tool class: test management. Who usually runs it: product manager.
Step 7: performance and load testing
Done when: A load test at the launch or event forecast plus the margin the team set keeps login and match start within the team's target.
Tool class: load generator. Who usually runs it: developer.
Step 8: resilience and failure testing
Done when: When the service-discovery cluster or session store degrades, players see a queue screen and keep their inventory and progress after recovery.
Tool class: chaos tool. Who usually runs it: developer.
Recommended and optional tests
unit testsrecommended
Becomes mandatory when drop rates, rewards or pricing rules change.
regression suiterecommended
Becomes mandatory when live content ships between client releases.
penetration testingrecommended
Becomes mandatory when currency or items can be traded between players.
device and browser compatibilityrecommended
Becomes mandatory when crash reports concentrate on low-memory devices.
analytics and event tracking testsrecommended
Becomes mandatory when an ad or attribution SDK is added to a build rated for children.
accessibility testingoptional
May help when players report that menus or subtitles cannot be read.
localization testingoptional
May help when the game launches in markets with another language.
offline and poor-network testingoptional
May help when matches are played on mobile networks that drop mid-session.
Not needed and why
Not needed: one team owns client and server. Becomes recommended when a separate team or partner ships against the game API.
Not needed: purchase confirmation and chat defaults are checked by the payment, compliance and end-to-end items. Becomes recommended when tutorial drop-off is high.
Not needed: payments and accounts stay with the store. Becomes recommended when the game stores payment details or player accounts outside the store.
Order of work
First release
- release smoke tests: On the release build, complete the tutorial as a new player, buy one item with a sandbox account, find it in the inventory after a restart and check that the loot box screen shows item odds before the buy button.
- end-to-end functional tests: Create a new account set to under 13 and confirm voice and text chat start off and only a verified parent can turn them on.
- exploratory testing: Play as a child and try to buy currency and chat with strangers, logging whether each attempt stops at a parental gate.
- data integrity and migration testing: Compare a sample of sandbox purchases in the store's purchase records with the purchases players confirmed in the game, and confirm each purchased item appears in the inventory once.
- payment and money-flow testing: Try to start sandbox purchases from a loading screen, a sleep wake and an item preview, and confirm each purchase asks for a confirmation naming the item and price.
- compliance checks: Confirm each loot box shows item odds before purchase and that a player under 13 cannot reach chat or purchases without a parent's consent.
- performance and load testing: Load the backend at the launch or event forecast plus the team's margin and confirm login and match start stay within the team's target.
- resilience and failure testing: Degrade the service-discovery cluster and the session store and confirm players see a queue screen and keep inventory and progress after recovery.
Ongoing cadence
- release smoke tests: On every build before store submission.
- performance and load testing: Before each launch, new season or live event.
- compliance checks: When a loot box is added or its odds change, and when child privacy rules change in a market.
- payment and money-flow testing: When a new currency pack, pass or purchase screen ships.
- unit tests: On every merge that changes drop rates, rewards or pricing rules.
- regression suite: On every release once live content ships between client releases.
- analytics and event tracking tests: When an ad or attribution SDK is added or updated in a build rated for children.
Tools
Listed alphabetically inside each test type, filtered to the tests above and to the platforms of mobile game (ios, android). Not recommendations.
release smoke tests
- Firebase Test LabRuns app tests on hosted devices. iosandroidfreemium
- TestRailTest case and run management. webiosandroidapicommercial
- XrayTest management inside Jira. webiosandroidapicommercial
end-to-end functional tests
- AppiumCross-platform mobile UI automation over WebDriver. iosandroidopen-source
- ApplitoolsVisual comparison of screens across builds. webiosandroidcommercial
- BrowserStackCloud of real devices and browsers. webiosandroidcommercial
- DetoxGray-box end-to-end testing for React Native apps. iosandroidopen-source
- EspressoAndroid UI testing framework from Google. androidopen-source
- LambdaTestCloud browser and device grid. webiosandroidcommercial
- MaestroMobile UI flows written in YAML. iosandroidfreemium
- Sauce LabsCloud test infrastructure for web and mobile. webiosandroidcommercial
- XCTestApple's framework for unit and UI tests. iosopen-source
payment and money-flow testing
- Adyen test environmentTest cards and scenarios for Adyen integrations. webapiiosandroidcommercial
- Stripe test modeTest cards and scenarios for Stripe integrations. webapiiosandroidfreemium
unit tests
regression suite
device and browser compatibility
- AppiumCross-platform mobile UI automation over WebDriver. iosandroidopen-source
- ApplitoolsVisual comparison of screens across builds. webiosandroidcommercial
- BrowserStackCloud of real devices and browsers. webiosandroidcommercial
- Firebase Test LabRuns app tests on hosted devices. iosandroidfreemium
- LambdaTestCloud browser and device grid. webiosandroidcommercial
- Sauce LabsCloud test infrastructure for web and mobile. webiosandroidcommercial
analytics and event tracking tests
- AvoTracking plan and event validation. webiosandroidfreemium
- Segment ProtocolsTracking plan validation for Segment events. webiosandroidcommercial
What to send to the person who will test
Send the checklist and the brief below. The printable checklist for mobile game has the same 8 items with checkboxes.
Download the checklistMarkdownCSVBrief (Markdown)
Acceptance criteria wording
A release of the mobile game is accepted when a new player completes the tutorial, buys an item in the sandbox and keeps it after a restart, and no purchase starts from a loading screen, sleep wake or item preview without a confirmation naming the item and price. A new account set to under 13 starts with voice and text chat off, and each loot box shows its odds before the buy button. A load test at the event forecast keeps login and match start within the team's target, and every store charge in a sample matches a purchase the player confirmed.
Brief
# Test brief: mobile game Product type: mobile game. A free-to-play or paid game with in-app purchases and live services. Risk map and evidence: https://howtotestaproduct.com/how-to-test/mobile-game/ Printable checklist: https://howtotestaproduct.com/checklists/mobile-game/ Run these 8 mandatory tests in this order. A test is done only when its done condition is true on the build you will release. 1. release smoke tests (risks: store-rejection). Tool class: mobile automation. Usually run by: QA engineer. Done when: On the release build, a new player completes the tutorial, buys one item with a sandbox account and finds it in the inventory after a restart, and the loot box screen shows item odds before the buy button. 2. end-to-end functional tests (risks: user-harm, regulatory-penalty). Tool class: mobile automation. Usually run by: QA engineer. Done when: A new account set to under 13 starts with voice and text chat off, and only a verified parent can turn them on. 3. exploratory testing (risks: money-loss, user-harm). Tool class: test management. Usually run by: QA engineer. Done when: A tester acting as a child tries to buy currency and chat with strangers, and each attempt stops at a parental gate. 4. data integrity and migration testing (risks: money-loss). Tool class: data validation. Usually run by: developer. Done when: For a sample of sandbox purchases, every charge in the store's purchase records matches a purchase the player confirmed in the game, and each purchased item appears in the player's inventory once. 5. payment and money-flow testing (risks: money-loss). Tool class: mobile automation. Usually run by: QA engineer. Done when: No sandbox purchase can start from a loading screen, sleep wake or item preview, and every purchase asks for a confirmation that names the item and price. 6. compliance checks (risks: regulatory-penalty, store-rejection). Tool class: test management. Usually run by: product manager. Done when: A reviewer confirms each loot box shows item odds before purchase, and a player under 13 cannot reach chat or purchases without a parent's consent. 7. performance and load testing (risks: outage-under-load). Tool class: load generator. Usually run by: developer. Done when: A load test at the launch or event forecast plus the margin the team set keeps login and match start within the team's target. 8. resilience and failure testing (risks: outage-under-load). Tool class: chaos tool. Usually run by: developer. Done when: When the service-discovery cluster or session store degrades, players see a queue screen and keep their inventory and progress after recovery. Acceptance criteria wording: A release of the mobile game is accepted when a new player completes the tutorial, buys an item in the sandbox and keeps it after a restart, and no purchase starts from a loading screen, sleep wake or item preview without a confirmation naming the item and price. A new account set to under 13 starts with voice and text chat off, and each loot box shows its odds before the buy button. A load test at the event forecast keeps login and match start within the team's target, and every store charge in a sample matches a purchase the player confirmed. Report back for each test: pass or fail against its done condition, the build or version tested, and the proof (screenshot, log line or report file). Licence: CC BY 4.0.
For founders: what to forward and what to ask back. For product managers: turning this page into tickets.
Questions about testing a mobile game
What testing does a mobile game need?
8 tests are mandatory, each tied to one of the 5 risks in the map, such as purchases a child triggers through a confusing button, data collected from child players without parental consent and backend overload at launch. They include exploratory sessions where a tester plays as a child and tries to buy and chat. Unit, regression, penetration, compatibility and analytics tests are recommended, each with the event that makes it mandatory.
What gets a mobile game rejected by an app store?
The map attaches store rejection at primary grade: a loot box that does not show each item's odds before purchase, or a kids-rated game with an uncertified ad SDK, is rejected. The release smoke check confirms loot box odds show before the buy button on every build, and compliance checks run when a loot box is added or its odds change. Analytics tests of ad SDK traffic from a child account become mandatory when an ad or attribution SDK is added to a build rated for children.
What is the minimum testing for a mobile game at MVP stage?
The minimum is the 8 mandatory tests, because their conditions hold from the first release: the game sells currency or items, is played by children, has chat and needs capacity for launch. Accessibility, localization and offline tests are optional. Contract, usability and security scanning are not needed until the conditions on the page change.
When is test automation worth it for a mobile game?
The release smoke check of tutorial, purchase, inventory and loot box odds runs on every build. Unit tests of drop rates and rewards become mandatory when those rules change. The regression suite of purchase-confirmation, child-account chat default and loot box odds cases becomes mandatory when live content ships between client releases.
Which tests in a vendor test plan for a mobile game are not needed?
Contract tests are not needed while one team owns client and server, until a partner ships against the game API. Security scanning is not needed while payments and accounts stay with the store, until the game stores payment details or accounts outside it. Usability testing is not needed while purchase confirmation and chat defaults are checked by the payment, compliance and end-to-end items, and becomes recommended when tutorial drop-off is high.
Evidence
ev-0263court-or-fineprimary
Fortnite Video Game Maker Epic Games to Pay More Than Half a Billion Dollars over FTC Allegations of Privacy Violations and Unwanted Charges, Federal Trade Commission
Children and teens have been bullied, threatened, harassed, and exposed to dangerous and psychologically traumatizing issues such as suicide while on Fortnite.
Supports user-harm for a kids app with chat or multiplayer: the FTC tied harm to children to voice and text chat being on by default, tied unwanted charges to confusing purchase buttons, including purchases triggered when waking the game from sleep, on a loading screen or while previewing an item, and found personal information collected from children under 13 without notifying parents or getting their consent.
published 2022-12-19 · verified 2026-10-07
ev-0290court-or-fineprimary
In the Matter of Apple Inc., Federal Trade Commission
Supports money-loss for a mobile game: the case concerns children's in-app purchases in games billed to parents without their consent.
published 2014-01-15 · verified 2026-10-07
ev-0024regulatorprimary
Children's Online Privacy Protection Rule (COPPA), U.S. Federal Trade Commission
COPPA requires verifiable parental consent before collecting personal information from children under 13 on sites and apps directed to children or with actual knowledge.
published undated · verified 2026-10-07
ev-0291post-mortemsecondary
Bringing Pokémon GO to life on Google Cloud, Google Cloud
Within minutes of launching in Australia and New Zealand, player traffic surged well past Niantic's expectations.
Supports outage-under-load for a mobile game: the cloud provider's engineering write-up describes launch traffic for a location-based mobile game far above the publisher's forecast and the scaling work that followed.
published 2016-09-30 · verified 2026-10-07
ev-0292post-mortemprimary
Roblox Return to Service, Roblox
Enabling a relatively new streaming feature on Consul under unusually high read and write load led to excessive contention and poor performance.
Supports outage-under-load for a mobile game: the company's post-mortem shows a game platform used on phones taken down when its service-discovery cluster failed under high load.
published 2022-01-20 · verified 2026-10-07
ev-0001store-guidelineprimary
App Review Guidelines, Apple
Apple reviews every iOS, iPadOS and macOS App Store submission against these guidelines, including crashes and bugs at review, privacy disclosures, in-app purchase rules and extra rules for medical, financial and kids apps, and apps with user-generated content must let users report offensive content and block abusive users (guideline 1.2), and apps offering loot boxes or similar mechanisms must disclose the odds of each item type before purchase (guideline 3.1.1).
published undated · verified 2026-10-07
ev-0003store-guidelineprimary
Designing apps for children and families, Google Play
Google Play Families policy sets extra requirements (ads, data collection, SDKs) for apps whose target audience includes children.
published undated · verified 2026-10-07
Disclaimer
This page lists tests and risks for a product category, not for your product. Risks are attached only with the evidence shown in the Evidence section. Tools are listed alphabetically and are not recommendations. Nothing here is legal, regulatory or security advice; where a regulator or a store sets a requirement, their page is linked and takes precedence.