Testing group
Technical requirements
API requirements
There should be created a separate instance of API for testing purposes. It's DB should be separated from the main DB. API should be
Web app requirements
There should be a separate web app for the testing purposes, which provides GUI for functionality described below.
Game requirements
There probably should be made …
Technical requirements
API requirements
There should be created a separate instance of API for testing purposes. It's DB should be separated from the main DB. API should be
Web app requirements
There should be a separate web app for the testing purposes, which provides GUI for functionality described below.
Game requirements
There probably should be made a separate build for testing session, due to slight changes to API calls
General description
Terminology
For each testing group a box is created. The box is an abstract concept, which means that each testing group data is separated from each other = member of group A can not get access to group B data.
The testing group is a group of players, who are willing to test a demo of the game.
The group admin concept, which means that this user is responsible for moderation the testing process and sending feedback about the game to developers.
The tester is a base role of the testing group, which has an access to the box.
The Altzone company is referred as a company in further in the text.
Testing flow
The testing flow can be divided into multiple stages:
- Requesting a testing session
- Preparing for testing session
- Testing session
- Clearing testing session
1. Requesting a testing session
A person who is interested in trying game out, should request a demo testing session from the company via email. Company representative decide whenever the request can be satisfied based on the authenticity of the requester and servers availability. If the request is approved the requester will get an email message containing a group admin password, which is required for initializing the testing session. By using this password the requester is able to proceed to the next stage. The group admin password is also used as an identifier of the requester and is stored by the company. At any point the group admin password can be invalidated by the company.
2. Preparing for testing session
The requester with a valid group admin password can start a preparations for the testing session. First of all the requester type-in the group admin password and the box for testing session is created:
- Group admin profile.
- 2 clans, so that there can be two competing teams.
After box is created, the requester with the group password is becoming a group admin.
Following functionality should be available for the group admin in the preparation stage:
- Group admin can define a list of daily tasks, by specifying the type of the task, amount of atomic tasks (for example play 10 games or play 5 games) and max. duration for each task.
- Group admin can specify the amount of testers. When this happen an API will create a required amount of tester profiles, and these profiles will be divided in the one of the two previously created clans. Each tester profile will have auto-generated username, which will be used also as a password for that profile. Also a common password for all testers to be able to login to the box will be generated (more on that later) and displayed for the group admin.
Just before testing session starts, some changes can occur regarding the amount of testers will be present. Due to it, the group admin should be able to change the amount of testers. When such change happen, the API will make required changes to the DB, such as decrease (= remove profiles) or increase (= add new profiles). However, when group admin has pressed the start session button, it will not be possible to change the amount of testers.
3. Testing session
When the group admin press the start testing session button, the session starts. Then the group admin can share the common password for the testers, which was generated in the previous stage. And the initialization process starts:
- Each tester can go to the app and type-in the shared tester password. Then API choose a free profile generated in the previous stage and assign this to the tester. Then the API will send back the profile username, which is the same as the password for this profile.
- The app can display the provided username (and password) to the tester, as well as ask for the name, that the tester want to be displayed in the game (= name field in Player collection). After that app updates the name of the Player.
- Tester can copy the username (which is also the password) of the profile and login in the game. The game login page for the testing sessions can either ask only for the username, or for username and password.
After initialization process the game starts as usual. All functionality should work as in the normal game, except that the players will be able to see / change data contained in their group box and can not interfere with other boxes. For segregation functionality to work, an Authorization header with token, which is used for authentication will contain an identifier of the box. That means that this token will be required for all API calls, also for endpoints, which are considered to be open and public to everyone in the normal game. Without this header an 401 will be returned for any call.
During the testing session the group admin should be able to do the following:
- Group admin can moderate chats of both clans, including seeing all messages and removing any of them.
- Group admin should be able to see the progress of all daily tasks
- Group admin should be able to remove tasks
- Group admin should be able to create new tasks.
- Group admin should be able to add a feedback about each task, which can be "like" or "dislike", as well as some optional message. This data will be saved and will not be removed.
4. Clearing testing session
After the testing session has ended, the group admin can write some feedback message to the developers in the app, which then will be saved. The group admin password will be used as an identifier.
Then the group admin can choose to reset the session, which means that all the data from the session will be deleted and group admin can go back to the end of "2. Preparing for testing session" stage, where all the predefined tasks and testers count will be saved. However the data of clans and profiles will be regenerated. Also the testers shared password will be regenerated. This option can be used in case there are some other testing sessions are needed.
Another option is to delete the whole box. This option will also invalidate the group admin password and it will not be possible to start a testing session again.
Things to notice
- The username of the tester profile (which is also a password) should not be displayed to anyone in the game.
- All the testing sessions will be reset automatically after one week. And all the group admin passwords will be removed after a month (30 days).
- It should not be possible to claim more than one profile from one device. Simple mechanism could be implemented on the client side, for example by adding a cookie which determines, whenever the request for a tester profile already has been made or not.