Testland
Browse all skills & agents

platform-cert-overview-reference

Reference catalog of game-QA test categories and the four platform-holder certification regimes a multi-platform title submits to before release. Defines the six canonical test categories (functional / compliance / compatibility / performance / localization / accessibility) plus the multiplayer and content-rating cross-axes; documents the submission workflow, severity vocabulary, test-bench configurations, and known SLAs for Microsoft Xbox Requirements (XR), Sony TRC (gated PlayStation DevNet), Nintendo Lotcheck (gated Nintendo Developer Portal), and Steam Direct review; and includes the building-a-cert-checklist workflow that maps a target platform's requirement items to the six categories. Cites public sources inline; cites gated NDA portals by stable ID per PLUGIN_AUTHORING.md Step 4 fallback. Use when planning a game test pass or cert calendar, mapping internal QA findings to the platform's vocabulary, sequencing submissions across platforms, or emitting a pre-submission checklist.

Install with skills.sh (any agent)

npx skills add testland/qa --skill platform-cert-overview-reference
View source

platform-cert-overview-reference

Overview

A multi-platform title that ships on console plus PC submits to four distinct certification regimes, each with its own requirements document, severity vocabulary, test-bench configuration, and SLA. This skill is the pure reference that maps those four regimes onto a common structure so QA leads can plan a cert calendar without re-learning each portal.

PlatformRegimeDocument nameSource
XboxXbox CertificationXbox Requirements (XR)learn.microsoft.com (opens in new window) (public)
PlayStationSony TRCTechnical Requirements ChecklistPlayStation DevNet (gated)
NintendoLotcheckSubmission GuidelinesNintendo Developer Portal (gated)
SteamSteam DirectApp Review Processpartner.steamgames.com (opens in new window) (public)

NDA note. Sony TRC and Nintendo Lotcheck live behind gated portals; their exact clause numbers, SLAs, severity vocabulary, and bench matrices are cited by stable ID ("Sony TRC" / "Nintendo Lotcheck") per PLUGIN_AUTHORING.md Step 4 fallback. Xbox and Steam requirements are public and cited inline.

The six canonical test categories (functional / compliance / compatibility / performance / localization / accessibility) that map across all four regimes are defined in "The six test categories" below.

When to use

  • Planning a game test pass - which of the six categories apply, who owns each, and how a bug maps to a category.
  • Planning a cert calendar - when to submit, expected SLA, how many parallel passes to budget.
  • Mapping a CFR / hold / fail back to internal QA categories.
  • Sequencing submissions across platforms - which platform tends to surface which class of issue first.
  • Emitting a per-platform pre-submission checklist (see "Building a cert checklist" below).
  • Onboarding a new team member to the cert vocabulary without full NDA-portal access on day 1.

The six test categories

A game build is tested against six canonical categories the industry has converged on over three console generations (sources: Microsoft's Certification step-by-step guide (opens in new window), Xbox Accessibility Guidelines (XAG) v3.2 (opens in new window), Steam's App Review Process (opens in new window), and Schultz & Bryant, Game Testing All-In-One, 3rd ed., ISBN 9781305077133):

#CategoryScopeTypical owner
1FunctionalMechanics, scripting, AI, UI flow, save/load, economy/progression match the design spec.Engine-specific automation + manual QA
2ComplianceBuild conforms to platform holder's Requirements / TRC / Lotcheck document.Cert / submission QA
3CompatibilityRuns across all required SKUs, OS versions, hardware generations, and display/audio/storage configurations.Lab / device-cloud QA
4PerformanceHits declared frame-time, load-time, memory, thermal, and battery budgets on each target SKU.Performance engineers + profilers
5LocalizationTranslated strings fit their UI, render in their script, and behave under RTL + CJK + length expansion; VO coverage correct.LQA agencies + automation
6AccessibilityMeets platform-required or -recommended accessibility guidelines (Microsoft XAG, AbleGamers, CVAA/EAA where applicable).Accessibility QA + design

