Skip to content

Commit 2729644

Browse files
authored
Gradebook Test Plan (#171)
Add basic testing setup/instructions
1 parent 2b37919 commit 2729644

File tree

3 files changed

+153
-0
lines changed

3 files changed

+153
-0
lines changed

.github/pull_request_template.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ JIRA: [JIRA-XXXX](https://openedx.atlassian.net/browse/JIRA-XXXX)
1010

1111
**Developer Checklist**
1212
- [ ] Test suites passing
13+
- [ ] Documentation and test plan updated, if applicable
1314
- [ ] Received code-owner approving review
1415
- [ ] Bumped version number [package.json](../package.json)
1516

documentation/testing/test-plan.md

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
# Test Plan
2+
3+
Designed to be a catalog of major Gradebook workflows to aid in testing. This should be kept up-to-date with new feature changes.
4+
5+
## Quickstart
6+
7+
Check that the items below are complete and continue to [Workflow Tests](#workflow-tests). Otherwise, followed the detailed setup in [test-setup.md](./test-setup.md).
8+
9+
- [ ] Course set up with graded content.
10+
- [ ] Gradebook & feature toggles set up for course.
11+
- [ ] Course has a Master's track for testing Master's-only features.
12+
- [ ] Different types of students enrolled in course (e.g. Master's, TA's).
13+
- [ ] Gradebook running.
14+
15+
## Workflow Tests
16+
17+
Visit a course as an instructor/staff then **Instructor** tab > **Student Admin** sub-tab > click **Show Gradebook**. Should navigate to `<root-url>:1994/{course-id}`.
18+
19+
Confirm the following workflows:
20+
21+
- [ ] Grades table results can be filtered from the "Filter" panel.
22+
- The "Edit Filters" button renders for all courses.
23+
- Click the "Edit Filters" button to open the "Filter" panel.
24+
- [ ] Filter panel shows the sections: Assignments, Overall Grade, Student Groups, Include Course Team Members.
25+
- **Note:** Filters are cumulative and act with other applied filters.
26+
- Assignments pane
27+
- [ ] Applying the "Assignment Types" filter limits the assignment columns show in the grades table to the selected assignment types.
28+
- [ ] Applying an "Assignment" filter shows only the selected assignment column in the grades table.
29+
- [ ] With an "Assignment" filter already selected, setting a "Min/Max Grade" filter shows only student rows with grades for the assignment within the filtered range.
30+
- Overall Grade pane
31+
- [ ] Applying a "Min/Max Grade" filter shows only students with Total Course Grades within the filtered range.
32+
- Student Groups pane
33+
- [ ] Applying a "Tracks" filter shows only student rows matching the selected track.
34+
- [ ] Applying a "Cohorts" filter shows only student rows matching the selected cohort.
35+
- Include Course Team Members pane
36+
- By default, any user with a course role (e.g. staff, beta testers, TA's) are hidden from the grades table.
37+
- [ ] Selecting "Include Course Team Members" shows course team members in the grades table.
38+
- [ ] Deselecting "Include Course Team Members" shows only students without course roles in the grades table.
39+
40+
- [ ] Users can be searched/filtered using the Search box.
41+
- The Search Box renders for all courses.
42+
- [ ] Entering characters into the Search Box filters students on top of already applied filters.
43+
- Note: characters can appear anywhere in a name or email, even though emails are only shown for masters-track students. It doesn't appear that search actually works for student keys.
44+
45+
- [ ] Grades table "Score View" allows selecting how scores are displayed.
46+
- [ ] The "Score View" selector renders with the options: Absolute, Percent.
47+
- [ ] Changing the "Score View" dropdown to "Percent" shows scores as percentages in the assignment columns (note that scores can be over 100%).
48+
- [ ] Changing the "Score View" dropdown to "Absolute" shows scores as {awarded-points}/{possible-points} values, rounded to 2 decimal points.
49+
- [ ] For unattempted problems score shows '0'.
50+
- [ ] For attempted problems, score always shows an {awarded-points}/{possible-points} value.
51+
- [ ] "Total Course Grade" always shows scores as percentages (including 0% for unattempted).
52+
53+
- [ ] Grades table displays correctly.
54+
- [ ] The grades table shows with columns: Username, Email, {numbered-assignments}, Total.
55+
- [ ] Usernames appear in the "Username" column.
56+
- [ ] Student external keys (where applicable) also appear in the "Username" column.
57+
- [ ] Student emails appear in the "Email" column only for masters-track students.
58+
- [ ] Assignment scores show in their respective assignment columns.
59+
- [ ] Total course grade shows in the "Total Course Grade" column.
60+
61+
- [ ] Grade overrides can be applied.
62+
- [ ] Clicking on an assignment score in the grades table opens the "Edit Grades" modal.
63+
- [ ] "Assignment name", "Student username", "Original grade", and "Current grade" display in the modal.
64+
- [ ] A history of grade overrides including "Date", "Grader", "Reason", and "Adjusted Grade" shows (if the subsection was previously overridden).
65+
- [ ] An entry with the current time appears in the table with areas to enter adjusted grades and reasons for adjusting.
66+
- Enter an "Adjusted Grade" and "Reason" for the override.
67+
- [ ] Modal can be navigated away from by clicking outside the modal, clicking the "x" button, or hitting "Cancel".
68+
- [ ] Clicking "Save Grade" applies the override, shows the successful "grade has been edited" banner and updates score in grades table (may take a few seconds).
69+
- [ ] Opening back up the "Edit Grades" modal shows the change as an entry in the override history table.
70+
71+
- [ ] *Masters only*: "Bulk Management" allows overriding grades in bulk.
72+
- Open a non-masters-track course.
73+
- [ ] Verify that the "Bulk Management" tab does not appear.
74+
- [ ] Verify that the "Bulk Management" button does not appear.
75+
- Open a masters-track course.
76+
- [ ] Verify that the "Bulk Management" tab appears to the right of the "Grades" tab.
77+
- [ ] Verify that the "Bulk Management" button appears.
78+
- Click the "Bulk Management" button. This downloads existing student/assignment info.
79+
- [ ] Open the downloaded CSV and verify that students and assignments in the file match applied filters/searches.
80+
- Add values in the "new_override-{subsection-short-id}" columns for student grades to be overridden and save the CSV file.
81+
- [ ] Clicking the "Bulk Management" tab shows the Bulk Management page.
82+
- [ ] The bulk management history table appears with columns: "Gradebook", "Download Summary", "Who", "When".
83+
- [ ] Previous bulk management imports (if applicable) appear in the table.
84+
- Click the "Import Grades" button and select the modified CSV file.
85+
- [ ] Verify that the "CSV processing" banner appears.
86+
- Wait for processing to complete and reload the page. (Can take seconds to minutes depending on environment and size of the override.)
87+
- Navigate back to the "Bulk Management" tab.
88+
- [ ] Verify that a new entry appears in the results table indicating how many students were affected by the bulk grade change.
89+
- Click the "Download Summary" link to see the summary of changes from the bulk grade changes.
90+
- [ ] Verify that students are shown with modified subsections and actions: "No Action" for unchanged users, "Success" for successful overrides.
91+
92+
- [ ] *Masters only*: Interventions report shows student activity in the course.
93+
- Open a non-masters-track course.
94+
- [ ] Verify that the "Interventions" tab does not appear.
95+
- [ ] Verify that the "Interventions" button does not appear.
96+
- Open a masters-track course.
97+
- [ ] Verify that the "Interventions" tab appears to the right of the "Grades" tab.
98+
- [ ] Verify that the "Interventions" button appears.
99+
- Click on the "Interventions" button to generate a CSV students and activity info.
100+
- Open the interventions report and verify student info and activity info appear.

documentation/testing/test-setup.md

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
# Test Setup
2+
3+
Instructions for setting up environments and data for testing Gradebook.
4+
5+
## Set up a course with graded content
6+
7+
A course with graded content is the first prerequisite to testing. Use an existing course (e.g. the DemoX Demonstration Course in Devstack) or see [Building and Running an edX Course > Developing Your Course](https://edx.readthedocs.io/projects/edx-partner-course-staff/en/latest/developing_course/index.html) for notes on how to develop a course from scratch.
8+
9+
Notably, the course needs a grading policy and subsections with scoreable content.
10+
After creating subsections with content, they need to be configured with an "Assignment Type" to be included in grading.
11+
12+
Suggested resources:
13+
- [Establishing a Grading Policy For Your Course](https://edx.readthedocs.io/projects/edx-partner-course-staff/en/latest/grading/index.html)
14+
- [Adding Exercises and Tools](https://edx.readthedocs.io/projects/edx-partner-course-staff/en/latest/grading/index.html)
15+
- [Set the Assignment Type and Due Date for a Subsection](https://edx.readthedocs.io/projects/edx-partner-course-staff/en/latest/developing_course/course_subsections.html#set-the-assignment-type-and-due-date-for-a-subsection)
16+
17+
## Enable Gradebook and feature toggles for course
18+
19+
See README.md #Quickstart for more detailed instructions.
20+
21+
As an admin user, visit Django Admin (`{lms-url}/admin`) to modify features.
22+
- In Grades > Persistent Grades Enabled flag, click "Add persistent grades enabled flag"
23+
- [ ] Enable the flag globally or for the course and click "Save"
24+
- In Django-Waffle > Switches, click "Add switch"
25+
- [ ] Set name to `grades.assume_zero_grade_if_absent`, select "Active", and click "Save"
26+
- In Waffle_Utils > Waffle flag course overrides:
27+
- [ ] Add a new flag called `grades.writeable_gradebook`, select "Force On", and enable it for your course
28+
- [ ] Add a new flag called `grades.bulk_management`, select "Force On", and enable it for your course
29+
30+
## Create a Master's track for testing Master's-only features
31+
32+
[source](https://openedx.atlassian.net/wiki/spaces/MS/pages/1453818012/Add+a+learner+into+a+master+s+track)
33+
34+
Add a Master's track in your course:
35+
- As an admin user, go to Django Admin (`{lms-url}/admin`) > Course Modes and add a new course mode
36+
- Set the Mode to "Master's"
37+
- Set any valid price and currency values
38+
- Click "Save"
39+
40+
Enroll a student in the Master's track:
41+
- As a staff/admin user, go to `{lms-url}/support/enrollment`
42+
- Search for the username or email of student to enroll
43+
- In the results table row matching the user/course, click the "Change Enrollment" button
44+
- Select the "Master's" enrollment mode and click "Submit enrollment change"
45+
46+
## Setup different types of students in course
47+
48+
To fully test features the course should have at least:
49+
- [ ] An audit-track student
50+
- [ ] A master's-track student
51+
- [ ] A staff member
52+
- [ ] A non-staff user

0 commit comments

Comments
 (0)