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 -logTip: 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