6. Verification - Pug-Life-INFO-461/allowance-gamification-app GitHub Wiki

Verification Process

Verifications will be tested before each commit and after integrating new components into our application. When acomponent is done or assistance is requested on implementation issues, the person responsible should notify theteam by sending a message on our Facebook messenger group. Any request for assistance about certain areas incode, the responsible team member will tell the team where to refer in the Github repo or send a code snippetin our #pug_life channel to get more specific help. Team members will respond back on messenger to verify thatcomponents are verified. In weekly meetups, a summary of development work will be held and any additional verificationthat has not been completed will be verified here. Following this system will allow us as a team to verify thatour requirements for this application have been completed and function as expected.

Testing Environment

The tests will go in the order listed. Once the steps of test are verified or have failed, the testing environmentwill be reset. The test user account and the family group created in Firebase will be removed. This is requiredto create an account with the same email and password repeatedly. When the family group is deleted, all the subtasks and rewards will also be removed.

Terminology

User  - Both Child user and Parent user

Parent  - Parent user, has admin privileges, can create and delete tasks and rewards.

Child  - Child User, limited privileges, can only accept tasks and redeem rewards

Sign Up

Requirements

Verification

User must be able to click anywhere in the input fields (email, password, full name, family name)and type anything.

  1. Click on any input field
  2. Type in anything for the input fields.
  3. Verify that whatever typed is shown is correctly shown in the input fields and the password is hiddenby N amount of “•”.

There will be placeholder text in all input fields when the user has not typed anything. The fullname input field will have “first and last name”, the group name input field willhave “group name”, email input field will have the placeholder: “ [email protected] ”, the password input field will have the placeholder: “password”

  1. Observe the input fields without anything typed into them.
  2. Verify that the input fields contain the placeholder text

Below the input field for full name, there will be radio buttons for selected the type of user (parentor child). None of them are checked at first, but pressing on one of them will fill the radiobutton with blue color. Only one of them can be filled in at a time.

  1. Begin the signup process
  2. Observe that none of the radio buttons for type of user is filled in at first
  3. Touch the parent radio button to fill in for the parent
  4. Verify that the parent radio button is filled in with blue
  5. Then touch the child radio button fill in for the child
  6. Verify the child radio button is filled in with blue
  7. Verify that only one could be filled in at a time

When there is text typed into the input fields, the placeholder text should disappear. The replacedtext should be whatever the user has typed in.

  1. Type anything in the input fields.
  2. Observe and verify that the placeholder text disappears wherever text is typed into input fields.

If the input fields are emptied when the user deletes all of its contents (e.g. hitting the backspaceto delete all text), then the placeholder text in the input fields reappear.

