Skip to content

Commit

Permalink
docs: proctored exam testing draft
Browse files Browse the repository at this point in the history
  • Loading branch information
ilee2u committed Oct 26, 2023
1 parent 793794d commit 463f75b
Show file tree
Hide file tree
Showing 2 changed files with 116 additions and 0 deletions.
115 changes: 115 additions & 0 deletions docs/test_plan/proctored_exam.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
Proctored Exams
===============

Helpful ReadTheDocs Pages:

- `Configuring a Proctoring Provider <https://edx.readthedocs.io/projects/edx-partner-course-staff/en/latest/proctored_exams/proctored_enabling.html#configuring-proctoring-provider>`_
- `Creating a Proctored Exam <https://edx.readthedocs.io/projects/edx-partner-course-staff/en/latest/proctored_exams/pt_create.html#creating-a-proctored-exam>`_

Prerequisite steps:
#. Have a staff account.
#. Have a non-staff learner account enrolled in the verified track for this course.
#. Find or create a test course with proctoring enabled and an LTI proctoring provider "Proctorio" chosen.
#. Find or create an exam subsection with a type of 'Proctored exam' in your test course.
#. This can be done by creating a subsection and clicking the 'Configure' button (should look like a gear), going to the "Advanced Tab", and selecting "Proctored"
#. NOTE: You MUST also set this subsection to be Graded as a Midterm or Final exam.
#. As your non-staff user in your current window, and enroll in the course where you have set up your proctored exam
#. In an incognito window, login to your staff account and visit your Support Tools page and search in the email for your non-staff user. You should now see the option to change the enrollment track of that user. Change the enrollment track of the user to ""verified"" (choose any reason when prompted, it doesn't matter).
#. In that same incognito, still signed in as staff, navigate to the Instructor dashboard.
#. You should also have a tab open with your event bus logs.


Proctored Exam Flow
-------------------
Expected Behavior: "A paid track learner is able to start, complete, and submit a proctored exam w/ Proctorio via LTI Launch."

Without Proctorio
=================
#. Enter a Proctored Exam. You should see an interstitial stating that ""This exam is proctored"" with a button that says ""Continue to Proctored Exam""
#. "Set up and start your proctored exam." interstitial with "Start System Check" and "Start Exam" appears
#. "Start Exam" button doesn't work and pops up a modal that says "Cannot Start Exam"
#. Clicking "OK" closes that modal
#. Clicking "Start System Check" redirects you to https://getproctorio.com/
#. Navigating back one page and clicking "Start Exam" still blocks you from starting the exam

With Proctorio
==============
#. Go through the opening interstirials and click "Start System Check". You should briefly see an lti launch URL that contains something like "/lti_consumer" in the URL bar, and get redirected to the Proctorio Instructions page.
#. Immediately navigating back and trying to click "Start Exam" still doesn't allow you to start the exam.
#. Refreshing the Proctorio Instructions page causes no issues
#. Navigating back then going back to the Proctorio Instructions page causes no issues
#. Go through the Proctorio Setup for your Webcam, Desktop, etc. Upon setup completion, your webcam should appear to the right of the screen along with some controls. You should land on a page that says "Sending you back to your exam." with a link to "Return to Exam". Clicking this link should send you to another interstitial. (NOTE: Clicking this link is time-bound so make sure to click it fast!!! :)
#. Clicking "Return to Exam" directs you to a page titled "Important" w/ another header saying "Proctored Exam Rules", and a "Start Exam" Button
#. Clicking "Start Exam" directs you to the exam.
#. Clicking "End My Exam" directs you to a "Are you sure you want to end your proctored exam?" Interstitial
#. Clicking "No I'd like to continue working" sends you back to the exam.
#. Clicking "Yes end my proctored exam" ends the exam and directs you to a "You have submitted this proctored exam for review" page
#. In the course view, the exam you took is marked as completed (green checkmark)

#. In a separate exam, go through the setup again and, but instead of clicking on "Return to exam" on the "Sending you back to your exam" page, simply wait, You should be sent to the "Important"/"Start Exam" interstitial automatically.
#. In this separate exam, start the exam, then open devtools using Cmd+Option+I. This should error out the exam and load a "Error with proctored exam" page AND open the "Proctorio Support" page in another tab