Category notes:

  • Functional. Microsoft's Build Verification Testing (BVT) (opens in new window) stage is largely functional: "BVTs is a reduced test pass designed to make sure a product is fully testable and configured properly before entering full certification testing" - functional bugs that break BVT block the entire cert pass. Tooling: the engine skills (unity-test-framework, unreal-automation-system, godot-gut-tests) plus recorded-input replay (gameplay-recording-replay).
  • Compliance. The per-platform requirement documents and the CFR / SRI / ION severity codes are in references/platform-cert-details.md. A CFR (Condition for Resubmission) fails cert and must be fixed before resubmit.
  • Compatibility. The Xbox 5-console bench layout that exemplifies the required matrix - plus the Sony / Nintendo / PC equivalents - is in references/platform-cert-details.md.
  • Performance. Frame-time targets (16.67 ms / 60 Hz, 33.33 ms / 30 Hz) under representative load; long-session memory stability ("soak" test). Microsoft requires a minimum sustained framerate per XR testing (opens in new window); Sony TRC performance gates and Nintendo thermal + battery rules are NDA (cite by stable ID).
  • Localization. The cert bench varies Console Language across consoles to exercise localized assets. Runtime risks screenshot review misses: German string overflow (~30% longer than English on average), CJK subpixel rendering, Arabic/Hebrew bidirectional layout, missing VO takes, lip-sync drift.
  • Accessibility. Microsoft XAG v3.2 entries each specify Goal / Scoping questions / Implementation guidelines; the Microsoft Gaming Accessibility Testing Service (MGATS) (opens in new window) tests against the XAG. Regulatory overlays: US CVAA (in-game communications), EU EAA from June 2025.

Triage workflow

Given a bug report: identify the symptom → map to a category (cheatsheet below) → assign the owner from the table → set severity in the platform holder's vocabulary (CFR / SRI / ION for Xbox; comparable NDA tiers for Sony / Nintendo - triage CFRs first) → record the XR / TRC / Lotcheck ID in the bug tracker so cert QA can verify the fix → confirm the category and requirement ID still resolve in the current requirements list before closing (a stale XR number is the common triage error).

SymptomCategorySeverity hint
Crash on save loadFunctionalHigh - cert-blocker
XR-024 fail (unhandled controller disconnect)ComplianceCFR - cert-blocker
Black screen on PS4 base, fine on PS5CompatibilityHigh - gens-affecting
22 fps in raid encounter (target 30)PerformanceTriage vs. budget
German "Zurück" overflows buttonLocalizationSev 3 - UI
Subtitles missing in cutscene 7AccessibilityXAG fail
Host migration drops playersMultiplayer (functional + compliance)High

Cross-axes: multiplayer and content rating

Multiplayer is not a seventh category - it cuts across functional + compliance + compatibility + performance: state-machine correctness under packet loss / latency / disconnect (see multiplayer-state-machine-coverage), matchmaking + session lifecycle, anti-cheat compatibility with platform integrity systems. Per Microsoft's certification-guide (opens in new window), "Multiplayer does not work as expected" is one of the most common reasons a title is placed on Hold during an Xbox cert pass.

Content rating (ESRB / PEGI / CERO / USK / IARC) is a regulatory classification, not a testing category - but Steam requires the Content Survey (opens in new window) before review, platform holders gate distribution on the local rating board's certificate, and localization may interact with rating (removing gambling minigames for the Belgian release).

Certification regimes

Per-regime detail lives in one reference file each:

  • Microsoft Xbox Certification - public XR requirements, three-stage submission (Submission checks -> BVT -> XR testing), CFR / SRI / ION severity, the 5-console bench matrix, and SLAs (5 business days digital). See references/xbox-certification.md.
  • Sony PlayStation (TRC) and Nintendo Lotcheck - the two NDA-gated console regimes: TRC / Lotcheck structure, submission workflow, severity, and the Switch handheld/docked + Joy-Con test surface unique to Nintendo. See references/console-nda-regimes.md.
  • Steam Direct - the lightest regime: two parallel reviews (Store Presence
    • Product Build), 3-5 business days each (plan for 7); the bar is "starts up
    • features match store page + Steam Wallet for IAP". See references/steam-direct.md.

Versioning and deprecation

Time-sensitive version facts, isolated here so the body stays evergreen:

  • The Xbox XR list ships per GDK release; v16.1 (dated 5/01/2026) is current at time of writing. Verify the version that applies to your GDK before quoting XR numbers.
  • The XR page header (opens in new window) lists gdk-2510, gdk-2604, and gdk-2610 monikers.
  • The May 2026 v16.1 release retired XR-134 (Data Transfer Using Web Protocols) per the Changes in this Release table; XR identifiers churn release-to-release.
  • Sony PS5 TRC supersedes PS4 TRC (PS5 Pro adds 60-Hz / 8K / Game Boost guidance); Nintendo Lotcheck tracks Switch hardware revisions and Switch 2.

