generated from Arquisoft/wiq_0
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #318 from Arquisoft/docs/documentation-fixes
Fixes to the documentation
- Loading branch information
Showing
6 changed files
with
169 additions
and
50 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
ifndef::imagesdir[:imagesdir: ../images] | ||
|
||
== Testing | ||
=== Performance efficiency | ||
The tests were done with a 2 core and 4 GB of memory system. However, real used VM has 2GB and 1 vCPU in order to keep costs low. | ||
If required, a more powerful machine could be easily used instead of the current one. | ||
The difference between machines is not such significant as real VM only loads API and the docker image for the DB, while the testing machine must also take care of loading the front of the website. | ||
|
||
This system's efficiency has been measured with Gatling. For the script that we used, a user already created, logged in and played a full game. After that, the user clicked to look the statistics. | ||
|
||
The scripts were run a total of 4 times. For load testing, one with 1 user, other with 100 users and another one with 1000 users. Finally one with 10000 for stress testing. | ||
Regarding load testing, the results of these scripts show that response times are reasonable up until 1000 users, although roughly 25% of the requests fail. | ||
Here are the results. | ||
|
||
**1 user:** | ||
|
||
image::Gatling_1_user.png[align="center", title="Gatling results with 1 user"] | ||
|
||
**100 users:** | ||
|
||
image::Gatling_100_users.png[align="center", title="Gatling results with 100 user"] | ||
|
||
**1000 users:** | ||
|
||
image::Gatling_1000_users.png[align="center", title="Gatling results with 1000 user"] | ||
|
||
**10000 users:** | ||
|
||
Having 10000 users playing a game at the same time make a lot of failures. However, the server does not get down so after all those users leave, the system could still run normally. | ||
|
||
image::Gatling_10000_users.png[align="center", title="Gatling results with 10000 user"] | ||
|
||
=== Functional Suitability | ||
To ensure the users are able to do what they are supposed to do and nothing else, both unit and acceptance testing were done. | ||
|
||
Acceptance testing tries to see if the user is able to use the application properly without crashing. However, as security is one of the most important requirements, unit testing from a 'back-end' point of view, so that as few unexpected inputs or bugs may happen in any part of the application (front-end included). | ||
|
||
On top of it, strong e2e testing was built to reensure the integrity of the software, as negative and positive test cases were introduced. Via e2e, we can also know what the user is capable of by means of normal application usage and how the system reacts to it. | ||
|
||
Unit testing was done via Jupyter for API while Jest and React Testing Library for React components in front-end views. | ||
Gherkin was used for acceptance testing and user story building. | ||
Finally, e2e tests were done in JS using Cucumber and Puppeteer. | ||
|
||
=== Usability tests | ||
Although they were not as much as desired, 4 usability tests were done as a way to know how easy our product is. The people tested all use internet daily, although they do not share the same level of expertise. | ||
|
||
Most people had no problem to complete the basic task (registering and playing a full game). However, one wanted to log in before signing up (probably that was just a dumb mistake). | ||
Regarding some more complex task, such us seeing the rules, some of the users had problems as they had not noticed the button for deploying the lateral menu. | ||
|
||
Overall, usability tests were good enough, although we would like to have some more people with a wider range of age |
File renamed without changes.
File renamed without changes.