Exams Dashboard
---------------
Expected Behavior: ACS Endpoint calls work, able to review/reset exam attempts

Dashboard UI
============
#. Clicking on the "Special Exams" tab loads the *new* version of the exams dashboard.
#. Clicking on the "Review Dashboard" tab within the exams dashboard should bring up the "install the extension" page (NOTE: Is this intended???)
#. Clicking on the adjacent "Attempts" tab brings you back to the regular exams dashboard.
#. Clicking the "Select An Exam" dropdown shows the list of exams for the course.
#. Filtering by exam name in the exam selection dropdown brings up the expected exams (e.g. querying "M4-M6" shows all the exams in that section)
#. Selecting a specific exam (i.e. the ones you just took) loads the respective exam attempts for those exams
#. The exam attempts are in the expected status, e.g. successful attempts are submitted or verified, and the errored attempts are errored.
#. Exam attempts look the same in admin
#. Filtering by username within these exam attempts filters works

Resetting an exam attempt
=========================
#. Clicking "Reset" on an exam attempt brings up a confirmation modal.
#. Clicking "No (Cancel)" closes the modal and nothing changes
#. Clicking "Yes I'm Sure" removes the exam attempt from the table (effectively confirming that it's been reset)
#. Exam attempt status has changed in admin

Reviewing Verified/Rejected Attempts
====================================
#. Exam attempts with a status of "Verified" have a button at the end of their rows saying "Manual Review"
#. A modal pops up upon clickin "Manual Review" that only has the "Cancel" and "Reject" Buttons
#. Clicking "Reject" changes the attempt status to "rejected" both in the UI and in admin
#. The same exam attempts with a status of "Rejected" have a button at the end of their rows saying "Manual Review"
#. A modal pops up upon clickin "Manual Review" that only has the "Cancel" and "Verify" Buttons
#. Clicking "Verify" changes the attempt status to "verified" both in the UI and in admin

Reviewing "Errored" attempts
============================
#. Clicking the "Review Required" button spawns a modal that says "Update review status"
#. "Cancel" closes modal
#. "Verify" marks attempt as verified both in the dashboard and in admin
#. "Reject" marks attempt as reject both in the dashboard and in admin

Reviewing "Second Review Required" attempts
===========================================
#. Go into another exam and be sus. Block your webcam, leave for a few seconds, make strange noises, open a bunch of tabs, watch some youtube, open wikipedia, ask chatgpt for the answer to life, etc.
#. Submit your sus exam attempt, and check the exams dashboard. Assuming you were sus enough, you should see a row that has a status of "Second Review Required" AND has a "Review Required" button for your attempt.
#. Clicking the "Review Required" button spawns a modal that says "Update review status"
#. "Cancel" closes modal
#. "Verify" marks attempt as verified both in the dashboard and in admin
#. "Reject" marks attempt as reject both in the dashboard and in admin
#. Clicking the "Review Dashboard" link in the modal "loads" the review dashboard (NOTE: This shouldn't work yet, and will load a broken page instead)


Event Bus
---------
Expected Behavior: Events are produced and consumed by the correct services as expected.

NOTE: This section is in progress:
Bus
===
The consumer side doesn't work (Relevant ticket to fix this: https://2u-internal.atlassian.net/browse/MST-2171) so we can just check that the correct events are being produced for now
(Make separate tests for each thing maybe?) On submission, X events are produced and are consumed in Y services
Submitted exam
Verified
Rejected
Errored
1 change: 1 addition & 0 deletions docs/test_plan/timed_exam.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ Prerequisite steps:
#. Find or create a test course with proctoring enabled and an LTI proctoring provider chosen
#. Find or create a test course without an LTI proctoring provider chosen
#. Find or create an exam section with a type of 'timed exam' in each course
#. This can be done by creating a subsection and clicking the 'Configure' button (should look like a gear), going to the "Advanced Tab", and selecting "Timed"
#. Have a non-staff learner account enrolled in the verified track for both courses

Timed Exam Access
Expand Down

0 comments on commit 463f75b

Please sign in to comment.