Cross-platform comparison summary

DimensionXboxSonyNintendoSteam
Requirements docXR (versioned per GDK)TRC (NDA)Lotcheck (NDA)App Review Process
Public visibilityFullGatedGatedFull
Submission stages3 (val + BVT + XR)Multi-step (NDA)Multi-step (NDA)2 parallel (store + build)
Test-pass typesOptional + Final(NDA)(NDA)One pass per submission
Severity vocabCFR / SRI / IONNDA (comparable)NDA (comparable)Pass / Fail (informal)
Console SLA (digital)5 BD(NDA - practitioner-weeks)(NDA - practitioner-weeks)3-5 BD (plan for 7)
Content-update SLA3 BD (1 BD bypass on PC)(NDA)(NDA)Same as initial review
Bench matrix5 consoles × SKU / display / audio / powerPS4 / PS4 Pro / PS5 / PS5 Pro (NDA)Switch / OLED / Lite / Switch 2 + handheld/docked (NDA)Per-OS startup
Accessibility surfaceXAG v3.2 (recommended; MGATS service available)TRC clauses + Sony's accessibility guidance (NDA)Lotcheck clauses (NDA)Not gated
Achievements / Trophies surfaceXR-055 / -057 / -058 / -060 / -062Trophies (NDA)None native to LotcheckSteam Achievements (no cert gate)

Sequencing across platforms

A pattern that surfaces issues earliest:

  1. Xbox Optional Submission first. Public requirements + paid pre-pass means partners get the most explicit feedback on the most-numerous XR list before sinking it into Sony / Nintendo submission slots.
  2. Sony TRC dry-run (internal, against the partner's most recent TRC version). Patterns the team learned from Xbox port over.
  3. Nintendo Lotcheck if the title supports Switch - handheld / docked + Joy-Con state surface is unique and needs its own pass.
  4. Steam Direct can usually slot in late; the bar is the lowest.

This is a heuristic, not a mandate - partners with strong in-house TRC expertise often reverse the Xbox / Sony ordering.

Building a cert checklist

To turn a target platform into a ready-to-run pre-submission checklist, follow this workflow (inputs: target platform - xbox / playstation / nintendo / steam / all; optional milestone context, title-features list, target hardware SKUs):

  1. Identify the gating document from the regimes table above: Xbox XR v16.1 (public), Sony TRC (gated - stable ID "Sony TRC"), Nintendo Lotcheck (gated - stable ID "Nintendo Lotcheck"), Steam App Review Process (public). For all, emit one section per platform in that order.
  2. Filter by title features. Mark items Not Applicable when a requirement only applies to a feature the title does not use (e.g., XR-064 Joinable via shell is N/A for a single-player-only title). Keep the row and mark it N/A with the reason - never silently omit, so reviewers can confirm the exclusion is intentional.
  3. Emit one checklist section per platform. Header row: requirements-doc name + version, source URL or stable-ID cite, gated vs public, submission SLA from the comparison table above. Then a table with columns # | Requirement | Description | Test Category | Pass Signal | N/A? - the Test Category comes from the six-category taxonomy above; the Pass Signal names the observable outcome that counts as a pass. Public platforms get requirement IDs + inline URLs; gated platforms get bucket names + the stable-ID cite - never reproduce NDA clause text verbatim.
  4. Append sequencing advice from "Sequencing across platforms" above, plus the platform's common cert blockers (e.g., Xbox's most common hold reasons - missing partner accounts, sandbox partner-service gaps, multiplayer failures - per the certification guide (opens in new window)).

Refuse to emit a checklist item whose claim has no available source - surface the gap instead of inventing text. Engine test scenario files are a different job: the game-test-scenario-author agent authors those.

Anti-patterns

