Skip to content

Latest commit

 

History

History
691 lines (492 loc) · 32.8 KB

TESTING.md

File metadata and controls

691 lines (492 loc) · 32.8 KB

Testing the app

Back to README.md

Table of Contents

Table of contents generated with readme-toc

Testing User Stories

Each user story has a list of acceptance criteria, which are the expected outcomes when the story is tested. An issue is only closed if manual testing confirms that the acceptance criteria are fulfilled.

The commits corresponding to each User Story are linked in each the GitHuB Issue.

An overview of implemented and tested User Stories can be seen in the Google Sheet containing User Stories.

All User Stories in the MVP have been implemented and work as intended.

Issues outside the MVP that were not completed for the first release of the project but still intend to be done in further development work are gathered under the label v2 in GitHub Issues.

Code validation

HTML validation

All rendered pages of the project were validated with the W3C HTML validator. No errors or warnings were found.

All screenshots of HTML validation can be found in this folder.

Note

Info messages regarding trailing slashes are disregarded, since these are extensively used in React development.

Landing page validation

No errors or warnings found

Note

The Landing page and the Kanban page share the same URL, and are conditionally rendered depending on login status

Signin page validation

No errors or warnings found

# page validation

No errors or warnings found

Task Kanban page validation

No errors or warnings found

Note

The Landing page and the Kanban page share the same URL, and are conditionally rendered depending on login status

Task List page validation

No errors or warnings found

Task Detail page validation

The validated page includes comments.

No errors or warnings found

Task Create page validation

No errors or warnings found

Task Edit page validation

No errors or warnings found

Profile List page validation

No errors or warnings found

Profile Detail page validation

No errors or warnings found

CSS validation

