Xbox Requirement test cases for PC, Mobile, and Creators Program
Version 4.2 - 10/01/2024
Introduction
The following test cases are the recommended steps to validate a title when Xbox network services are integrated into a mobile, PC or console device other than Xbox.
- For PC titles releasing in PC Game Pass, view the PC Game Pass Quality Standards.
- For a summary of changes in this release, see changes in this release at the bottom of this page.
- To review the historical change log of XRs and test cases, see Change History for Xbox Requirements and Test Cases.
- View the top failing test cases on PC.
Base Requirements
The requirements in this category apply to the general rules for the standards of coding, behavior of titles, and submission of titles.
XR-022: Official Naming Standards *
Titles must use the naming standards defined in the latest release of the terminology list for their target device platforms:
022-01 Official Naming Standards
Test Steps
- Launch the title.
- Visit all areas of the title.
- Navigate all menus and sub-menus.
- Change all available settings and options.
- If the title supports saves, save and load all possible game types.
- Watch all cinematics.
- Note all text shown.
Expected Result
All text adheres to the most recent terminology list.
Pass Examples
None
Fail Examples
- The title uses a proprietary term or image from a competitive platform.
- Title refers to a component of the device or component of a peripheral using any term that is not included in the terminology list.
XR-074: Loss of Connectivity to Xbox and Partner Services *
Titles must resolve errors with Xbox network and partner services connectivity. Titles must honor the retry policies set by Xbox network when attempting to retry a request to the Xbox service after a failure has occurred. Titles must appropriately manage messaging the user when services are unavailable. For example, if a partner service other than the Xbox network is not available, the game should not indicate that there is an issue with the Xbox network.
074-01 WAN Disconnection to Xbox Services
Test Steps
- Sign into an Xbox profile.
- While performing the following actions, disconnect the WAN network (if using an Ethernet switch/hub disconnect the uplink cable from the network device. If the device is connected via Wifi, disconnect the uplink cable from the wireless access point) connection:
- Creating a new save point.
- Loading a save point.
- Reaching an auto-save point.
- Enumerating a list of saved games.
- Searching for and joining an online session.
- Attempting to create an online session.
- Viewing a leaderboard (if applicable).
- Playing offline.
Expected Result
In the event that the device is unable to reach Xbox services, the title should respond with a user-friendly error message.
Pass Examples
- Title displays error message indicating loss of network connection to Xbox services.
- Title does not display an error message while playing a local game mode that does not require Xbox services.
Fail Examples
- User is unable to complete a non-online Xbox game session.
- Title goes into an unresponsive or unstable state.
074-02 Direct Disconnection
Test Steps
- Sign into an Xbox profile.
- While performing the following actions in the title, pull the network cable from the device or power off the WAP or wireless router:
- Creating a new save point.
- Loading a save point.
- Reaching an auto-save point.
- Enumerating a list of saved games.
- Searching for and joining an online session.
- Attempting to create an online session.
- Viewing a leaderboard (if applicable).
- Playing offline.
Expected Result
In the event the device loses connection to Xbox services, the title should respond with a user-friendly error message.
Pass Examples
- The title displays a user-friendly message while in online game mode.
- The title does not interrupt game-play during offline game mode.
Fail Examples
- An error message is displayed during offline game mode.
- The user is able to view online menus or view buffered media after the network goes offline.
074-07 Dynamic Connectivity Loss
Tools Needed
- Fiddler
Test Steps
- Sign into an Xbox profile and launch the title.
- Access non-Microsoft online feature.
- Use Fiddler to emulate downtime.
Expected Results Title should gracefully handle disconnections to non-Microsoft service.
Pass Examples
- Title does not hang or crash upon loss of connectivity to the partner-hosted service.
Fail Examples
- Error displayed implies issues with Microsoft service.
- Non-descriptive error message is displayed.
- Title crashes or becomes unstable.
074-08 Pre-launch Downtime
Tools Needed
- Fiddler
Test Steps
- Use Fiddler to emulate downtime.
- Sign into an Xbox profile and launch the title.
- Access non-Microsoft online feature.
Expected Results
Titles should provide a user-friendly error message indicating that there is a problem reaching the non-Microsoft service and should allow an opportunity to retry connection.
Pass Examples
- Title does not hang or crash upon loss of connectivity to the partner-hosted service.
Fail Examples
- Error displayed implies issues with Microsoft service.
- Non-descriptive error message is displayed.
- Title crashes or becomes unstable.
XR-132: Service Access Limitations *
Titles which exceed title and user based limits when calling Xbox network services or do not adhere to Xbox network service retry policies may be subjected to rate limiting, which may result in service interruption or deprecation. Failure to adhere to the specified limits may block a title from release, and in-production issues with released titles may result in Xbox network services suspension up to and including title removal.
132-01 Service Access Limitations
Tools Needed
- Fiddler
- Xbox services Trace Analyzer to parse the output files from Fiddler
Test Steps
- With the title running, start a fiddler trace and proceed to move through all areas of the title, including (if supported), but not limited to, the following:
- Create a game save, reboot the device and load the game save.
- Change rich presence states in quick succession (if possible).
- Unlock and view achievements.
- Post to all leaderboards and view all leaderboards using all filters.
- View in-game Friends List (including a friend with presence blocked) and move between pages rapidly.
- Match-make into all online modes, including being unable to find an available session (if possible) and generate voice traffic.
- Create, save and share a game clip.
- Access the in-game store (if applicable).
- Once test has concluded, stop the fiddler trace.
- In the XDK command prompt, run
xbltraceanalyzer -data filepath -outputdir filepath
. - Open the output directory from step 4 and open the 'index' file (select 'Allow blocked content' if prompted).
Expected Result
Games must not display any serious warnings in their Trace Analyzer output results. Titles must ensure they keep their service calls to Xbox endpoints below the specified burst and sustain limits.
Pass Examples
- The title does not exceed the sustain limit when calling Xbox services.
Fail Examples
- The title exceeds the sustain limit (limit at which rate limiting takes effect) by 10x. For example, if the sustained limit at which Fine Grain Rate Limiting takes effect is set to 300 calls in 300 seconds, titles at or above 3000 calls in 300 seconds will fail.
User profiles
The requirements in this category apply to how a game interacts with the Xbox user models, profiles, and saving user data.
XR-045: Xbox network and Account Privileges*
The Xbox network provides users with an expected level of privacy and online safety for themselves and their children. In order to deliver on that promise, titles must check the Xbox network service for privileges to complete certain actions on the Xbox network service or in a title experience.
Activity | ID | Privilege Name | Notes |
---|---|---|---|
Playing in a multiplayer game session | 254 | XPRIVILEGE_MULTIPLAYER_SESSIONS | Allows a user to join online multiplayer gameplay sessions with real-world users (not bots) in scenarios such as: Synchronous player-vs-player gameplay in the same session, asynchronous turn-based gameplay, Team-based gameplay, User-initiated matchmaking, Sending or accepting invitations, Join-in-progress sessions. Note this privilege does not pertain to local multiplayer games run on the same device. |
Playing in a cross network game play session | 185 | AuthPrivileges.CrossNetworkPlay | Allows a user to participate in a gameplay session with other real-world players who are not signed into Xbox services in scenarios such as: Synchronous player-vs-player gameplay in the same session, asynchronous turn-based gameplay, Team-based gameplay, User-initiated matchmaking, Sending or accepting invitations, Join-in-progress sessions. |
Communication with anyone | 252 | XPRIVILEGE_COMMUNICATIONS | Allows a user to communicate with any other Xbox network users through voice or text. |
Shared gaming sessions | 189 | XPRIVILEGE_SESSIONS | Allows a user to participate in connected single-player experiences in shared environments or in scenarios where a title is a hybrid free to play and paid multiplayer title and uses this privilege to gate those experiences Xbox consoles. Single player experiences must not have any features covered under privilege 252 or 254 (Communications and Multiplayer, respectively). Use of this privilege is a title capability that requires platform approval. |
User-generated content (UGC) | 247 | XPRIVILEGE_USER_CREATED_CONTENT | Allows a user to see other users' UGC online, download other users' UGC, or share their own UGC online. This does not restrict usage of previously downloaded UGC. |
Sharing to a social network | 220 | XPRIVILEGE_SOCIAL_NETWORK_SHARING | Xbox consoles Only: Allows a user to share information, including game progress, Kinect-generated content, game clips, and so on outside of the Xbox network. |
Free to play titles, demos, or betas can be configured to allow multiplayer gameplay (ID 254) for players who are not Xbox Game Pass subscribers. This is done via a service side configuration and can be initiated by contacting your Microsoft representative. These titles must continue to check for the multiplayer game privilege to ensure that parental controls and player choices are respected.
045-01 Respect User Privileges
Test Steps
- Sign in to a Xbox profile and launch the title.
- For each of the privileges identified in the XR, identify if the title supports the associated activity.
- For each possible setting of each applicable privilege identified in step [2], perform the following:
- Exit the title and change the user's settings for the privilege.
- Restart the device.
- Sign into the same profile and launch the title.
- Visit all relevant areas of the title, use all title features relevant to the privilege and verify that the title respects the user's current privilege setting.
Expected Result
Titles must honor the user's privilege settings.
Pass Examples
- The title respects the user's privilege settings.
- The title treats a partial-allow privilege setting as if the privilege is disabled / disallowed (e.g. when the User-generated content (UGC) privilege is set to Friends Only, the title behaves as if the privilege is set to Blocked).
- For titles using the Xbox One XDK, the title invokes the system UI to alert the user of any privilege conflicts (titles must use the Store::Product::CheckPrivilegeAsync API).
- For titles using XSAPI, the title shows an informative message to let the user know they cannot participate.
Fail Examples
- The title persists a user's privilege settings and does not reflect the user's actual privileges after they have been changed.
- The title treats a partial-allow privilege setting as if the privilege is set to its least restrictive setting (e.g. when the User-generated content (UGC) privilege is set to Friends Only, the title behaves as if the privilege is set to Allowed).
- For titles using the Xbox One XDK, the title uses in-game messaging to alert the user of any privilege conflicts and does not display the System UI.
- For titles using XSAPI, the title does not show an informative message to let the user know they cannot participate.
XR-046: Display Name and Gamerpic *
On Xbox consoles, titles must use the gamertag as their primary display name.
Based on design choice titles can choose between the player's modern gamertag or their classic gamertag. Modern gamertag is available in the GDK and classic gamertag is available in both ERA and the GDK.
On non-console platforms, while not required, we recommend you use the Xbox network player's gamertag in the appropriate locations within the game title's experience.
The gamertag must be displayed correctly in the title based on the gamertag type used:
Modern Gamertag
Display all 16 characters of the unique modern gamertag, which includes up to 12 characters of the modern gamertag, followed by # and the suffix number (if present). For example: Major Nelson (no suffix present) or Major Nelson#881. If modern gamertags are used, all Unicode character ranges available for modern gamertags must be supported. For more modern gamertag information and best practices visit the GDK development documentation article 'Overview of modern gamertags'.
Classic Gamertag
Correctly display all 15 characters of the classic gamertag. Classic gamertags include only ASCII characters a-z, A-Z, 0-9, comma (,), and space (ASCII character 0x20). For example: Major Nelson
In the GDK these items are returned using the XUserGetGamertag API. In ERA the gamertag is obtained using the GetUserProfileAsync
API.
046-01 Display Name and Gamerpic
Tools Needed
- XblTestAccountGui.exe from the GDK
Preparation
Create four test accounts for each of the following names and change the gamertag using XblTestAccountGui.exe for each test account to the following:
- สฐ众нь컴퓨
- आथाώঙぁヺ
- øÜêþЯЂў
- gttest1
Test Steps
- Locate and view where gamertags are displayed within the title.
- Check to see how the users' gamertag is displayed in all areas identified in Step [1].
- If the title displays users' pictures, verify that the correct Microsoft account picture or gamerpic appears for each account.
Expected Result
The user's gamertag must be displayed correctly.
Pass Examples
- The gamertag correctly shows the Unicode characters (including the auto-generated suffix) when using Modern Gamertag.
- The gamertag is correctly shown when using Classic Gamertag.
Fail Examples
- The gamertag is not rendered at all because the Unicode characters are shown as blank characters.
- The gamertag is not correctly shown when using Classic Gamertag.
XR-048: Profile Settings Usage *
The Xbox network is the source of truth for Xbox user profile information. To support this, titles must not store users’ information sourced from the Xbox network, such as profile data, preferences, or gamertags, beyond a locally stored cache intended to support scenarios of network disconnection. Any offline caches must be updated upon the next available connection to the service.
048-01 Profile Settings Usage
Configuration
- 2 Xbox devices
Test Steps
- Select a profile and create a save.
- Change user profile data, including updating a gamertag or account name.
- Boot the title and load the save made in Step [2].
- Verify that the user-profile data visible during gameplay have changed and are not stored in the save game.
- Verify that any reference to the gamertag (created automatically by the title) has been updated. This includes any reference on server-hosted functionality as well as any reference within the title.
- Boot the title on a second device and verify the updated gamertag is displayed correctly.
Expected Result
User-profile data must not be stored. For instance, if the title uses the gamertag in-game (like in a welcome message) or on a non-Xbox server (such as naming uploaded data), it must not persist if the user changes their gamertag. This does not apply if the user has manually entered the gamertag.
Pass Examples
- User-profile data and preference settings are updated in all displays after they have been changed.
Fail Examples
- The title does not display the user's updated gamertag or Microsoft account name either within the title or on Xbox Home for locally stored save data such as replays, saves, options, maps, and teams.
- The title does not update a user's gamertag for persistent posts, such as game clips, replays, leaderboards, or other custom posts, such as messages, bulletin posts, user challenges, costumes, themes, livery, tournaments, and league. Note: This applies to both new and previously created posts.
- The title stores the user's gamertag for the user's saved data, such as replays, saves, options, maps, and teams, resulting in the save data becoming unusable if the user changes their gamertag or account name.
XR-052: User State and Title-Save Location, Roaming and Dependencies*
Titles must associate progress, saved state, preferences, achievements, and other rewards with the user(s) who have recorded that progress, chosen the preferences, or earned the rewards. Titles accomplish this by properly handling user-change notifications. Titles must avoid saving state for users who are no longer signed in. Game save data must not have any dependencies on shared content or local storage.
For games that use the same TitleID across platforms, devices and/or console generations, game save progress must roam when the user is signed into the Xbox network as follows:
- Within the same platform (Xbox consoles).
- Within devices on the same platform (e.g., Xbox One and Xbox One S).
- Across generations in the device platform (e.g., Xbox One and Xbox Series X|S).
- Across PCs in the Windows platform (e.g., between two different PCs).
- Across PCs in the Windows platform and Xbox console platforms, (e.g., Windows and Xbox Series X|S) game save roaming is not required but is recommended to support the player's experience.
- For non-Microsoft platforms (e.g., iOS, Android, Switch, PlayStation®) game save roaming is not required but is recommended to support the player's experience.
052-05 Correct User Association
Test Steps
- Sign in to a profile and Launch the title.
- Progress into gameplay and save game progress.
- Terminate the title.
- Sign out of the profile from Step 1 and sign in to a new profile.
- Launch the title and attempt to access saved progress.
Expected Result
Progress saved for the original user must not be visible/accessible to the new profile.
Pass Examples
- Only saved progress associated with the new profile in step 4 is shown in step 5.
Fail Examples
- The title allows a new profile to load a different profile's saved progress.
052-06 Cloud Storage: Roaming
Devices Needed:
- Xbox One
- Xbox One S
- Xbox One X
- Xbox Series X Dev Kit (using Xbox Series X|S retail console mode)
- 2 PCs
Test Steps
- Sign in to an Xbox profile on device A and launch the title.
- Begin gameplay and make save progress (if possible, create a settings save by changing or adding a new setting configuration).
- Exit the title.
- Sign in on a second device from the same platform/generation (e.g., Xbox Series S and Xbox Series X, Xbox One and Xbox One S and a second PC) that was used in Step 1 with the same profile used in Step 1.
- Launch the same title from Step 1 and verify that all saved games and any settings and/or configuration files can be accessed and loaded correctly and they don't have any dependencies on shared content.
- For games using the same TitleID on the same platform across generations (e.g., Xbox One and Xbox Series X|S), repeat step 4.
- For PC games using the same TitleID on the Windows platform, repeat step 4.
- If supported, for games using the same TitleID across platforms (e.g., Windows and Xbox Series X|S):
- Launch the same title from Step 1 on the other supported platforms and verify that all saved games and any settings and/or configuration files can be accessed and loaded correctly and they don't have any dependencies on shared content.
Expected Result
Title-save progress must be associated with a user profile and must roam between like devices/platforms when the user is signed into Xbox services. For games using the same TitleID on the same platform across generations, game save data must roam between these platforms. For PC games using the same TitleID on the Windows platform, game save data must roam between different PCs. Game save data must not have any dependencies on shared content.
Pass Examples
- Game saves and associated settings files can be downloaded successfully on a second console on the same console platform/generation (e.g., Xbox Series S and Xbox Series X or Xbox One and Xbox One S).
- Game saves and associated settings files can be downloaded successfully on a second PC on the Windows platform.
- For console games that share the same TitleID on the same platform across generations (e.g. Xbox One and Xbox Series X|S), saves and associated settings files can be roamed between these devices.
- Game save data does not have any dependencies on shared content.
Fail Examples
- Game saves and associated settings files cannot be downloaded successfully on a second console on the same platform/generation (e.g., Xbox Series S and Xbox Series X or Xbox One and Xbox One S).
- Game saves and associated settings files cannot be downloaded successfully on a second PC on the Windows platform.
- For console games that share the same TitleID on the same platform across generations (e.g. Xbox One and Xbox Series X|S), saves and associated settings files cannot be roamed between these devices.
- The saves in the cloud are not recognized by the title on first launch, and through no user interaction, are subsequently overwritten on the second device.
- Game save data has dependencies on shared content.
Online Safety and Privacy
The requirements in this category pertain to the online safety and privacy of Xbox users.
XR-013: Linking Microsoft Accounts with Publisher Accounts*
On Xbox, titles that use partner-hosted services or accounts that require credentials must support all Xbox users and offer to link that account with the user's Microsoft account. Outside of Xbox consoles, titles can choose to allow account linking to support their game experience.
If publisher account sign in is enabled within the title, the following rules apply:
Publisher Account Sign In
Accommodate All Users
If a publisher account sign in is required for game features (single player, multiplayer, cross network gameplay, leader boards), sign in and sign up must support all user types, ages, and regions where the game title is offered and where those features are allowed by local/regional laws irrespective of age rating.- A game publisher may choose not to support a particular region, age, etc. for their publisher account. If a region, age group, or other group of players cannot create or sign into an account the title cannot require those users to sign in with an account for game features.
- If a particular account setting is not supported in a title-based sign-up experience (e.g., age or region) the title must gracefully handle by providing messaging to sign up on an external site or mobile optimized experience where that user is supported.
Gain Consent and Provide Terms for Account Information Usage
Titles must request to use and gain consent to use information from the player's Microsoft account to auto populate sign up/account creation experiences. Users must be provided with all applicable terms of use, privacy and other policies within the title (or a notice with a link to such information) during a publisher account creation process.Disclose Requirements
If a publisher account is required for gameplay or additional features, it must be disclosed in the title's product description and any physical packaging including any restrictions such as age. In title, the game must define the reason and use of the publisher account. If a publisher account limits or restricts the experience for child accounts, it is suggested to add this text to the store details page for buyer awareness:
Certain features of the game, including online multiplayer, communication and other online features, may not be accessible by Xbox child accounts. At Xbox, a child means players under the age of 13, unless local laws specify differently.
Publisher Account/Microsoft Account Linking
Authentication using the Xbox Secure Token Service (XSTS)
XSTS tokens must be used to provide identity information for authentication when linking the user's publisher account to the user's Microsoft account. For more information about XSTS token authentication see Xbox services authentication for title servicesAutorisation obligatoire.Gain Consent and Provide Choice
Users must be notified of the account linking of the user's publisher account to the user's Microsoft account. The user must be given the choice to opt-out if linking their accounts. Users must have the ability to de-link accounts.Accommodate All Users
If a publisher account sign in is required for game features (Single player, multiplayer, cross network gameplay, leader boards), sign in and sign up must support all user types, ages, and regions where the game title is offered and where those features are allowed by local/regional laws irrespective of age rating.
Note
Publishers may implement additional fraud prevention mechanisms such as two-factor authentication interrupts when a linked account signs in from a new device for the first time. This behavior is not a violation of this XR.
013-01 Linking Microsoft Accounts with Publisher Accounts
Test Steps
- Verify the title supports or requires non-Xbox accounts or login for services or functionality.
- Using a newly created Xbox profile, use the publisher provided service account or login to enter non-Xbox account credentials during initial setup.
- Verify the title allows the user to view the terms of use in the app or informs the user how to view the terms of use, prior to completing the account linking process.
- Verify that the user is not prompted to re-enter their non-Xbox account credentials in any location.
- Sign out and sign back in while the title is running.
- Repeat Step [4].
- Terminate and reactivate the title using the same profile.
- Repeat Step [4].
- Terminate the title.
- Verify that the title does not store non-Xbox account credentials locally by deleting any saved files that may have been created by the title.
- Reactivate the title and repeat Step [4].
- On a different console, launch the title using the same profile and repeat Step [4].
- Verify the user can unlink their Xbox profile from the non-Xbox account.
- Repeat steps [1]-[13] with an Xbox child account (under the age of 13) that falls within the games' age rating.
Expected Result
Titles must allow publisher accounts to be created for all users who fall within the games' age rating. The user should only have to provide their credentials once and allows the user to view the terms of use, or informs the user how to view the terms of use, prior to completing the account linking process. Users are provided with a mechanism to unlink their Xbox profile from their non-Xbox account.
Pass Examples
- The title never asks the user to re-enter their non-Xbox account or login credentials at any point after they have initially entered them and the title provides a notification of the terms of use both during the linking process and for as long as the accounts are linked.
- The title allows publisher accounts to be created for all users who fall within the games' age rating.
Fail Examples
- The title requires the user to enter their non-Xbox account or login credentials every time the title is launched.
- The title requires the user to enter their non-Xbox account or login credentials when running the title from another console.
- The title does not provide a method for viewing the terms of use during the account linking process.
- The title does not provide a method for unlinking their Xbox profile from their non-Xbox account.
- The title does not allow publisher accounts to be created for all users who fall within the games' age rating.
XR-015: Managing Player Communication *
Titles must not transmit user data or allow communication over Xbox network when the user's privacy & online safety settings do not allow it.
Titles meet this XR by retrieving data from Xbox network services. If the title uses its own services, it must check the user's privacy permissions at the beginning of a session or when a new user joins the session. For user-initiated scenarios outside of sessions, titles meet this requirement by checking privacy prior to displaying the user's data and before performing the action. The following list of privacy settings is available for titles to check:
Permission name | Description |
---|---|
CommunicateUsingText | Check whether or not the user can send a message with text content to the target user. |
CommunicateUsingVoice | Check whether or not the user can communicate using voice with the target user. |
During the gameplay session, titles which offer communication between Xbox network and non-Xbox network players must offer the ability to mute any non-Xbox network players for the duration of the session.
015-01 User Communication**
Configuration:
- Create a set of profiles with "Others can communicate with voice, text or invites" to Everyone, Friends and Blocked.
- For titles that support communication outside of Xbox, create a set of profiles with "You can communicate outside of Xbox with voice & text" to Allow, In-game friends and Blocked.
- Note: The difference between the "Allow" and "In-game friends" friends options are that "Allow" means you can talk to everyone cross network (including players you meet in random matchmaking). "In-game friends" are people you've explicitly chosen to play with by adding them to an in-game friends list.
Test Steps
- On Device 1, sign in to a profile that has been configured with the specific set of permissions per the Configuration.
- On Device 2, sign in to a profile that has no communication restrictions.
- On both devices, launch the title and attempt to communicate using text, voice (both via Kinect and via the headset), and video in every location supported and attempt to send game invites.
- Repeat Steps 1-3 for all profiles from the Configuration step.
Expected Result
Titles must check the Xbox service for a user's permissions regarding privacy and online safety-related actions and must not transmit user data or allow communication over Xbox when the user's privacy & online safety settings do not allow it.
Pass Examples
- The title prevents the user from communicating via voice and text over Xbox when that specific method of communication is configured to be blocked.
- The title prevents the user from communicating via voice and text outside of Xbox when that specific method of communication is configured to be blocked.
- The title prevents the user from receiving invites on Xbox when that is blocked.
Fail Examples
- The user is able to communicate via voice and text over Xbox when that specific method of communication is configured to be blocked.
- The user is able to communicate via voice and text outside of Xbox when that specific method of communication is configured to be blocked.
- The title allows the user to receive invites on Xbox when that is blocked.
015-02 Muting Support
Test Steps
- As user A, mute user B.
- Have both users join an Xbox multiplayer session.
- Attempt to send voice communication from user B to user A.
- Ensure that user A is unable to receive any voice communication from user B.
Expected Result
User A must not be able to hear communication from user B.
Pass Examples
- Voice communication from the muted user cannot be heard by the user who initiated the mute.
Fail Examples
- Voice communication from the muted user can be heard by the user who initiated the mute.
015-03 Blocked Users
Test Steps
- As user A, block user B.
- Have both users join an Xbox multiplayer session.
- Attempt to send voice and written communication from user B to user A.
- Locate any title-provided invitation mechanisms (any invitation mechanism that does not utilize the Xbox Shell).
- Using each of the mechanisms located in step [4], attempt to send a game invite from user B to user A.
- Ensure that user A is unable to receive any communication or invites from user B.
Expected Result
User A must not be able to hear or see communication from user B. User A must not be able to receive game invitations from User B.
Pass Examples
- Communication from the blocked user cannot be seen or heard by the user who initiated the block.
- Game invitations from the blocked user are not received by the user who initiated the block.
Fail Examples
- Communication from the blocked user can be seen or heard by the user who initiated the block.
- Game invitations from the blocked user are received by the user who initiated the block.
XR-018: User-Generated Content *
User generated content is content that users contribute to an app or product and can be viewed or accessed by other users in an online state. If your product contains UGC, you must:
- Publish and make available to users a product terms of service and/or content guidelines for User Generated Content either in game or on a title's website.
- Provide a means for users to report inappropriate or harmful content within the product to the developer for review and removal/disablement if in violation of content guidelines and/or implement a method for proactive detection of inappropriate or harmful UGC (for example, text filtering).
- Titles must remove/disable UGC when requested by Microsoft.
- Gracefully handle scenarios in which a user does not have access to UGC in game.
- Titles integrated with 3rd party mod platforms must integrate with the product's report / complaint API if available and must moderate content if required by respective 3rd party contracts.
- Titles integrated with 3rd party mod platforms must present a disclaimer, dialog, or visual cue to users if the content is not sourced from the developer
018-01 Reporting Inappropriate Content and UGC Text-String Verification
Test Steps
- Identify any areas of the title where text can be entered between non Xbox friends and is then viewable by users on another device.
- Verify the title provides a way to report other users' inappropriate content to the title or Microsoft.
- If there is no way to report inappropriate content, in each area, enter a string, sub string, etc. that is in the published list of banned words.
- Enter the banned word directly (i.e. "BannedWord").
- Enter a banned word with another non-banned word separated by a space i.e. ("Good BannedWord").
- If the title allows UGC to be created in an offline state, e.g. character names, disconnect the device from the network, enter banned word combinations and reconnect to the network.
- Verify that the inappropriate string is not visible to any other user on another device.
- Repeat Steps 3-5 in each language supported by the title and using banned words from the matching locale.
Expected Result
The title must provide a way for users to report other users' inappropriate content; or inappropriate language must either be blocked with an error message, or have the offending words replaced/masked with an inoffensive substitute.
Pass Examples
- User entered text messaging which is shared real time in game, such as a lobby or in game text overlay, or only between friends is not filtered.
- The title provides a way for users to report other users' inappropriate content to the title or Microsoft.
- The title prevents posting of inappropriate language and notifies the user of the reason the posting failed.
- The title replaces any inappropriate terms with alternative words or characters (such as [BLOCKED] or [!$%and£$]).
- Offensive strings are visible to users on the local console but are not transmitted to other non-Xbox friends beyond the local console.
Fail Examples
- The title does not provide a way for users to report other users' inappropriate content and allows inappropriate strings to be visible to non-Xbox friends on another console.
- The title allows the user to circumvent the title's inappropriate content filter by creating UGC in an offline state.
Achievements and Awards
The following requirements apply to titles that offer achievements and awards on the Xbox network.
XR-055: Achievements and Gamerscore *
Titles must provide the required number (minimum and maximum) of achievements and their associated gamerscore at launch. Titles are permitted to add achievements or gamerscore at any time after launch, with or without corresponding new content, but they cannot exceed title-based or calendar-based limits.
A single achievement cannot exceed 200 gamerscore and all achievements in the title must be achievable.
Unlocking achievements in the base game or a content update must represent a thorough exploration of or engagement with game content.
Item | Launch | Semi-annual additions | Lifetime limit |
---|---|---|---|
Minimum achievements | 10 | 0 | 10 |
Maximum achievements | 100 | 100 | 500 |
Gamerscore | 1000 | 1000 | 5000 |
Note
"Semi-annual" means January-June, July-December. Base game achievements and Gamerscore do not count towards the semi-annual limits.
055-01 Achievements
Test Steps
- Review the amount of gamerscore and total number of achievements supported by the title.
- Play through the title and attempt to gain as many achievements as possible.
- Repeat step 2 after resuming from connected-standby.
- Repeat step 2 while disconnected from Xbox services.
Expected Result
All achievements unlock according to their criteria and the maximum possible Gamerscore for the base game's launch is 1000G spread between 10-100 achievements. All achievements represent a thorough exploration of or engagement with game content.
Pass Examples
- All achievements can be gained.
- Achievements unlock as per their criteria.
- All achievements represent a thorough exploration of or engagement with game content.
- The launch version of the game has 1000 gamerscore spread across 10-100 achievements.
Fail Examples
- An achievement doesn't unlock when the criteria has been met.
- An achievement unlocks before the criteria has been met.
- Achievements do not represent a thorough exploration of or engagement with game content.
- All achievements can be unlocked within a few minutes of starting the game.
- Achievements can be unlocked without any (or minimal) user input unless required as part of the core gameplay loop.
- The launch version of the game does not have 1000G.
- The launch version of the game has more or fewer than 10-100 achievements.
- Achievements do not unlock after resuming from connected-standby.
- A single achievement exceeds 200 gamerscore.
- Achievements do not unlock after reconnection to Xbox services.
XR-057: Unlocking Achievements *
Users should earn all achievements that are defined by the base game without being required to purchase additional in-game content. Titles can't allow users to earn achievements by simply making purchases. For titles that have achievements that unlock based on a real-money purchase, that achievement should be unlockable through in-game activity or in-game currency that was earned through in-game activity.
057-01 No Additional Purchases Required for Base Achievements
Test Steps
- Review the achievement descriptions on the base title.
- Verify that they do not require additional purchases or content.
- Gain all achievements.
Expected Result
All achievements can be gained without being required to purchase additional in-title content.
Pass Examples
- All achievements can be gained without being required to purchase additional in-title content.
- No achievements require additional in-title content.
Fail Examples
- The user is required to purchase additional in-title content to unlock an achievement defined by the base title.
Multiplayer Sessions
The requirements in this category pertain to game titles that provide multiplayer sessions on Xbox. Xbox offers a consistent and simple way to find multiplayer sessions and to fine-tune the parameters used to find those sessions.
XR-064: Joinable Game Sessions and Online Play *
On Xbox consoles, titles that offer joinable game sessions must enable joinability through the Xbox shell interface.
Titles that offer cross platform multiplayer with Xbox consoles from PC devices using Xbox sign in must also enable joins through the Game Bar experience.
064-01 Joining a Game Session from Outside the Game
Configuration:
- 2 Xbox Profiles
- 2 Devices
- Device 1 Profile A - Friends with Profile B
- Device 2 Profile B - Friends with Profile A
Test Steps
- Using Profile A, create a joinable game session.
- Using Profile B not running the title, access the Friends List via Game Bar and verify that the Profile A is listed as joinable.
- It is possible that some games may only support private multiplayer sessions and therefore not appear as joinable for Profile B, in which case please jump to step 5.
- Profile B join Profile A's game.
- Confirm that both profiles are placed into the game experience together.
- Repeat steps 1- 4 but this time, instead of Profile B joining through Game Bar, have Profile A send a game invite via Game Bar to Profile B and make sure Profile B can receive, accept, and join Profile A.
Expected Result
User B must be able to join user A's game and progress into the game experience together. For games that only support private multiplayer sessions and therefore do not appear as joinable for Profile B, it is acceptable for invites to be the only mechanism to join Profile A. For multiplayer game sessions that only support joining the session via matchmaking (e.g. ranked matches), it is acceptable to not support joining via Game Bar. Titles which offer cross platform multiplayer with Xbox consoles must enable joins through the Game Bar experience.
Pass Examples
- Both profiles are placed into the game experience together.
- User B is able to join user A's game and progress into the game experience together.
- User A does not appear as joinable in the Friends List via Game Bar because the game only supports private multiplayer sessions, however user A can send user B a game invitation via Game Bar.
- User A does not appear as joinable and is unable to send game invites via Game Bar while participating in a session that only supports joining via matchmaking (e.g. ranked matches).
Fail Examples
- User B is not able to successfully join User A's game and is not placed in the game experience.
- User A does not appear as joinable in Game Bar because the game only supports private multiplayer sessions, and user A cannot send user B a game invitation via Game Bar.
064-02 Joining a Game Session from the Same Game
Configuration:
- 2 Xbox Profiles
- 2 Devices
- Device 1 Profile A - Friends with Profile B
- Device 2 Profile B - Friends with Profile A
Test Steps
- Using Profile A, launch the title and create a joinable game session within the title.
- Using Profile B, launch the same title and enter some experience within the title.
- Using Profile B, join Profile A's game via Game Bar.
- It is possible that some games may only support private multiplayer sessions and therefore do not appear as joinable for Profile B, in which case please jump to step 5.
- Confirm that both profiles are placed into the game experience together.
- Repeat steps 1-4 but this time instead of Profile B joining through Game Bar, have Profile A send a game invite via Game Bar to Profile B and make sure Profile B can receive, accept, and join Profile A.
Expected Result
User B must be able to join user A's game and progress into the game experience together. For games that only support private multiplayer sessions and therefore do not appear as joinable for Profile B, it is acceptable for invites to be the only mechanism to join Profile A. For multiplayer game sessions that only support joining the session via matchmaking (e.g. ranked matches), it is acceptable to not support joining via Game Bar. Titles which offer cross platform multiplayer with Xbox consoles must enable joins through the Game Bar experience.
Pass Examples
- Both profiles are placed into the game experience together.
- User B is able to join user A's game and progress into the game experience together.
- User A does not appear as joinable in Game Bar because the game only supports private multiplayer sessions, however user A can send user B a game invitation via Game Bar.
- User A does not appear as joinable and is unable to send game invites via Game Bar while participating in a session that only supports joining via matchmaking (e.g. ranked matches).
Fail Examples
- User B is not able to successfully join User A's game and is not placed in the game experience.
- User A does not appear as joinable in Game Bar because the game only supports private multiplayer sessions, and user A cannot send user B a game invitation via Game Bar.
064-05 Non-Joinable Game
Configuration:
- 3 Xbox Profiles each signed into a different devices
- Device 1 Profile A - Friends with Profiles B & C
- Device 2 Profile B - Friends with Profile A
- Device 3 Profile C - Friends with Profile A
Test Steps
- Using Profile A, launch the title and create a joinable game session.
- Using Profile A, invite profiles B and C to the game.
- Using Profile A, enter a game session so there is only one remaining slot after A joins.
- Using Profile B, accept the invite.
- Confirm Profiles A & B are playing together.
- Using Profile C, accept the invite and attempt to join the game session.
Expected Result
Profile C is asked to wait until the next opportunity to jump in or Profile C is messaged the reason for the failure to join the game session.
Pass Examples
- Profile C is asked to wait until the next opportunity to jump in.
- Profile C is messaged the reason for the failure to join the game session.
Fail Examples
- Profile C is not asked to wait until the next opportunity to jump in and Profile C is not messaged for the failure to join.
XR-067: Maintaining Multiplayer Session State *
On Xbox consoles, titles with online multiplayer functionality must maintain session-state information on the Xbox network. Titles do this through the Xbox Multiplayer Session Directory (MPSD) or if a title has their own multiplayer session state functionality, they may choose to instead record player interactions using the Multiplayer Activity Recent Player feature.
On devices other than Xbox consoles, titles which offer cross platform multiplayer with Xbox consoles must maintain session-state information in the Xbox Multiplayer Session Directory (MPSD). If they have their own session state functionality, they may choose to instead record player interactions using the Multiplayer Activity Recent Player feature.
067-01 Maintaining Session State
Test Steps
- Sign into an Xbox profile and launch the title on multiple devices.
- Complete an Xbox game session with all players.
- Using the Xbox App for Windows PCs (or Game Bar), view the recent players to verify that all players from the game session are included.
- Repeat steps 1-3 several more times but this time using new accounts each time.
- Repeat steps 1-4 but this time have one or more player(s) leave during gameplay and ensure their profile(s) still appear in the Recent Players list during step 2.
Expected Result
Users must be able to review all players from each and every recently played game session.
Pass Examples
- All profiles are included in the device's Recent Players list.
Fail Examples
- Not all the profiles are included in the device's Recent Players list.
- Users who quit during multiplayer gameplay do not appear in Recent Players.
BVTs: Pre-certification testing of the build
The following tests (BVTs) are used to check a title's readiness for Xbox Certification testing.
BVT-01 Build Stability
Test Steps
- Launch the title, navigate all menus and enter gameplay.
- Attempt to reproduce stability issues found while performing other BVTs.
Expected Result
The title must not have stability issues or long load times that would block full XR testing of the title.
BVT-02 Device and Xbox network sign-in
Preparation:
- PC in the appropriate sandbox
- A new Xbox profile
- Xbox App
Test Steps:
- Sign into an Xbox profile, launch the Xbox app and ensure the profile has no previous achievement data for the title.
- For titles that don't support integration with the Xbox Network, ensure the profile does not have an existing license for the title.
- Launch the title and verify if the title supports the Xbox Network.
- If there is no visual indication of successful sign in launch the title without an Xbox profile signed into the Xbox app and check if the user is prompted to sign in.
- Ensure that the user is prompted to accept the explicit consent dialog prompt.
- Verify the user can enter gameplay.
Expected Results:
The device sandbox is set correctly for the submission type, and a profile that has not seen the title before can sign in and successfully launch the title.
BVT-03 Dependencies
Preparation:
- PC with clean installation of windows
- A new Xbox profile
- Xbox App
Test Steps:
- Verify the title is built using the GDK.
- Remove all package dependencies from the device, except anything listed under vclibs.140.
- Sign into an Xbox profile and begin installing the title.
- Verify if the title pulls additional packages during installation.
- Once installation completes, launch the title and verify the title functions as expected with only those packages installed during installation.
Expected Result:
The title is fully functional using only the packages downloaded.
BVT-04 Matchmaking
Test Steps
- Device 1: Select the most basic Xbox game mode and host an Xbox game session.
- Device 2: Join Device 1's Xbox game session using quick match. (Repeat this step until the minimum number of devices has joined in-order-to start the game session.)
- Device 1 and 2: Start and complete the Xbox game session.
- Verify matchmaking works and users can enter gameplay in all other supported game modes.
Expected Result
Device 2 should always be able to locate and join Device 1's game session. Both devices should be able to complete the Xbox game session without being disconnected or encountering stability issues.
BVT-05 DLC
Test Steps
- Verify that the downloadable content submitted with the game is downloadable using the Xbox Store or an in-game mechanic.
- Once downloaded, verify that the content can be easily identified in the game. (A detailed downloadable content description provided with the submission materials helps the certification team to find the downloadable content.)
Expected Result
The downloadable content submitted with the title must be downloadable using Xbox Store or an in-game UI and once downloaded, should be easily identifiable in the game.
BVT-06 Languages
Test Steps
- Ensure that the devices 'Windows display language' setting is set to English.
- Progress into the title.
- Verify the title:
- Does not crash or enter an unresponsive state
- Does not output any debug on screen.
- Implements localization in all intended areas.
- Repeat steps 1-4 for all languages supported by the title.
Expected Result
The title contains all supported languages. The title should also not contain stability issues or debug that are language specific.
BVT-07 Basic Configuration
Test Steps
- Launch the title and ensure all BVT feature checks do not require changes to the PC settings such as Time/Date to work.
- Verify that a workaround is not required to reach the main menu of the title.
Expected Result
Basic functionality is expected to be working when a title is entering Certification.
BVT-08 Xbox Store Availability
Configuration:
- Submission ingested into Certification CERT and CERT.DEBUG sandboxes.
Test Steps
- Sign in and attempt to install the title via the Store.
- Upon completion of installation, launch title and navigate to the main menu (or equivalent screen).
Expected Result
Titles must be able to be installed and launched while in the Certification CERT and CERT.DEBUG sandboxes.
BVT-09 Conditions for Resubmission
Test Steps
- Attempt to reproduce all issues flagged as CFRs in the most recent report for the title.
- Verify that any of the issues that reproduce have been granted exceptions.
Expected Result
Issues marked as CFR in the previous report have been fixed unless an exception has been granted through the established exception process.
BVT-10 Version Check
Test Steps
- Install the title.
- Navigate to C:/Program Files/Windowsapps and compare the installed folder name with the version listed in the submission form.
- Compare the name of the installed MSIXVC with the name listed in the submission form.
Expected Result
The name of the installed MSIXVC matches exactly with that called out in the submission documents.
BVT-11 Service Config Validation
Test Steps
- Sign into an Xbox profile that has not previously accessed the title.
- Launch the title.
- Ensure the user is prompted to accept the Xbox network account permissions.
- Check the title for a service config:
- For non-MSIXVC submissions, verify the installed package includes an xboxservices.config file, and that the file is greater than 0 KB.
- For MSIXVC submissions, verify the installed package includes a Microsoft.gameconfig file.
Expected Result
The title's service config must be configured for test.
Changes in this Release
Date | Document version | Change description |
---|---|---|
October 1, 2024 | 13.1 | Update to XR-046 Display Name and Gamerpic. The four test strings used to verify gamertags display correctly have been updated. The new strings are:
Test case 048-01 Profile Settings Usage: Added test step 6 to verify updated gamertags on a second device. Updated "Xbox Live" to "Xbox network". |