Anti-patternWhy it failsFix
Treating cert as a Q4 milestoneLate-found CFRs delay launch by weeksRun XR / TRC checklists from milestone 1
Treating "QA" as one undifferentiated bucketLoses ownership; compliance gaps surface at certUse the six categories explicitly in test plans + bug-tracker fields
Compatibility on the dev kit onlyRetail SKUs (Series S, PS4 base, Switch handheld) behave differentlyLab test on retail hardware per the bench layout in references/platform-cert-details.md
Performance averaged over the levelSpikes cause CFRs; averages hide themFrame-time histograms, p99, sustained-window measurements
Localization screenshot reviewMisses runtime overflow, missing VO, lip-sync driftPlaythrough every locale; not a glanced screenshot
Accessibility as a launch checklistArchitectural changes (rebindable input) can't be retrofittedXAG scoping questions at design milestone, not at submission
Multiplayer tested only in low-latency LANDrops, NAT, host migration fail in the wildInject loss / jitter; see multiplayer-state-machine-coverage
Optional submission "to find out where we are" without prepBurns paid slot to find bugs internal QA could haveRun internal XR pre-pass before any paid Optional
Submitting before partner-service stubs are readyHeld titles cost real calendar days per Microsoft's common hold reasons (opens in new window)Stand up CERT.DEBUG / CERT sandbox partner accounts before submission
Using XR-only language with Sony / Nintendo teamsCross-platform vocabulary collapses; finger-pointingTranslate findings via the comparison table above
Treating Steam Direct review as "real cert"Misses console requirements that wouldn't surface on SteamUse the four regimes' actual requirements docs - Steam is not a proxy
Cross-network play without privilege checksXbox XR-045 / XR-007 fail - CFRUse XPRIVILEGE_* constants per the XR-045 privilege table (opens in new window)
Achievements that "drift" between updatesXbox XR-060 fail - published achievements can't change unlock rules / rewardsLock achievement design before launch; only modify name / description / icon post-launch
Local-storage writes > 1 GiB / 5 minXbox XR-133 failRate-limit save / cache flushes

Limitations

  • NDA-only details. Sony TRC and Nintendo Lotcheck exact clause numbers, SLAs, severity vocabulary, and bench matrices are behind gated portals - see the NDA note above and references/console-nda-regimes.md.
  • Version churn. XR numbers and GDK monikers change release-to-release - see the Versioning and deprecation section.
  • Cloud / streaming variants (Xbox Cloud Gaming, PlayStation Cloud Streaming, GeForce NOW, Nintendo Cloud Streaming) have additional supplementary requirements not enumerated here.
  • Region-specific overlays (China's NPPA, Korea's GRAC, EU EAA from 2025-06-28) layer on top of platform cert and are out of scope of this skill - consult per-region documentation.
  • Mobile (iOS App Store / Google Play / Galaxy Store) is not a "platform cert" in the console sense; not covered.

Sony TRC and Nintendo Lotcheck - reference

View source (opens in new window)

Sony TRC and Nintendo Lotcheck - reference

Full detail for the two NDA-gated console regimes, for platform-cert-overview-reference.

NDA note (applies to every clause below). All Sony TRC and Nintendo Lotcheck specifics are behind gated portals - PlayStation DevNet and the Nintendo Developer Portal. They are cited by stable ID ("Sony TRC" / "Nintendo Lotcheck") per PLUGIN_AUTHORING.md Step 4 fallback; partners with portal access should consult the current authoritative revision. Individual clauses are not re-marked NDA in the sections below.

Sony PlayStation Certification (TRC)

Source of truth

  • Document: Sony Technical Requirements Checklist (TRC) - gated NDA portal at PlayStation DevNet.
  • Per-generation supplements: PS5 TRC supersedes PS4 TRC; PS5 Pro adds 60-Hz / 8K / PS5 Pro Game Boost guidance.

Structure

The Sony TRC is a numbered checklist organised into roughly comparable buckets to the Xbox XR list:

  • Functional - title stability, error recovery, save game.
  • Trophies - Sony's analogue to Xbox Achievements (exact count / point limits by stable ID).
  • Multiplayer - session lifecycle, presence, voice + text chat.
  • PSN integration - sign-in, friends, party.
  • Content delivery - DLC, patches, packaging.
  • Compatibility - generation matrix (PS4 base / PS4 Pro / PS5 / PS5 Pro), Game Boost, backward compatibility.
  • Hardware peripherals - DualSense haptics, adaptive triggers, PSVR2 (where applicable).

Submission workflow