All custom css files were validated with Jigsaw, which uncovered a few minor issue that were corrected (see the commits in #154). The resulting code passed without errors or warnings for all files.

CSS validation: no issues

In addition, each JS file was manually checked for comment coverage and unused code at the end of development (#154).

JavaScript/JSX validation

EsLint was used throughout development to validate the code. No errors or warnings are present in the project.

JSX validation: no issues

In addition, each JS file was manually checked for comment coverage, and formatted with the Prettier extension for VS Code at the end of development (#155).

Manual feature testing

Navigation & authentication manual testing

Navigation bar | desktop manual testing | user not logged in

Action Expected result Result
page loads hamburger icon not visible & nav links visible
Signin link clicked Signin page loaded
# link clicked # page loaded
logo and brand name clicked landing page loaded

Click to play video

01-navigation-bar-user-not-logged-in.mp4

Navigation bar | mobile manual testing

Action Expected result Result
page loads hamburger icon visible
logo and brand name visible
nav links not visible
hamburger icon clicked nav bar opens
hamburger icon clicked again OR
user clicks outside the nav bar
nav bar closes

Click to play video

02-navigation-bar-mobil-user.-not-logged-in.mp4

Footer manual testing

Action Expected result Result
page loads copyright info visible
GitHub icon visible
LinkedIn icon visible
GitHub icon clicked GitHub profile opens in new tab
LinkedIn icon clicked LinkedIn profile opens in new tab

Click to play video

03-footer-manual-testing.mp4

Landing page manual testing

This page is only available to logged out users.

Action Expected result Result
page loads Welcome text visible
# link visible
Signin link visible
landing background image visible

Click to play video

04-landing-page-manual-testing

# page manual testing

This page is only available to logged out users.

Action Expected result Result
# page loads # text visible
Signin link visible
email field visible
username field visible
password field visible
password (again) field visible
# button visible
Signin link clicked Signin page loads
# button clicked
any field empty
validation message appears
# button clicked
password fields don't match
OR password does not conform to rules
validation message appears
# button clicked
username already exists
validation message appears
# button clicked
all fields filled correctly
user is signed up
Signin page loads

Click to play video

05-#-page-manual-testing.mp4

Signin page manual testing

This page is only available to logged out users.

Action Expected result Result
page loads Signin text visible
# link visible
username field visible
password field visible
# link visible
signin background image visible
# link clicked # page loaded
Signin button clicked
any field empty
validation message appears
Signin button clicked
both fields filled
credentials not correct
validation message appears
Signin button clicked
both fields filled
credentials correct
user is signed in
Task Kanban page loads
navigation bar icons change

Click to play video

06-signin-page-manual-testing.mp4

Navigation bar | desktop manual testing | user logged in

Action Expected result Result
page loads hamburger icon not visible & nav links visible
plus icon clicked TaskCreate Form loaded
boards icon clicked Task Kanban page loaded
list icon clicked Task list page loaded
sign out icon clicked user is signed out & navigation bar icons change
logo and brand name clicked Task Kanban page loaded

Click to play video

07-navigation-bar-user-logged-in.mp4

Tasks manual testing

Task Tabs manual testing

Tabbed filtering of tasks is enabled on the following pages:

Action Expected result Result
Task Kanban or Task List page loads 4 tabs visible: assigned to, watched by & created by the logged-in user, "all tasks"
Profile Detail page loads 3 tabs visible: assigned to, watched by & created by the viewed user
page loads search field is visible
page loads assigned to tab content is visible
page loads user-specific tabs have a task count in parentheses next in their label
user clicks on a tab that tasks's content becomes visible without having to reload the page
user watches/unwatches a task tab counts and contents update without having to reload the page
Kanban only:
user deletes a task
tab counts and contents update without having to reload the page

Click to play video

08-task-tabs-manual-testing.mp4

Task Kanban manual testing

Action Expected result Result
page loads tasks appear in tabbed task list format
page loads 3 columns visible on each tab: To Do, In Progress & Done, with tasks sorted accordingly
page loads Teammates link appears next to the search bar
page loads Infinite Scroll is active in each column
page loads each task card's color is set according to task prioriy
page loads vertical dots icon visible for each task owned by the logged-in user
vertical dots icon clicked pencil and trashcan icons appear
user clicks outside edit/delete menu pencil and trashcan icons disappear
pencil icon clicked Task Edit Form opens
trashcan icon clicked task deletion modal opens
Teammates link clicked Profile List page opens

Click to play video

09-task-kanban-manual-testing.mp4

Task List manual testing

Action Expected result Result
page loads tasks appear in tabbed task list format
page loads Teammates list appears to the right of to the task list
showing user picture and conditional name
page loads the logged-in user does not appear in the Teammates list
page loads Infinite Scroll is active in task list
page loads Infinite Scroll is active in Teammates list
page loads each task card's color is set according to task prioriy
page loads vertical dots icon visible for each task owned by the logged-in user
vertical dots icon clicked pencil and trashcan icons appear
user clicks outside edit/delete menu pencil and trashcan icons disappear
pencil icon clicked Task Edit Form opens
trashcan icon clicked task deletion modal opens
Teammates link clicked Profile List page opens
user avatar in Teammates list clicked Profile Detail page for corresponding user opens

Click to play video

10-task-list-manual-testing.mp4

Task Detail manual testing

Action Expected result Result
Task Detail page loads assignee or "not assigned" visible
status visible
priority visible
title visible
excerpt visible (if any)
due date visible
watch icon visible
description visible (if any)
"last updated on" visible
"created on" visible
created by visible
image visible (if any)
comment field visible
comments visible (if any)
logged in user owns task vertical dots icon visible on top right
vertical dots icon clicked pencil and trashcan icons appear
user clicks outside edit/delete menu pencil and trashcan icons disappear
pencil icon clicked Task Edit Form opens
trashcan icon clicked task deletion modal opens

Click to play video

11-task-detail-manual-testing.mp4

Task Search manual testing

A search bar appears on the Task List, Task Kanban and Profile Detail pages.

The contents of Task objects can be searched. Fields searched are:

  • title
  • excerpt
  • description
  • assignee
  • owner
Action Expected result Result
page loads search bar visible
user types in search bar tasks are filtered with a few second's delay after the user starts typing
there are tasks matching the search string only the matching tasks are listed from the active tab
there are no tasks matching the search string information message appears with "not found" asset
user click on another tab search bar content & search result fintering is cleared

Click to play video

12-task-search-manual-testing.mp4

Task Create Form manual testing

Action Expected result Result
page loads empty task create form visible
title field empty create button disabled
instruction text shown below button
title field filled create button enabled
instruction text below button disappears
cancel button clicked new task not created
confirmation message appears
create button clicked new task created
confirmation message appears

Click to play video

13-task-create-form-manual-testing.mp4

Task Edit Form manual testing

Action Expected result Result
page loads task edit form visible, populated with task data
title field filled save button enabled
instruction text below button not shown
title field content is deleted save button disabled
instruction text shown below button
title field filled again save button enabled
instruction text below button disappears
cancel button clicked task data not updated
confirmation message appears
save button clicked task data updated
confirmation message appears

Click to play video

14-task-edit-form-manual-testing.mp4

Task Deletion manual testing

Action Expected result Result
cancel button clicked on delete modal delete modal closes
task is not deleted
confirmation message appears
delete button clicked on delete modal task is deleted
user is redirected to Kanban page
confirmation message appears

Click to play video

15-task-deletion-manual-testing.mp4

Comments manual testing

Action Expected result Result
Task Detail page loads comment field visible
comment button visible
logged in user has previous comments vertical dots icon visible for each comment belonging to the user
comment button clicked
comment field empty
comment button is disabled
comment button clicked
comment field not empty
comment appears in comment list
vertical dots icon appears next to comment
confirmation message appears
vertical dots icon clicked pencil and trashcan icons appear
user clicks outside edit/delete menu pencil and trashcan icons disappear
pencil icon clicked comment text filled into comment field
save & cancel buttons appear
cancel button clicked comment text not updated
confirmation message appears
save button clicked comment text updated
confirmation message appears
trashcan icon clicked comment is deleted
confirmation message appears

Click to play video

16-comments-manual-testing.mp4

Watchers manual testing

The watch/unwatch functionality is available in every Task view apart from the Task Create & Edit Forms.

Action Expected result Result
page loads watch icon is visible on task card
watcher count visible on task card
user hovers over eye outline icon "watch" tooltip appears
user hovers over solid eye icon "unwatch" tooltip appears
user clicks eye outline icon watcher count increases by one
icon changes to solid eye
watched tab updated accordingly
user clicks solid eye icon watcher count decreases by one
icon changes to eye outline
watched tab updated accordingly

Click to play video

17-watchers-manual-testing.mp4

Profiles manual testing

Profile List manual testing

Action Expected result Result
page loads Teammates list appears in full page view displaying each user's picture, conditional name, pronouns (if any), role (if any)
page loads the logged-in user does not appear in the list
page loads Infinite Scroll is active in Teammates list
user avatar in Teammates list clicked Profile Detail page for corresponding user opens

Click to play video

18-profile-list-manual-testing.mp4

Profile detail manual testing

Action Expected result Result
page loads & profile belongs to logged-in user profile details appear
page loads & profile doesn't belong to logged-in user avatar, conditional name & any filled-in profile fields appear
page loads tasks related to the user appear in a tabbed task list format
logged in user owns profile pencil icon visible on top right
pencil icon clicked pencil with notepad, id card & key icons appear with corresponding descriptions
user clicks outside edit menu pencil with notepad, id card & key icons and corresponding descriptions disappear
pencil with notepad icon clicked Profile Edit Form opens
id card icon clicked Username Edit form opens
key icon clicked Password Edit form opens
page loads Teammates list appears to the right of to the task list
showing user picture and conditional name
page loads the logged-in user does not appear in the Teammates list
page loads Infinite Scroll is active in Teammates list
Teammates link clicked Profile List page opens
user avatar in Teammates list clicked Profile Detail page for corresponding user opens

Click to play video

19-profile-detail-manual-testing.mp4

Profile edit manual testing

Action Expected result Result
page loads profile edit form visible, filled with existing data
cancel button clicked profile data not updated
confirmation message appears
save button clicked profile data updated
confirmation message appears

Click to play video

20-profile-edit-manual-testing.mp4

Username edit manual testing

Action Expected result Result
page loads username edit form visible, filled with existing username
cancel button clicked username not updated
confirmation message appears
save button clicked & username is not valid validation message appears
save button clicked & username is valid username updated
confirmation message appears

Click to play video

21-username-edit-manual-testing.mp4

Password edit manual testing

Action Expected result Result
page loads password edit form visible
cancel button clicked password not updated
confirmation message appears
save button clicked & password fields are empty validation message appears
save button clicked & passwords do not match validation message appears
save button clicked & passwords are not valid validation message appears
save button clicked & passwords match and are valid password updated
confirmation message appears

Click to play video

22-password-edit-manual-testing.mp4

General features

Infinite scroll manual testing

Infinite scroll is used to load the next page of data from the API. It is used for the following components

Action Expected result Result
page loads first 10 objects in a list are loaded
the objects appearing on the page can be less because of filtering
scrolls down within the component another page of objects is loaded
there are no more objects to load and end message appears after the list

Click to play video

23-infinite-scroll-manual-testing.mp4

Notifications manual testing

Notification messages are used to confirm CRUD actions in the following components:

Action Expected result Result
notification is triggered notification appears in the top right corner
user clicks notification notification disappears right after click
user does not click notification notification disappears when the timer bar runs out

Click to play video

24-notifications-manual-testing.mp4

Accessibility testing

Lighthouse

The following pages have been tested with Lighthouse emulating both a mobile and a desktop use case:

  • landing page
  • signin page
  • # page
  • task kanban page
  • task list page
  • task detail page
  • task create page
  • task edit page
  • profile list page
  • profile detail page

The accessibility audits uncovered some minor issues with color contrasts and heading precedence. These were all corrected (see the commits of the corresponding Issue), so that the final accessibility audit result for all pages tested is 100%.

JavaScript validation error: unknown variable bootstrap

All accessibility reports can be found in this folder.

Color contrast testing

In addition to Lighthouse, color contrasts were also tested with the WebAIM Contrast Checker. This was especially important given that tasks have multiple color schemes conditionally rendered depending on their priority.

Where contrast did not meet at least AA standard, the colors were changed.

As pointed out by my mentor, the orange color of the navbar icons does not need to reach high contrast with the background, since it is always accompanied by a corresponding text indicating where the nav link leads.

High theme specifications

color name HEX code
very-dark-high #531D04
dark-high #D7410F
light-high #f7ddcf

Medium theme specifications

color name HEX code
very-dark-med #530E0E
dark-med #992319
light-med #FBEDE5

Low theme

color name HEX code
very-dark-low #07565A
dark-low #0A8385
light-low #D1FAF3

Neutral color specifications

color name HEX code
light-neutral #F9FAFC
white #FFFFFF
light-gray #dadadf
gray #242a3d

High theme contrast check

color 1 color 2 contrast WCAG AA/AAA Comment
very-dark-high white 13.58:1 AAA
very-dark-high light-high 10.48:1 AAA

|very-dark-high |light-neutral |13:01:1 |AAA| | |dark-high |white |4.51:1 |AA | Only used for large text| |dark-high |light-high |3.48:1 |AA|Only used for icon|

Medium theme contrast check

color 1 color 2 contrast WCAG AA/AAA Comment
very-dark-med white 14.61:1 AAA
very-dark-med light-med 12.76:1 AAA

|dark-med |white |8.04:1 |AAA | Only used for large text| |dark-med |light-med |7.03:1 |AAA|Only used for icon|

Low theme contrast check

color 1 color 2 contrast WCAG AA/AAA Comment
very-dark-low white 8.44:1 AAA
very-dark-low light-low 7.5:1 AAA

|dark-low |white |4.56:1 |AA | Only used for large text| |dark-low |light-low |4.06 :1 |AA|Only used for icon|

Automated testing

As all pages containing task or profile data should only be accessible to Logged-in Users in this app, I decided to focus automated testing on this aspect.

In addition to implementing the tests for Avatar and Signout link being in the NavBar for Logged-in Users, I have also implemented tests for the Task Create, Task Kanban and Task List links.

All automated tests pass without error.

All automated tests pass without error

Bugs

All bugs are tracked in GitHub Issues.

Known bugs

Known bugs are listed in GitHub Issues.

Solved bugs

Solved bugs are listed in GitHub Issues.

Expected errors in the Console

  • 3 401 (unauthorized) errors on mount/refresh
  • 401 when visiting the Signin or # pages
  • 400 errors when sending incorrect form data
  • a 401 (unauthorized) error when refreshing the access token