D3. Test Plan

Unit Testing

Jest is a great testing software for unit testing in Reactjs. With Jest we could write tests where we create an object, run a function and match that returned data with expected data. This would be ideal for our current project. We could create an object that represents each role, once each role is created they should be able to see different things. A good example is that Dentists and Registered Dental Hygienists are the only two types of sign-ups that are not required to complete orientation. We could create both these objects and check if once they are created do they need to complete orientation. So in an ideal world we could create all potential combinations and ensure they get to where they are intended.

Postman is another testing tool. It is currently the leading API testing tool. This is great for our project because we have an Admin page and a Volunteer page that both work in unison. If an Admin creates a shift, the volunteers that match the role-type of that shift should then be able to view that shift in their available shifts. That volunteer then signs up for the shift, which on the admins side should show that someone has signed up for a shift. As you can see there is a lot that is going on there so using Postman would ensure that the back and forth api calls are set up correctly. Another type of communication between Admins and Volunteers is that volunteers are able to upload documents on their portal. Admins can then search the person’s name on their end and find the files correlated with that volunteer. With postman we can ensure that an admin is able to get a users file once a user has uploaded a new file.

In reality as this is the project’s 3rd semester, there aren’t many bugs/issues. Upon receiving the project we did notice some slight bugs/issues with the code. I.e. when creating a shift, if the role-type was not written in all lowercase, for example typing ‘Volunteer’ would result in a shift that was not actually viewable by the volunteer, it had to be typed in as ‘volunteer.’ This is a great spot for us to put testing as this is not an instance where input should be case-sensitive. Another bug that was found is that once a shift was created, and it was available in a users portal, if that shift was edited i.e changing the time of the shift, the shift was no longer viewable on the users portal. This is another great instance where we can use Postman to test our API calls to ensure our update does not mess any of the data up.

Integration and system testing

Jest uses jsDOM to create a virtual DOM environment within the Node.js runtime. It allows for programmers to write and run test code without needing an actual browser. With our project having two sides, Admin and Volunteer portal. We could make sure that both sites update as they should. Especially given the fact that they both have a common database, with jsDOM we could use the DOM environment and make sure that there is a fluid communication when it comes to altering data between the two portals. In reality writing test code for each potential situation is ideal if we had a lot more time. So as new features have been added we have allowed for conjunction testing with the site on a port and also launching the site using Vercel.


Vercel is a cloud platform that provides many services, but we are focusing on just one. Vercel allows developers to deploy a branch based off of github to the cloud. This is great because we can test our new features being integrated on the website without having to alter the live application. It even allows us to use the actual database that is being used currently by Wake Smiles to really show what the site will look like once deployed. It is great for demoing purposes as well because it shows the product in a production-like environment.

Description of types of end users

There are two types of end users for this project, Volunteers and Admins. There are a variety of different types of volunteers. Actually in the past each person was labeled under pre-dental but one of the new features implemented was allowing users to select their role when signing up. All different types of volunteers are only able to see their role specific shift. Also on the portal, volunteers are able to see their schedule based on shifts they have signed up for, clock-in/clock-out and lastly they can upload documents to their portal. On the Admin portal, admins are basically able to view and manipulate all the data from the database using a table model. They can view a specific user’s logged hours, edit a user’s profile, edit a user’s role, edit a user’s signup, create/edit shifts and view uploaded files for all people that have uploaded anything. As you can see the admin portal is just a streamline of data from the 3rd-party database with a friendly user-experience table. There have been many changes this semester to make the entire experience much simpler and more fluid for our client!

Performance and Reliability Testing

LoadView is a great testing tool, we could mimic concurrent users on the volunteer side and have them all sign up for similar shifts to ensure everything works fine. LoadView also tests the URL performance and can even test our site on a mobile like environment. However, there were many features to implement this semester and issues/bugs found in the code throughout the semester so we have been using Vercel. Although Vercel does not give us the concurrent user testing ability, it still allows us to test everything with the live data or even mock data to ensure we are happy with the results. It has been great to use and plays a big part in our acceptance testing.

Acceptance Testing

For the acceptance testing stage we actually plan to get a Vercel link deployed and allow our client to access from their end. So far we have been doing demo’s through screen sharing and everything has been going well and we’ve received great feedback. However, it still isn’t the same as allowing our client to test everything on their own personal computer without us guiding them through the process. We plan on deploying the cloud site and allowing our client and whoever they deem fit to use the mock site and go about testing and experience the new features. We plan on doing this stage of testing very soon to allow a merge on a day they are not open, such as Thanksgiving holiday. We believe this is a great course of action for our acceptance testing stage because we will be able to make changes our client needs. We can then merge our changes to the live site after ensuring our client is satisfied with the results. Maybe in an ideal world we could have them get one of every type of role to volunteer and test the portal, however we still think this is a great way to ensure client satisfaction.

Manual Testing

Here are some manual tests that you can do yourself to test if newly implemented features are working as they should be. Prior to testing, you should have two emails that have not been registered to WakeSmile in the past.

  1. Oriented Roles
    • Go to mysmile.vercel.app
    • Click ‘Create New Account’
    • Enter in all your information
    • When you get to roles select Admin
    • After agreeing to all terms and conditions, you should get an email to authorize your account.
    • Once authorized navigate back to the main site and login
    • Click on the ‘Profile’ option in the navigation tab on top
    • You should see your ‘Orientation Attendance’ checkbox unchecked
    • Navigate to ‘Shifts’
    • You should see ‘Available Orientation Shifts’
  2. Unoriented Roles
    • Go to mysmile.vercel.app
    • Click ‘Create New Account’
    • Enter in all your information
    • When you get to roles select Dentist
    • After agreeing to all terms and conditions, you should get an email to authorize your account.
    • Once authorized navigate back to the main site and login
    • Click on the ‘Profile’ option in the navigation tab on top
    • You should see your ‘Orientation Attendance’ checkbox already checked
    • Navigate to ‘Shifts’
    • You should see ‘Available Dentist Shifts’

These are 2 example tests that we would personally do as well to make sure everything was working the way it should be. In order to get into more testing there would be a need to be able to access the admin page but due to potential HIPPA violations, we are not able to provide these manual tests.