Sony documents its high-level publishing workflow publicly via playstation.com/en-us/develop (opens in new window); the per-step TRC details are NDA.

  1. QA pre-cert - partner runs internal TRC dry pass.
  2. Submission upload - Master to Sony's submission system.
  3. Format QA - Sony's QA team validates the build against the TRC.
  4. Pass / Fail decision - fail tickets list each TRC clause violated.
  5. Re-submit - corrected master goes back through the same workflow.

Severity vocabulary

Sony classifies findings on a severity scale comparable to the Microsoft CFR / SRI split. Each finding lists the TRC clause it violates and the steps to reproduce.

SLAs

Sony does not publish SLAs publicly. Practitioners budget calendar-weeks for a console-game format QA pass; patch / minor-update SLAs are shorter than initial-release SLAs.

Nintendo Lotcheck

Source of truth

  • Document: Nintendo Submission Guidelines ("Lotcheck") - gated Nintendo Developer Portal.
  • Public-facing partner portal: developer.nintendo.com (opens in new window) (the developer landing page is reachable without NDA but shows only general program info; the Lotcheck document itself requires developer-portal access).

Structure

Nintendo Lotcheck covers analogous buckets:

  • Functional and stability - boot, save, error recovery.
  • Network play and online services - Nintendo Network authentication, online matchmaking, friend lists, parental controls.
  • Profile and user data - Nintendo Account, Mii, save data.
  • Storage - microSD / system memory boundaries, save data cloud sync where applicable.
  • Compatibility - across Switch hardware revisions (original / Lite / OLED) and Switch 2 where supported, docked vs. handheld mode transitions, joy-con + Pro Controller + detached + paired modes.
  • Performance - sustained framerate in handheld vs. docked, thermal behaviour during long sessions.
  • eShop metadata + ratings - region-specific (Japan / Americas / Europe / Australia / Korea).

Workflow

The Lotcheck submission workflow is comparable in shape to Sony TRC: pre-cert dry-run, master upload, Nintendo QA pass, fail ticket list keyed to Lotcheck clauses, re-submission. Exact step names and SLAs are NDA.

Notable distinguishing constraints

  • Handheld / docked transitions are a Switch-specific test surface with no analogue on Xbox / PlayStation.
  • Cartridge + eShop dual delivery complicates patch / DLC layout.
  • Joy-Con drift / detached / single-Joy-Con modes add a controller-state matrix beyond the Xbox / PS controller test surface.

Platform certification detail

View source (opens in new window)

Platform certification detail

Per-platform requirement documents, severity codes, and the compatibility bench layout that back the six-category taxonomy in SKILL.md.

Requirement documents by platform (Compliance)

PlatformDocument nameSource
Xbox consoleXbox Requirements (XRs)learn.microsoft.com/.../console/certification-requirements (opens in new window)
Xbox PCXbox Network Policies for PC and Mobilelearn.microsoft.com/.../pc/live-policies-pc (opens in new window)
PlayStationTechnical Requirements Checklist (TRC)Gated NDA portal; cite by stable ID "Sony TRC"
NintendoLotcheck / Submission GuidelinesGated NDA portal; cite by stable ID "Nintendo Lotcheck"
SteamApp Review Processpartner.steamgames.com/doc/store/review_process (opens in new window)

Each requirement maps to test cases with explicit Test Steps, Expected Behavior, and Pass/Fail examples - see Microsoft's Certification Tested Xbox Requirements for Xbox Console Games (opens in new window).

Severity model (Xbox; broadly applicable)

CodeNameEffect
CFRCondition for ResubmissionTitle fails cert; must be fixed before resubmit
SRIStandard Reporting IssueRelated to an XR but not severe enough to fail; fix recommended
IONIssue of NoteNot tied to an XR; informational
Non-Tested-XR could not be tested in this pass

Sony TRC and Nintendo Lotcheck use comparable severity tiers internally (NDA - cite by stable ID).

Compatibility bench layout

The Xbox bench - per the Certification step-by-step guide (opens in new window) - exemplifies the required matrix:

ConsoleSKUResolutionStorageAudio
Console 1Xbox One / Xbox Series X720pInternal HDDStereo
Console 2Xbox One X / Xbox Series S4kInternal HDD5.1 Bitstream
Console 3Xbox One S / Xbox Series X1080pInternal HDDStereo
Console 4Xbox Series S1080pUSB HDDHeadset (Windows Sonic)
Console 5Xbox Series X720pUSB HDDStereo

