Team 6 Sprint 4 Code Implementation Test Plan - UQdeco2800/2022-studio-2 GitHub Wiki

Team 6 - Sprint 4 Code Implementation Test Plan

Over the course of the past 12 weeks, we have developed various classes and methods, all working but not written to their full potential. In sprint 4 we aimed to optimise what we developed, reducing bugs and code smells with our strong understanding of how the libraries and language working with, hindsight is a wonderful tool. Here is our plan of attack:

Testing Plan:

  1. Tackle Code Smells

Using sonarLint and sonarCloud fix any code smells, with the limitation of any issues with code duplication usually can't be resolved without changing big portions of the class.

  1. Tackle Bugs

Again using Using sonarLint and sonarCloud to fix any obvious bugs

  1. Optimise Code

Now that the obvious stuff is out of the way we go in and use computer memory tools to test which parts of our implementation take up large portions of memory and hardware when run. That implementation can then be optimised, either by correctly disposing of instances or adjusting how our implementation works.

  1. Testing

With everything cleaned and optimised, we can now write test classes for classes and methods that can be tested. We are heavily limited to being unable to test a lot of the UI implementations like screens due to time constraints and skill level, headless testing isn't well understood by our team.

  1. GitHub Build

To make sure we haven't broken something, commit and see if it builds without errors online (sadly loading-screen branch had some issues with this)

  1. UML/ Sequence Diagrams and Document

Finally, develop UML and sequence diagrams, then document all that has been done to its own wiki so we know how it works when we look at it again (someday)


So What Exactly Does This Plan Apply To?

Player modifier

components/player/PlayerModifier.java
Player stamina / mana 
components/CombatStatsComponent
components/player/PlayerActions
entities/factories/PlayerFactory

Player stamina, health and mana display

components/player/PlayerStatsDisplay

Player movement animation

Death screen

Keybinds / controls menu

/core/src/main/com/deco2800/game/components/maingame/OpenKeyBinds.java
/core/src/main/com/deco2800/game/components/player/OpenPauseComponent.java

Key Prompt

PlayerFactory
player/PlayerKeyPrompt
player/PlayerKPAnimationController

Transition Screen

source/core/src/main/com/deco2800/game/screens/LevelTransitionScreen.java
source/core/src/main/com/deco2800/game/components/levelTransition/LevelTransitionDisplay.java
source/core/src/main/com/deco2800/game/components/levelTransition/LevelTransitionActions.java
source/core/src/main/com/deco2800/game/components/levelTransition/TransitionInputComponent.java
source/core/src/main/com/deco2800/game/components/player/KeyboardPlayerInputComponent.java

Win Screen