DEEP MATRIX

[ GAME DEVELOPMENT ]

QA Testing Matrix for VR Headsets and Runtimes

5 MIN READDEEP MATRIX

A QA matrix for a VR release is a grid of hardware, runtimes, settings and languages, with a clear rule for which cells get a full test and which get a quick check. Build the grid from the platforms you ship on, rank each cell by how much damage a bug there would do, and test the risky cells on real hardware. Small teams can cut the list hard without skipping the failures that hurt most.

What belongs in a VR QA matrix?

A VR matrix has more dimensions than a flat PC or mobile test plan, and each one can break the game in its own way:

  • Headsets: each model has its own display, lenses, tracking and fit, so comfort can differ even between similar devices.
  • Controllers: input layouts, grip sensors and battery behavior vary by controller family.
  • Runtimes: the software layer between the headset and your game, such as SteamVR, the Meta runtime or another OpenXR runtime.
  • PC hardware: for PC VR, the graphics card, processor, memory and connection method all matter.
  • Comfort settings: locomotion, turning, seated mode, vignettes and height adjustment.
  • Languages: longer text and different scripts change layouts and can push labels off their buttons.

How do you build the rows and columns?

Start with what your players actually use. Store pages, analytics and community feedback show which headsets and runtimes matter most, and that list should drive the grid. Then build it in four steps:

  1. List every headset family you support, and mark the ones you will test on real hardware.
  2. List the runtime paths for each family, including wired and wireless PC VR.
  3. Add a column for each controller layout, and note which headsets share it.
  4. Add comfort and language rows only where they can change what the player sees or does.

Keep the grid in a spreadsheet with one row per test case and a status column. A plain spreadsheet is enough for most small teams, and it is easy to share with the people who run the playtests.

Here is a small slice of what a finished grid can look like. The rows are examples, and your own grid will depend on what you ship:

Headset family Runtime path Controller layout Test level
Standalone Quest Meta runtime, no PC attached Touch-style Full pass
Quest over a PC connection SteamVR through OpenXR Touch-style Smoke test
Valve Index SteamVR through OpenXR Index Full pass
Pico 4 Pico's own runtime path Pico Spot check

The point of the table is not the exact entries. It is that every row has a runtime, a controller and a decision about how deep to test, so nothing gets tested by accident.

How do you rank the risk in each cell?

A risk ranking is an educated guess, and it gets better when you ask a few honest questions. Score each cell on likelihood and impact, then test from the top down.

Question A high answer means Example
How many players use this setup? More people will hit a bug there The most common headset path
Does it share a runtime with a tested path? Lower risk if the answer is yes Two headsets on the same OpenXR path
Does a bug block play? Higher impact A controller that cannot grab or fire
Does a bug affect comfort? Test it early Locomotion that breaks in seated mode

A cell that is common, unique and blocking gets a full test. A cell that shares a path with a tested cell and does not block play gets a smoke test. Everything else gets a spot check on the release candidate.

Which runtime paths should you test first?

Runtimes are where many VR bugs hide. The same headset can behave differently depending on the path it takes into your game. Games that run through OpenXR on PC VR depend on the runtime and the connection, while standalone games run on the headset itself. Wired and wireless PC VR connections add their own latency and driver quirks, which is why each one deserves its own row. For a plain explanation of how the runtime layer works, read OpenXR runtime explained.

Test the path your store listing promises first. If a page says PC VR, test PC VR. If it says standalone, test on the headset with no PC attached. Pico headsets have their own path too, so give them a row rather than assuming they match another headset.

How do you test comfort settings and languages?

Comfort settings are part of the product, not an extra. Test each option with the setting on and off, and confirm the game still plays through. Look for locomotion that works only while standing, menus a seated player cannot reach and text that clips at the edge of a panel. The VR playtest safety and comfort protocol describes how to run these checks without putting testers at risk.

For languages, start with the longest strings in each language you support. Text expands, and some scripts need different fonts. Check that every label fits, every button can be pressed and every subtitle is readable at the distance the player will actually see it.

How do you keep the matrix small enough to finish?

A small team can finish a matrix if the rules are clear. Use these:

  • Run a full pass on the top-risk cells before each release candidate.
  • Run a smoke test on the rest, covering launch, menus, a short gameplay loop and quit.
  • Keep a list of the cells you did not test, and share it with the team before release.
  • Reuse the same matrix for each build, and update the risk scores when player data changes.

Playtest sessions can also tell you which cells to move up or down the list. How to run VR playtest sessions that teach you something covers how to capture that feedback without drowning in notes.

Build the matrix from what your players use, score each cell honestly and test the risky ones on real hardware. Write down what you skipped, so nobody mistakes a smoke test for a full pass. A matrix you finish is worth more than a perfect one you never run.

Frequently asked questions

How many headsets does a small VR team need to test?

There is no fixed number. Test the headsets and controllers your players actually use, add one representative device for each controller family, and rely on smoke tests for the rest. Write down what you did not test.

Can I skip testing on a headset I do not own?

Sometimes. If a headset shares a runtime and controller layout with one you already test, a smoke test may be enough. Record the gap so the risk stays visible to the whole team.

Why does the runtime matter for VR QA?

The runtime sits between the headset and the game, so the same hardware can behave differently under SteamVR, the Meta runtime or another OpenXR runtime. Test every path your players can use.