The same matrix logic applies to Sony (PS4 base / PS4 Pro / PS5 / PS5 Pro), Nintendo (Switch original / OLED / Switch 2), and PC (GPU vendor × driver version × OS × DirectX/Vulkan). Microsoft tracks cross-generation requirements under XR-130: Xbox Console Families and Generations (opens in new window). Each bench console also varies Console Language to exercise localized assets in the cert pass.

Steam Direct - reference

View source (opens in new window)

Steam Direct - reference

Full Steam Direct regime detail for platform-cert-overview-reference.

Source of truth

Workflow

Per the App Review Process (opens in new window):

  1. Developer purchases the Steam Direct Fee or obtains an app credit; creates the application in Steamworks.
  2. Developer completes the Content Survey (age ratings, content warnings).
  3. Developer marks the title "ready for review" - two parallel reviews begin:
    • Store Presence Review - 3-5 business days (plan for 7).
    • Product Build Review - 3-5 business days (plan for 7).
  4. On approval, the title can be released on its scheduled date.

Per the same page: "Once your game has been reviewed and approved, there is no need to go through review again."

What is reviewed

Per the same page, the Store Presence Review checks:

  • "Your store page should only contain features and content that will be available at launch."
  • "Capsule images must display readable product titles / logos."
  • "Screenshots must show only gameplay, excluding concept art or marketing materials."
  • Description quality, no external links.

The Product Build Review checks:

  • "Your product will need to start up properly" across all listed OSes.
  • "All supported features listed on the store page will need to be implemented."
  • "Your product must use Steam Wallet for any in-game transactions."

Special categories

Per the same page:

  • Early Access - requires answering all Early Access section questions before review.
  • Adult Content - both store-page and build review required; may exceed standard timeframes.
  • Trading Cards - separate 3 - 5 business day review for card assets and drop configurations.

Comparison to console cert

Steam Direct is dramatically lighter than the three console regimes: no equivalent of Xbox XR test cases, no equivalent of Sony TRC bench matrix, no equivalent of Nintendo handheld / docked test surface. The bar is "starts up + features match store page + uses Steam Wallet for IAP" rather than a multi-stage cert pass.

Microsoft Xbox Certification - reference

View source (opens in new window)

Microsoft Xbox Certification - reference

Full Xbox regime detail for platform-cert-overview-reference. Version-specific notes (XR v16.1, GDK monikers, retired XRs) are consolidated in the skill's "Versioning and deprecation" section.

Source of truth

Stages

Per the Certification step-by-step guide (opens in new window), a submission goes through three stages in order:

  1. Submission checks - Submission Validator + malware scan. "Submission Validator gives feedback to developers and allows them to address common problems that would cause titles to fail ingestion into Partner Center and/or Certification."
  2. Build verification testing (BVTs) - "a reduced test pass designed to make sure a product is fully testable and configured properly before entering full certification testing".
  3. Xbox Requirement (XR) testing - "the bulk of the testing and is where all applicable XR test cases will be validated against your title."

Submission types and SLAs

Per the same guide:

Submission typeConsole SLAPC (MSIXVC) SLA
Disc6 business daysN/A
Digital5 business days3 business days
Digital Content-Update3 business days1 business day (incl. bypass)

There are two test-pass types:

  • Optional submission - paid, tested in CERT.DEBUG sandbox with red-signed content; no pass/fail decision.
  • Final submission - last pass before release / RTM; tested in CERT sandbox with green-signed content on retail devices.

XR categories

XRs are organised into the categories enumerated in the XR document (opens in new window):

