Skip to the content.

Test Report for Feast for a Crow

1. Component Testing

Universal Movement


To test the functionality of universal movement (Player, Camera, NPC):

These three extensions to Movement inherit the base movement, and the only difference between the three is the camera’s “panic” mode.

Collectable


To test the functionality of Collectables (any interactable object that can give items), we can test this by having the Player interact with any Collectable object in the scene and receive the Items contained within if the incoming weight does not overburden the Player’s inventory.

For example, the current extension to Collectable is: Chest.

Another extension is Pick-Up:

Chest


To test the lock functionality of the Chest, the Player can wield different kinds of keys, but only the correct KEY_ID will be accepted as a key to unlock the chest. If successful, the Chest will unlock and give the player the items it contains if the Player can hold the extra incoming weight.

Inventory


To test the functionality of Inventory, we can combine this with tests with Collectable, as any Item that is picked up or collected by the player will be logged to the Debug console (later, displayed in the In-Game Menu), along with showing the current weight being carried by the Player.

If an incoming item’s weight (I.E. any Collectable) plus the current weight being carried is not greater than the max weight, then the Item will be added to the Inventory and add the incoming item’s weight to the current weight and display properly in the Debug Log; else, it will display that the Player is carrying too much.

If a Player uses a Key item, it will be removed from the Player’s inventory, and the result will be logged to the Debug Log along with the new weight, which should update with the current weight minus the key’s weight.

In-Game Menu UI


To test the functionality of the in-game menu we have to make sure that the stats for the player would automatically update when something was changed. Current implemented stats on the menu are:

We would change these stats by making the player take damage, get thirsty, and regen rate would be effected by thirst. Once the player has taken a change to their stats, we had to make sure that there was change applied to the menu, which was successful. We would see an update in text displaying the current Health/Thirst/Regen Rate. Same goes for skin changes, the skin would successfully change on the menu and in game.

Save/Load States


For save or load states, we wanted to make sure that the player can successfully save and load their data into the game. For this, we made sure to allow the player to take damage, change their skin, or any other stat change. After any of these stat changes, the player would have to press the save button which would then call the save state method. Then the player would be able to quit the game and load back in which would automatically call the load state method and bring back their previous stats and selected skin.

Health Bar and Regeneration


To test the functionality of the health bar taking damage, a simple user input was used to deal damage to the player. If the system works properly, the health bar object of the player should visually decrease along with any numbers accociated with player health.The health regeneration system is tested by user input that deals damage to the player object. If the system works properly, then the health bar slider should increase as do the corresponding numbers accociated with the player’s health. This works in conjunction with a thirst bar system that will be explained below.

Thirst Bar


To test the functionality of the thirst bar, a simple user input was used to reduce the thirst bar slider object. If implemented correctly, the thirst bar slider will visually decrease along with any accociated numbers to the player object. This works in conjunction with the health regeneration system. By reduced thirst stats, the natural health regeneration rate of the Player object should be also be reduced. This means that the lower the thirst bar, the slower the health will regenerate. Both the health regeneration and thirst systems interact and rely on each other.

Animations


Functionality of animations in the game are represented visually in game. Clear movement of sprites and fluid objects should be visible to the user under the right conditions.

Visuals


In-game visuals are clear and responsive. Testing for visuals is as simple as making sure all objects and scenes are visable to the user. The gameplay revolves entirely around the visuals. All objects should make sense and have clear representation of what they are in terms of gameplay. In terms of testing, any and all objects used are visually reperesented on the map or scence, including some interactability with the user such as chests or NPC’s.

2. System Testing

A series of steps was used to test the system. Initial testing was done on each newly added component, this is refered to as unit testing. For every newly added function of the game, it’s functionality was tested after implemented into the game. For example, upon the implementation of the UI inventory system, we tested functionality i.e. how to activate the menu, close the menu, proper display overlay in game etc. As components were added and tested for functionality, the next step was to view their interaction with other in-game compontents. This was our integration testing phase; seeing how new components or systems work together. Keeping with the UI example, the UI can now accurately utalize and display the user’s player statistics: health, thirst, items, and so on. The final step in our testing comes to our acceptance tests, whether or not the implementation of systems align with the User stories forged for the system.

3. Acceptance Testing

1. Main Menu Format


2. Controls


3. Gameplay


  1. Difficulty


5. Progression


5. Player Choices


6. Visuals


7. Environment


8. In-Game menu