-
Notifications
You must be signed in to change notification settings - Fork 16
Functional Test Plan
Functional testing is a type of software testing that validates the software system against the functional requirements and specifications of the project. The goal of functional testing is to test each component and its function and compare the testing results with the expected outcome.
For the purpose of this project, the focus of this testing is frontend testing to verify the frontend functionality, GUI, and Usability and ensure that every user is protected from any bugs.
Step | Description |
---|---|
1 | Understand application use cases and functions |
2 | Identify test input or valid test data |
3 | Compute the expected outcomes with the selected test input values |
4 | Execute test cases |
5 | Compare actual and computed expected result |
Testing the Port of Mars application will focus on the following high-level functions:
Function | Definition | Example |
---|---|---|
Mainline | Test the main functions of the application | Can a user login with proper credentials? |
Usability | Test the basic usability of the application | Can a user easily navigate through the application using the provided navigation tools? |
Accessibility | Test the accessibility of the application | Can vision-impaired users use the system? |
Error Conditions | Test whether error messages are or need to be displayed. If an error message is displayed, determine if the message is helpful to the user. | Does an error message appear when a game disconnects to inform the user they have been disconnected? |
A user can:
Onboarding Requirements | |
---|---|
1 | Access and use the Port of Mars application across all browsers and resolutions greater and including iPad |
2 | Access and use the Port of Mars application if they are visually impaired |
3 | Sign up/Sign back in with a Google or Facebook account |
4 | View and sign consent form with a valid email |
5 | Verify their email |
Lobby Requirements | |
---|---|
1 | Join the game lobby/dashboard page after consenting and verifying their email |
2 | See a list of active waiting rooms |
3 | Rejoin a game automatically from the lobby if they have an ongoing game that was exited out of |
4 | Join an existing room, create a new one, or start a game alone with bots |
5 | When inside a waiting room, start a game with bots or vote ready if not the leader |
6 | Visually see that a game is starting with a short timer when reaching max capacity (5 players) |
Game Requirements | |
---|---|
1 | Join a game from the lobby |
2 | Be replaced by a temporary bot if deemed idle |
3 | Can reset idle timer and play again by clicking on a modal |
4 | Use chat to communicate with other players in every phase of a round in the game (besides during 'Solar Flare' event |
5 | Use the report button on a chat message to report a player for abuse of the CoC |
6 | View a log of the history of events that have transpired during the duration of the game in the 'Mars Log' |
7 | Click 'Ready to Advance' to set their readiness |
8 | Draw the correct amount of Events based on the System Health |
9 | Vote during an event requiring player interaction |
10 | See Mars Event effects applied as described |
11 | Invest time blocks to increase System Health during the investment phase of the game |
12 | Invest time blocks to purchase Resources at the correct price during the investment phase of the game |
13 | Trade altruistically (1-0 or 0-1 trades) |
14 | Send a Trade to other players during Trade phase |
15 | Cancel or accept a trade |
16 | Purchase Accomplishments with Resources during Purchase phase |
17 | Discard Accomplishments during Discard phase |
18 | In the case of Victory, view winners on Victory screen |
19 | In the case of Defeat or Victory, review the Mars Log on the screen in descending order |
20 | Press a button to exit to the game lobby, and is not logged out in doing so |
In addition to the use cases described above, ensure that conditions are valid throughout game play. For example, ensuring the conditions of a game are correct for all corner cases (e.g. are consecutive Event effects being applied correctly? Is contributed System Health being calculated and applied correctly?)
Below are suggestions for useful tools.
- Login to the game with the developer login.
- On the Player Dashboard, click
Join a Game
. - Click
Distribute Groups
button to be allocated into a game. - On the left side, click the round arrow button to slide out a navigation menu.
- On the navigation menu, click
Enable DevTools
.
Once DevTools is enabled, the following shortcuts are available to use:
Keystroke | Command |
---|---|
q | Reset game to Round 1. |
r | Advance the game to the next Phase |
Data recorded during the game will be delivered to the interns in CSV file format for data analysis.
For any bugs that you encounter, submit an issue on GitHub.
The development team utilizes GitHub's issue tracker to keep a list of issues relating to the Port of Mars application. Open questions, action items, bugs and play test notes and tasks are typically documented in the Issues section by the development team.
Prerequisites: own a GitHub account
Step | Direction |
---|---|
1 | Go to the Port of Mars GitHub repository. |
2 | In the horizontal tabbed menu at the top of the repository, click Issues. |
3 | Click the green New Issue button. |
4 | Populate the new issue text fields with a title and description of the issue. Be sure to label the issue appropriately. Since the focus is frontend testing, most of the time the labels will be frontend and bug . |
5 | Review your new issue, and then click the Submit New Issue button. |
Dev tools can be used to view the browser in different resolutions. To toggle responsive design mode in your browser: Ctrl + Shift + M
to view the application in a responsive design mode. You can switch the device views and view the application in various resolutions.
- Page Speed : add-on by Google; evaluates the web page and provides suggestions to minimize loading time; makes web page retrieval quicker when users access web pages using Google search engine.