CategoryRepresentative XRs
Base requirementsXR-001 (Title Stability), XR-003 (Title Quality), XR-022 (Naming), XR-074 (Service Loss), XR-130 (Console Families and Generations), XR-131 (Display Mode Support), XR-132 (Service Access Limits), XR-133 (Local Storage Write Limit, 1 GiB / 5 min)
SecurityXR-009 (Secure Title Development, per Microsoft Store policies 10.2 / 10.2.2 / 10.2.3 / 10.2.4)
Online Safety and PrivacyXR-013 (Account Linking), XR-014 (Player Data, child / teen handling), XR-015 (Player Communication, with CommunicateUsingText / CommunicateUsingVoice privilege checks), XR-017 (Title Ratings), XR-018 (UGC)
Content packages and updatesXR-034 (Streaming Install Initial Play Marker), XR-037 (DLC Dependencies), XR-123 (DLC unlock without relaunch), XR-129 (Intelligent Delivery via PackageInstallChunksAsync)
PurchasingXR-036 (In-Title Pricing), XR-039 (Common Purchase UI)
User profilesXR-045 (Privileges, e.g. XPRIVILEGE_MULTIPLAYER_SESSIONS ID 254, XPRIVILEGE_COMMUNICATIONS ID 252, XPRIVILEGE_USER_CREATED_CONTENT ID 247), XR-046 (Gamertag display), XR-047 (User-Profile Access), XR-048 (Profile Settings Usage), XR-052 (Save Roaming), XR-112 (User and Controller activation), XR-115 (User / Controller add and remove)
Achievements and AwardsXR-055 (Counts and Gamerscore - min 10, max 100 launch / 500 lifetime, single ach ≤ 200 GS), XR-057 (No real-money unlocks), XR-058 (No cross-title sharing), XR-060 (No modifying active achievements), XR-062 (PEGI 12 / ESRB EVERYONE 10+ name and description content)
Multiplayer sessionsXR-064 (Joinable via shell), XR-067 (MPSD session state), XR-070 (Friends Lists), XR-124 (Game Invitations)
Betas and Game PreviewsXR-117 (Beta notification splash)

XRs that are tested in Cert are marked with an asterisk on the source page; not all XRs are tested every submission. See the test cases page above for per-XR Test Steps + Expected Behavior + Pass / Fail examples.

Issue severity vocabulary

Per the Certification step-by-step guide (opens in new window):

CodeNameEffect
CFRCondition for ResubmissionTitle fails cert; must be fixed before resubmit
SRIStandard Reporting IssueTied to an XR but not fail-severe; fix recommended
IONIssue of NoteNot tied to an XR; informational
Non-Tested(no code)XR could not be tested in this pass

CFR severity is determined by Failure Mode Analysis (FMA) (opens in new window) which combines severity × probability × repeatability.

Common hold reasons

Per the same guide, titles are most often placed on Hold because of:

  • "Missing or non-functioning partner accounts that are required for testing."
  • "Partner services do not support the CERT.DEBUG and CERT sandboxes."
  • "Multiplayer does not work as expected."

(Multiplayer issues are a particularly common cert blocker - see multiplayer-state-machine-coverage for the test patterns that catch them pre-submission.)

Bench layout (compatibility matrix)

Per the Certification test bench configuration (opens in new window) section of the guide:

ConsoleSKUResolutionStorageAudioPower
1Xbox One / Xbox Series X720pInternal HDDStereoInstant-On
2Xbox One X / Xbox Series S4k (alt HDR after 4 h)Internal HDD5.1 BitstreamInstant-On
3Xbox One S / Xbox Series X1080pInternal HDDStereoEnergy Saving
4Xbox Series S1080pUSB HDDHeadset (Windows Sonic)Instant-On
5Xbox Series X720pUSB HDDStereoEnergy Saving

Reports

Three report types (per same guide):

  • Optional complete report - issued at end of Optional Submission; no pass / fail; lists SRIs and CFRs.
  • Final pass / fail report - issued at end of Final Submission; the decision report.
  • Interim report - mid-pass snapshot; no pass / fail.

Exception requests

Per the guide: "If your title is not fully compliant with any Xbox Requirement (XR), you can request an exception for that XR. This might occur if your title is introducing innovative features or if strong technical limitations would prevent the title from meeting the XR." Work with Microsoft contacts well in advance - "approval of an exception is not guaranteed."

Related skills

game-perf-profiling

Profiles game builds against frame-time, memory, GPU draw-call, and GC-spike budgets using Unity Profiler + Profile Analyzer + Performance Testing package and Unreal Insights + stat commands. Establishes pass/fail thresholds (16.6 ms at 60 fps, 33.3 ms at 30 fps), writes automated performance regression tests that run in CI, and emits a structured budget report per SKU. Use when a title must hit a declared frame-time or memory budget before a milestone gate or platform-cert submission, or when a recent change needs a performance regression check.

