QA Workflow

Automating QA Checks with Functional Tests

Unreal's Functional Testing framework lets you write repeatable, CI-friendly test maps that verify gameplay logic, performance budgets, and visual correctness automatically.

functional-testsautomationcigauntletqa

Manual regression sweeps are slow and error-prone. Unreal's Functional Testing framework (built on top of the Automation Test framework) gives you a way to encode QA acceptance criteria directly into test Blueprints or C++ actors that run headlessly in CI.

Setting Up a Functional Test

  • Create a new Level dedicated to testing — keep it minimal
  • Add an AFunctionalTest (or Blueprint subclass) actor to the level
  • Override the StartTest event and implement your assertions
  • Call FinishTest(Success) or FinishTest(Failed, "reason") when done
  • Add the level to your Gauntlet test suite for CI execution

Running via Commandline

bash
# Run all functional tests headlessly
UnrealEditor-Cmd.exe MyProject.uproject \
  -ExecCmds="Automation RunTests FunctionalTests" \
  -NullRHI -nosplash -unattended -log
Tip: Use -NullRHI for pure logic tests — it skips GPU init and cuts run time significantly on CI agents.

What to Test

  • Spawn/despawn actors and verify counts
  • Trigger gameplay events and assert state transitions
  • Screenshot comparisons for visual regression
  • Performance: assert frame budget with UE's stat system
  • Navigation mesh coverage and pathfinding validity