Case 1: Variable Backspace

  1. Tap on any input field
  2. Type in anything
  3. Hit the backspace N (# of characters typed)
  4. Verify that the original placeholder text reappears after backspace is hit N times

Case 2: Delete all characters at once

  1. Tap on any input field
  2. Type in anything
  3. Select all text by holding down and highlighting all
  4. Hit the backspace once
  5. Verify that all text disappears and the placeholder text reappears

When all valid inputs are correct, pressing the create button will start up the spinner (shows verifyingbuffering time) and will display the task view and the task tab will be highlighted on the bottomnavigation bar.

  1. Type in valid field names for all input fields (full name: Info-461-user, radio-button: parent,group name: “Avengers” email: “ [email protected] ”, and password: “123456”)
  2. Hit the create button and observe that the spinner is running
  3. Verify that the user is redirected to the task page and the task tab is highlighted on the bottom navigationbar

If nothing is entered into the input fields and the create button is pressed, red text should appearnotifying users which input fields are not completed (or invalid) or none of them are filledout.

Case 1: User is missing an input

  1. Type in sign up info in either one of the inputs leaving one of them empty
  2. Press the create button
  3. Verify that red text appears specifying either “Full name field is missing” or “Usertype is missing” or “Group name field is missing” or “Email fieldis missing” or “Password field is missing” or a combination of them onwhichever is missing.
  4. Verify that the user remains on the sign up page

Case 2: User is missing all input fields (Full name, family name, email, and password)

  1. Intentionally leave out all of the input fields
  2. Press the create button
  3. Verify that red text appears specifying users to “Complete sign up process to create an account”
  4. Verify that the user remains on the sign in page

Case 3: User has inputted invalid input field (email)

  1. Fill out all input fields but type in a invalid email “usergmail.com”
  2. Press the create button
  3. Verify that red text appears specifying that the “You have entered an invalid email address”appears
  4. Verify that the user remains on the sign up page

Sign In

Requirements

Verification

User must be able to click anywhere in the input fields (email and password) and type anything.

  1. Click on input field (email and password)
  2. Type [email protected]  for the email and type “password” for password.
  3. Verify that “ [email protected] ” is typed in the email field and there are eight characters typed in for password hiddenby eight of these characters, “•”.

There will be placeholder text in all input fields when the user has not typed anything. The emailinput field will have the placeholder: “ [email protected] ” and the password input field will have the placeholder: “password”

  1. Observe the input fields without anything typed into them.
  2. Verify that the input fields contain the placeholder text

When there is text typed into the input fields, the placeholder text should disappear. The replacedtext should be whatever the user has typed in.

  1. Type anything in the input fields.
  2. Observe and verify that the placeholder text disappears wherever text is typed into input fields.

If the input fields are emptied when the user deletes all of its contents (e.g. hitting the backspaceto delete all text), then the placeholder text in the input fields reappear.

Case 1: Variable Backspace

  1. Tap on any input field
  2. Type in anything
  3. Hit the backspace N (# of characters typed)
  4. Verify that the original placeholder text reappears after backspace is hit N times

Case 2: Delete all characters at once

  1. Tap on any input field
  2. Type in anything
  3. Select all text by holding down and highlighting all
  4. Hit the backspace once
  5. Verify that all text disappears and the placeholder text reappears

When login credentials are correct, pressing the login button will start up the spinner (shows verifyingbuffering time to authenticate) and will display the task view and the task tab will be highlightedon the bottom navigation bar.

* Pre Requirement  : There must be an account id: “ [email protected] ” pw: “123456”

  1. Sign in with username “ [email protected] ” and password “123456”
  2. Hit the login button and observe that the spinner is running
  3. Verify that the user is redirected to the task page and the task tab is highlighted on the bottom navigationbar

When login credentials are incorrect (properly filled email but non incorrect input), pressing thelogin button will start up the spinner (shows verifying buffering time to authenticate) and thespinner disappears which then displays red text to notify the user that the authentication hasfailed. The user stays on the sign in page and the red text disappears.

*Pre Requirement : There must be an account id: “ [email protected] ” pw: “123456”

  1. Type in incorrect email or pas sword  fields after signing up for an account: email: “[email protected]” , password:”1234”
  2. Hit the login button and observe that the spinner is running
  3. Verify that spinner to disappear and red text appears “Authentication Failed”
  4. Verify to see that the user is still on the sign in page and the red text disappears after a while

When login credentials are typed incorrectly (invalid filled email), pressing the login button willstart up the spinner (shows verifying buffering time to authenticate) and the spinner disappearswhich then displays red text to notify the user that “You have entered an invalid emailaddress”. The user stays on the sign in page and the red text disappears.

*Pre Requirement : There must be an account id: “ [email protected] ” pw: “123456”

  1. Type in invalid email field after signing up for an account - email: “newuser.gmail.com”password: “123456”
  2. Hit the login button and observe that the spinner is running
  3. Verify that spinner to disappear and red text appears “You have entered an invalid email address”
  4. Verify to see that the user is still on the sign in page and the red text disappears after a while

If nothing is entered into the input fields and the login button is pressed, red text should appearnotifying users which input fields are not completed or none of them are filled out.

Case 1: User is missing an input to login

  1. Type in login info in either one of the inputs leaving one of them empty
  2. Press the login button
  3. Verify that red text appears speci fying either “Email field is missing” or “Password field is missing”
  4. Verify that the user remains on the sign in page

Case 2: User is missing both input fields (email and password)

  1. Intentionally leave out both the email and password fields
  2. Press the login  button
  3. Verify that red text appears specifying that, “Email and password is missing”
  4. Verify that the user remains on the sign in page

Sign  Out

Requirements

Verification

User can log out and return to sign-in page

*Pre Requirement : There must be an account id: “ [email protected] ” pw: “123456”

  1. Nativagate to the ‘Log out’ view located in the top right corner kebab menu icon
  2. Press the logout button
  3. Verify  that the user is redirected to the sign-in page and all input fields are blank with theirplaceholders

Profile View

Requirements

Verification

User is able to view user profile

*Pre Requirement : There must be a user created and logged in

  1. Nativagate to the ‘Profile’ view located in the top right corner kebab menu icon
  2. Observe that the user is redirected to the profile view
  3. Verify that the user profile is visible ( gravatar image, name, group name, email and password)

User is able to edit user profile

*Pre Requirement : There must be a user created and logged in

  1. Nativagate to the ‘Profile’ view located in the top right corner kebab menu icon
  2. Observe that the user is redirected to the profile view
  3. On the top right click `edit`
  4. Verify  the fields have changed to a input box with current user information filled in.
  5. Change the full name field to “testuser123”
  6. When the user clicks top right `save`, the input boxes disappear with the updated informationon the profile page.
  7. Verify the updated profile page shows “testuser123” as the full name field.

Bottom Navigation View

Requirements

Verification

User must be able to change views by clicking on the different icons

Case 1: User is on “Rewards” tab and switches views to the “Task” tab

  1. User is on “ Rewards ” tab and that tab is highlighted on the bottom navigation bar
  2. Click on the ‘ Task ’ icon to navigate
  3. Verify the view changes to ‘Task list view’

Case 2: User is on “Task” tab and switches views to the “Rewards” tab

  1. User is on “ Task ” tab and that tab is highlighted on the bottom navigation bar
  2. Click on the ‘ Rewards ’ icon to navigate
  3. Verify the view changes to ‘Task list view’

TASK - Parent View

Requirements

Verification

For creating tasks parents  click the Add  sign ‘+’  which takes them to a form to fill out:

*Pre condition: Parent have to be in Task tab in the bottom navigation

  1. Click ‘ + ’ and go to create task view
  2. Write ` Clean Room ` with 50 points and a ‘ how-to ’ description that task
  3. Click ‘Save’
  4. Verify   a task with title ‘Clean Room’ with 50 points and description is showing in the unclaimed  task list

Parent is able to Click ‘edit’  to edit task

*Pre condition: Parent have to be in Task tab in the bottom navigation, one or more task is already created and displayedon the task list

  1. Parent clicks on ‘task’  for detailed view
  2. On the top right click on the `edit` button
  3. Verify  the input boxes appear with the current task information prefilled
  4. Edit the name of the task to ‘Edited Task’
  5. Click `save` on top right, and verify  the input boxes disappear
  6. Verify  the updated task has the name ‘Edited Task’

Parent is able to Click ‘delete’  to delete task

*Pre Requirement : There must be one or more tasks created.

  1. Click on ‘task’  for detailed view
  2. Parent is redirected to detail view
  3. From detailed view click ‘ delete ’ button
  4. Parent is redirected to unclaimed  tasks list view
  5. Verify   the deleted task is gone from tasks list

View Task Details

*Pre Condition : There must be one or more tasks that are already created

  1. Click on ‘task’  for detailed view of the task
  2. Verify  that a parent can see a detailed information about selected task

If there are more tasks on the screen, the parent is able to scroll on the list and view more tasks

  1. Create 4 or more tasks with names “task 1”, “task 2”, “task 3”,“task 4”.
  2. Verify that parent can scroll down the list and view more tasks

Tasks that are accepted by child will be moved to In Progress  tab

*Pre Condition : There must be one or more tasks that are already created

  1. Child1 clicks on ‘ task1 ’,
  2. On detail task page accepts the selected task
  3. Verify on Parent1 on task tab, ‘task1’ is no longer visible on ‘Available’subtab
  4. Verify ‘task1’  is now on the ‘In   Progress’  subtab in task tab with the Child1 as the person who is working on the task

Once child completes the tasks on their end, the completed tasks will be moved to Completed  tab in Parents view

*Pre Condition : There must be one or more tasks that are already created

  1. Child1 clicks on ‘ task1 ’,
  2. On detail task page accepts the selected task
  3. Once Child1 finished their task, click ` Completed `
  4. Verify on Parent1 ‘ task1 ’ is in the ‘Completed’  subtab in task tab

TASK - Child View

Requirements

Verification

View Task Details

* Pre Requirement : There must be one or more tasks created.

  1. Click on ‘task’ for detailed view of the task
  2. Verify  that a child can see a detailed information about selected task

If there are more tasks on the screen, the user is able to scroll on the list and view more tasks

  1. Create 4 or more tasks
  2. Verify that child can scroll down the list and view more tasks

Child can Accept  a Task

*Pre condition: There must be one or more task created to choose from.

  1. Click ‘Accept’  to accept
  2. Verify that task is opened in in-progress mode’  

Child can only Accept  one task at a time

* Pre Requirement :  There must be one or more tasks created.

  1. A child will select a task and be redirected to a detailed view
  2. A child will click on ‘accept’
  3. Once a child accepts one task the rest of the available tasks are disabled for clicks for thatchild only.
  4. Verify  the rest of the tasks is disabled for clicks.

Once a child Accepted  a task it will disappear from available task list view

*Pre Requirement :  There must be one or more tasks created with name “task 1”.

  1. A child will select a task and be redirected to a detailed view
  2. Click ‘accept’  
  3. The child enters ‘ In Progress ’ mode
  4. Verify using another Child account that ‘task 1’ is not visible on tasks list

A child can mark task as ‘ completed’  while in ‘ In Progress ’ mode

*Pre Requirement : There must be one or more tasks created.

  1. A child clicks on task for detail view
  2. A child click ‘accept’
  3. The child enters ‘ In Progress ’ mode
  4. Click ‘ Completed ’ while in ‘In Progress’ mode to notify parent that task has been completed
  5. Verify that specific task is added to the completed  tasks list that both parents and child can see.

A child can cancel  in progress task while in ‘ In Progress’  mode

*Pre condition:  a task has to be accepted and user has to be ‘ In Progress”  mode

  1. Click ‘Cancel’  while In-Progress  mode to not commit to that task and put that task back into the ‘ Available’  list.
  2. Programmatically verify that task has been put back by checking the ‘ Available’  to-do list  and ensure that task is unclaimed
  3. Visually   verify  that task is in the ‘Available’  list

Completed tasks will be moved to Completed  tab

*Pre condition a task has to be in ‘In progress’ mode.

  1. Click ‘ Completed’ button
  2. Task will be in completed tab
  3. Verify that visible by checking the completed tab

Child is only able to see all the tasks completed by him/herself

*Pre condition a task has to be completed by Child1

Case 1 - There is completed task

  1. Child navigates to ‘Completed’ subtab in ‘task’ tab
  2. Verify  the task Child1 completed is visible in the ‘Completed’  subtab

Case 2 - There is no completed task

  1. Child navigates to ‘Completed’ subtab in ‘task’ tab
  2. Verify  the the ‘Completed’ subtab is empty with the text, “There is no completedtask yet!”

Child receive points automatically after completing the task

*Pre condition there need to be a task and that task has to be opened in ‘In progress’ mode.

  1. Click ‘Completed’ while in ‘In Progress’ mode
  2. Designated points will automatically be added to the child's reward points.
  3. Visibly verify  that the points are added to reward points by checking the reward tab

Reward - Parent View

Requirements

Verification

For creating reward parents  click the Add  sign ‘+’  which takes them a form to fill out:

*Pre condition:  user(Parent) have to be in Reward tab in the bottom navigation

  1. Click ‘ + ’ and go to create reward view
  2. Write ` Visit Zoo ` with 50 points
  3. Click ‘Save’
  4. Verify  a reward with title ‘ Visit Zoo ’ with 50 points and description is showing in the unclaimed  reward list

Parent is able to Click ‘edit’  to edit reward

*Pre condition: Parent have to be in Reward tab in the bottom navigation, one or more reward is already created anddisplayed on the reward list

  1. Parent clicks on ‘reward’  for detailed view
  2. On the top right click on the `edit` button
  3. Verify  the input boxes appear with the current task information prefilled
  4. Edit the name of the task to ‘Edited Reward’
  5. Click `save` on top right, and verify  the input boxes disappear
  6. Verify  the updated reward has the name ‘Edited Reward’

Parent is able to Click ‘delete’  to delete reward

*Pre Requirement : There must be one or more reward created.

  1. Click on ‘reward’  
  2. Parent is redirected to detail view
  3. From detailed view click ‘ delete ’ button
  4. Parent is redirected to unclaimed  reward list view
  5. Verify  the deleted reward is gone from reward list

View reward Details

*Pre Condition : There must be one or more reward that are already created

  1. Click on ‘reward’ for detailed view of the reward
  2. Verify  that a parent can see a detailed information about selected reward

If there are more reward on the screen, the parent is able to scroll on the list and view more reward

  1. Create 4 or more reward with names “reward 1”, “reward 2”, “reward3”, “reward 4”.
  2. Verify that parent can scroll down the list and view more reward

Claimed rewards will be moved to Claimed  tab

*Pre Condition : There must be one or more reward that are already created, and the child has enough points to redeemthe reward

  1. Child1 clicks on ‘ reward1 ’,
  2. On detail reward detail page redeems the selected reward
  3. Verify on Parent1 ‘ reward1 ’ is in the ‘Claimed’  subtab in reward tab

Reward - Child View

Requirements

Verification

View earned points

Case 1 - No Points

  1. Click on ‘reward’ tab
  2. Verify  that a child can see a earned reward points above the list of rewards. It will be 0

Case 2 - earned 50 points

*Pre Requirement:  Child must have completed a task of 50 points

  1. Click on ‘reward’ tab
  2. Verify  that a child can see a earned reward points above the list of rewards of 50 points

View Reward Details

* Pre Requirement : There must be one or more reward created.

  1. Click on ‘reward’ for detailed view of the reward
  2. Verify  that a child can see a detailed information about selected reward

If there are more tasks on the screen, the child is able to scroll on the list and view more tasks

  1. Create 4 or more tasks
  2. Verify that child can scroll down the list and view more reward

Child can Redeem  a reward

*Pre condition: There must be one or more reward created to choose from.

Case 1 - has enough points

  1. Click on reward of 50 points
  2. Click ‘Redeem’  to accept
  3. Verify that the redeemed reward is visible in “Claimed” tab

Case 2 - Not enough points

  1. Click on reward of 50 points
  2. Click ‘Redeem’  to accept
  3. Verify user popup shows with message ‘Not enough points to redeem’
  4. Child is able to click dismiss on the bottom of the popup
  5. Popup is dismissed and child is back at reward list view

Once a child Redeems  a task it will disappear from available reward list view

*Pre Requirement :  There must be one or more reward created with name “reward 1”. The child has enoughpoints to redeem the reward.

  1. A child will select a reward and be redirected to a detailed view
  2. Click ‘Redeem’  
  3. The child is redirected to Claimed tab
  4. Verify using another Child account that ‘reward 1’ is not visible on available reward listview

Claimed rewards will be moved to Claimed  tab

*Pre condition one or more reward has to be already created, Child1 has enough points to redeem reward. There isChild2 account.

  1. Child1 clicks on ‘reward1’  detail
  2. Child1 claims the reward
  3. Verify on Child1 and Child2’s reward list view that ‘reward1’  is no longer visible

Child is only able to see all the rewards claimed by him/herself

*Pre condition a reward has to be claimed by Child1

Case 1 - There is claimed reward

  1. Child navigates to ‘Claimed’ subtab in ‘reward’ tab
  2. Verify  the reward Child1 claimed is visible in the ‘Claimed’  subtab

Case 2 - There is no claimed reward

  1. Child navigates to ‘Claimed’ subtab in ‘reward’ tab
  2. Verify  the the ‘Claimed’ subtab is empty with the text, “There is no claimedreward yet!”

After successfully claiming the reward,

the points used to claim the reward will be deducted from the earned points

*Pre condition one or more reward has to be already created, Child1 has 100 points.

  1. Child1 clicks on ‘reward1’ which costs 50points, redirects to detail page
  2. Child1 claims the reward
  3. Child1 is redirects back to the rewards list view
  4. Verify  the 50 points is deducted and Child1 now has 50points left.

UPDATED REQUIREMENTS WITH REMOVED FEATURES

https://docs.google.com/document/d/1hEAYKUo_MnW0ay7YbwKW5rp-hNO4wNCyqVe-vm--oeA/edit?usp=sharing

⚠️ **GitHub.com Fallback** ⚠️