gameplay-recording-replay

Build a deterministic gameplay record/replay test artefact for Unity, Unreal, or Godot - record a player session, save it to disk, replay it bit-for-bit, and assert that the resulting game state matches the original. Covers Unity Input System's InputEventTrace API (Enable / Disable / WriteTo / ReadFrom / Replay) for input-level capture, Unreal's Replay System (DemoRec / DemoPlay / DemoStop console commands plus DemoNetDriver + NetworkReplayStreamer, default storage at %LOCALAPPDATA%/{Project}/Saved/Demos) for replication-stream capture, and Godot's community-pattern deterministic-RNG + input-script replay since Godot ships no first-party replay system. Use when authoring a regression-test artefact for player-recorded sessions, building a netcode replay for spectator / esports, or producing reproducible bug repros for cert teams.

godot-gut-tests

Author and run GUT (Godot Unit Test) - the community-canonical GDScript test framework at github.com/bitwes/Gut and gut.readthedocs.io. Covers install (Godot Asset Library or manual `addons/gut/` copy + plugin enable), GUT panel inside the editor, writing tests that extend GutTest with `test_` prefix methods, the assertion family (assert_eq / assert_almost_eq / assert_true / assert_signal_emitted), lifecycle hooks (before_each / after_each / before_all / after_all), inner classes for grouping, parameterized tests via `params=[...]`, doubles / stubs / spies, async / coroutine tests, the command-line runner (`-d -s addons/gut/gut_cmdln.gd -gdir=res://test -gjunit_xml_file=... -gexit`), JUnit XML export, and CI integration. Godot 4.x uses GUT 9.x (current main branch supports 4.6.x; godot_4_7 branch for 4.7.x); Godot 3.x uses GUT 7.x. Use when the unit under test is GDScript code in a Godot project.

multiplayer-state-machine-coverage

Build a coverage matrix for a networked-game state machine that exercises connect / authority-handoff / disconnect / reconnect / host-migration paths across Unity Netcode for GameObjects, Unreal Engine replication, and Mirror Networking. Workflow: enumerate the engine's connection states + ownership states + replicated-property update rules, cross them against latency / loss / out-of-order packet injection, encode each combination as a test fixture, and emit a go / no-go gate. Use before submitting a multiplayer title to platform cert - Microsoft's cert guide lists 'Multiplayer does not work as expected' as one of the most common Hold reasons, and Xbox XR-067 (MPSD session state) is failed by uncovered state-machine paths.

unity-test-framework

Author and run the Unity game-engine Test Framework (`com.unity.test-framework`, currently v1.8). Distinct from the ThrowTheSwitch Unity C testing library at throwtheswitch.org/unity - the two tools share only a name. Covers package install via Package Manager, the EditMode vs PlayMode split, the [Test] / [UnityTest] / [SetUp] / [TearDown] / [UnityPlatform] attributes, assembly-definition setup (Editor folder vs asmdef with `includePlatforms` / `optionalUnityReferences: [TestAssemblies]`), Test Runner window, command-line batch invocation with `-runTests` / `-testPlatform` / `-testResults` / `-testFilter` / `-testCategory`, NUnit 3.5 assertion API, and CI integration. Use when the unit under test is C# Unity code that needs to exercise the Unity runtime or editor.

unreal-automation-system

Author and run Unreal Engine's Automation Test Framework - Epic's C++ test framework for UE 4.x / 5.x, documented at dev.epicgames.com/documentation/en-us/unreal-engine. Covers the five test categories Epic defines (Unit / Feature / Smoke / Content Stress / Screenshot Comparison), the IMPLEMENT_SIMPLE_AUTOMATION_TEST and IMPLEMENT_COMPLEX_AUTOMATION_TEST macros, the BDD-style Automation Spec API (DEFINE_SPEC / BEGIN_DEFINE_SPEC / Describe / It / BeforeEach / LatentIt / xIt), latent commands (ADD_LATENT_AUTOMATION_COMMAND), the Automation Driver for UI input simulation (IAutomationDriverModule::Get().CreateDriver(), By::Id / By::Path locators), running via Session Frontend (Window > Test Automation) and command line (-ExecCmds="Automation RunTests …"), and CI integration. Use when the unit under test is C++ Unreal code that needs the UE runtime, editor, or UMG UI surface.