-
Notifications
You must be signed in to change notification settings - Fork 0
Testing
The primary form of formal testing undertaken was integration testing and assertions using Unity Test Tools. Testing was also done following each merge to ascertain that the addition of a new feature did not create issues in the newest version. Other important forms of testing done were play testing and unit testing.
Integration testing was used to ensure that the assets in a scene were behaving correctly and interacting with one another in the correct manner. One example of this was to check that when the player went outside the playable area it was immediately returned to the previous checkpoint and the death counter was updated.
Unit testing was performed outside of the unity framework. The purpose of unit testing is to test the code written and ascertain that it performs as it was designed. We did this by testing individual modules of the project to make sure they behaved as intended.
The functionality of Unity Test Tools turned out to be limited.The assertion components were quite limited in what they could test. The tests had to be very simple. Only one behaviour could be tested. Another drawback of the assertion components was that they could not be added to dynamically created assets. This severely limited its usefulness as the player was dynamically created.
Play testing was performed to check things which could not be automatically tested. The primary example of this was gameplay mechanics. A lot of care was taken to ensure that the player movement "feels" good. As this is a very human experience it thus needed to be tested by humans. The movement needed to be natural and intuitive in order to ensure the game was of a high quality.
