Testing
Our testing environment(s)
There are two different testing environments for our software - the Unity Editor
and the Oculus Quest
headset. Most of our unit and integration tests, however, were carried out on Unity Editor
. There are a couple reasons for this decision: first, the process of loading the game onto the Quest headset is very time consuming. Secondly, the headset does not have an in-built Unity debugger
, unlike the editor, so when an error occurs, one can not see the error message or any other details about the error, unless we display the message on a game object (like a Canvas).
However, there were some tests that could only be carried out on the Quest headset. For example, to test whether the Hand Tracking feature or the Gesture Detection system was working correctly.
Unit tests
We used the in-built Unity test runner for our Unit tests or simply ran the game and checked for error messages. Unit tests, in the context of our project, refer to the testing of individual Unity prefabs (the Navigation Page
prefab), scripts (Navigator
script, Traffic Light Controlscripts), and methods (
Navigator.FindShortestRoute()method - our pathfinding algorithm, for example)
Integration tests
Integration tests refer to the testing and interaction/connections between game prefabs and some border functionality that requires the scripts to work together. We carried out integration tests by playing the game on Unity Editor as well as on the Oculus Quest headset to check if the system met our requirements. For example, when playing around the car interior UI, we found that when we jumped from the music canvas to the game canvas, the music stops, which was a bug in functionality.
System tests
System tests took place at the last stage of the development after our game passed all the unit and integration tests. We performed system tests on Oculus Quest only to make sure the overall user experience is delightful.
Performance tests
We performed performance testing on some of our features to check if there were any performance issues that could affect user experience - most of them were on the level of integration tests.