The following tests should be implemented before the code is written for these user-stories. The tests should be run after the code is written to validate that the user-stories have been implemented correctly.
We haven't discovered a way to automate these tests at this time. This is simply documentation on the test cases that should be run.
Unit Tests For Following User Story
| Date: | 11/07/00 | Type of User Story (New/Fix): | New |
| Story Number: | 8 | Time Estimate: | 1 week |
| Story description: | |||
| Only one TA / grader (or the professor) will be allowed to update data for a course at the same time. | |||
Grade Listing - a specific grade type in the gradebook. For example, HW1, MIDTERM1, etc.
Test Case Requirements
The Following User Types (or Users w/ following access permissions/titles) are needed in the system to run these test cases.
These users must have the access to modify/change grades in the same class.
Atleast 1 grade listing must be listed in the class.
Professor #1
Professor #2
TA #1
TA #2
Special Note: - Graders (other than TAs and Professors) will be implemented in later iterations. Unit Tests will be updated with Graders at that time.
Unit Test Cases:
These describe a sequence of events that must pass to ensure this section of code is functioning properly.
The following pseudocode implements the test cases for this user story.
run_unit_test(USER1, USER2, LOCATION) {
USER1 logs in to machine 1.
USER1 chooses a grade listing to input/modify grade data.
USER1 enters Grade Modification Screen for that grade listing.
USER2 logs in from machine LOCATION.
USER2 chooses a grade listing to input/modify grade data.
USER2 recieves error message indicating USER1 is entering in data.
USER1 exits Grade Modification Screen for that grade listing.
USER2 chooses a grade listing to input/modify grade data.
USER2 enters Grade Modification Screen for that grade listing.
}
The following test cases should be run:
Test #1: run_unit_test(Professor #1, Professor #2, 1)
Test #2: run_unit_test(Professor #1, Professor #2, 2)
Test #3: run_unit_test(Professor #1, TA #1, 1)
Test #4: run_unit_test(Professor #1, TA #1, 2)
Test #5: run_unit_test( TA #1, Professor #1, 1)
Test #6: run_unit_test( TA #1, Professor #1, 2)
Test #7: run_unit_test( TA #1, TA #2, 1)
Test #8: run_unit_test( TA #1, TA #2, 2)
Unit Tests For Following User Story
| Date: | 11/07/00 | Type of User Story (New/Fix): | New |
| Story Number: | 7 | Time Estimate: | 2 weeks |
| Story description: | |||
| TAs and professors can update student grade data for the courses they are involved with. | |||
Grade Listing - a specific grade type in the gradebook. For example, HW1, MIDTERM1, etc.
MAXSTUDENTS - the maximum number of students that can be in a class. Defined by system administrator.
MAXPOINT - the maximum number of points allowed on an assignment. Defined by system administrator.
Unit Tests Part One:
Part One - Test Case Requirements
The Following User Types (or Users w/ following access permissions/titles) are needed in the system to run these test cases.
These users must have the access to modify/change grades in the same class.
Atleast 1 grade listing must be listed in the class.
Professor #1
TA #1
Part One - Unit Test Cases
These test cases test boundary conditions for grade inputs.
The following pseudocode implements the test cases for this user story.
run_unit_test(USER, INPUT, EXPECT_AN_ERROR) {
USER1 chooses a grade listing to input/modify grade data.
USER1 enters grade modification screen for that grade listing.
USER1 will change a grade to the value INPUT.
USER1 attempts to save grade changes.
if (EXPECT_AN_ERROR equals "YES")
USER1 will recieve an error message.
else
No Error Returned
}
The following test cases should be run:
Test #1: run_unit_test(Professor #1, 0, NO)
Test #2: run_unit_test(Professor #1, -1, YES)
Test #3: run_unit_test(Professor #1, MAXPOINT, NO)
Test #4: run_unit_test(Professor #1, MAXPOINT+1, YES)
Test #5: run_unit_test(Professor #1, "A", YES)
Test #6: run_unit_test( TA #1, 0, NO)
Test #7: run_unit_test( TA #1, -1, YES)
Test #8: run_unit_test( TA #1, MAXPOINT, NO)
Test #9: run_unit_test( TA #1, MAXPOINT+1, YES)
Test #10: run_unit_test( TA #1, "A", YES)
Unit Tests Part Two:
Part Two - Test Case Requirements
The Following User Types (or Users w/ following access permissions/titles) are needed in the system to run these test cases.
These users must have the access to modify/change grades in the same class.
Professor #1
TA #1
The Following grade listings must be available to be entered.
HW1 - out of 1 point
MP1 - out of 100 points
EXAM1 - out of system defined MAXPOINT points
The Following classes must be available to be tested upon.
ECON102 - 1 student in class
CS327 - 50 students in class
HIST225 - system defined MAXSTUDENTS in class
Part Two - Unit Test Cases
These tests make sure grades are inputted correctly, saved/canceled correctly, and do not make any unforeseen changes to the database as a whole.
The following pseudocode implements the test cases for this user story.
run_unit_test(USER1, USER2, ASSIGNMENT, CLASS, NUM, COMMANDS, EXPECT_CHANGE) {
USER1 logs into CLASS.
USER1 enters grade modification screen for grade listing of ASSIGNMENT.
USER1 modifies NUM student grades.
if (COMMANDS equals "SAVE")
USER1 attempts to save grade changes.
else if (COMMANDS equals "CANCEL-SAVE")
USER1 attempts to cancel grade changes.
USER1 recieves warning "Changes have been made."
USER1 selects "Save Changes & Exit."
else if (COMMANDS equals "CANCEL-CANCEL")
USER1 attempts to cancel grade changes.
USER1 recieves warning "Changes have been made."
USER1 selects "Cancel Changes."
if (EXPECT_CHANGE equals "YES")
USER1 re-enters grade modification screen for grade listing of ASSIGNMENT
All grade changes that USER1 made are listed.
USER2 enters grading system and attempts to view grade listing ASSIGNMENT in CLASS
All grade changes that USER1 made are listed.
else (EXPECT_CHANGE equals "NO")
USER1 re-enters grade modification screen for grade listing of ASSIGNMENT
All grade changes that USER1 made are NOT listed.
USER2 enters grading system and attempts to view grade listing ASSIGNMENT in CLASS
All grade changes that USER1 made are NOT listed.
System will now analyze the entire grades database to ensure this test case's grade
modifications have not changed grades for any other grade listing in any other class.
}
The following test cases should be run:
Test #1: run_unit_test(Professor #1, TA #1, MP1, ECON102, 0, SAVE, NO)
Test #2: run_unit_test(Professor #1, TA #1, MP1, CS327, 0, SAVE, NO)
Test #3: run_unit_test(Professor #1, TA #1, MP1, HIST225, 0, SAVE, NO)
Test #4: run_unit_test(TA #1, Professor #1, MP1, ECON102, 0, SAVE, NO)
Test #5: run_unit_test(TA #1, Professor #1, MP1, CS327, 0, SAVE, NO)
Test #6: run_unit_test(TA #1, Professor #1, MP1, HIST225, 0, SAVE, NO)
Test #7: run_unit_test(Professor #1, TA #1, HW1, ECON102, 1, SAVE, YES)
Test #8: run_unit_test(Professor #1, TA #1, MP1, ECON102, 1, SAVE, YES)
Test #9: run_unit_test(Professor #1, TA #1, EXAM1, ECON102, 1, SAVE, YES)
Test #10: run_unit_test(Professor #1, TA #1, HW1, CS327, 1, SAVE, YES)
Test #11: run_unit_test(Professor #1, TA #1, MP1, CS327, 1, SAVE, YES)
Test #12: run_unit_test(Professor #1, TA #1, EXAM1, CS327, 1, SAVE, YES)
Test #13: run_unit_test(Professor #1, TA #1, HW1, CS327, 5, SAVE, YES)
Test #14: run_unit_test(Professor #1, TA #1, MP1, CS327, 5, SAVE, YES)
Test #15: run_unit_test(Professor #1, TA #1, EXAM1, CS327, 5, SAVE, YES)
Test #16: run_unit_test(Professor #1, TA #1, HW1, CS327, 50, SAVE, YES)
Test #17: run_unit_test(Professor #1, TA #1, MP1, CS327, 50, SAVE, YES)
Test #18: run_unit_test(Professor #1, TA #1, EXAM1, CS327, 50, SAVE, YES)
Test #19: run_unit_test(Professor #1, TA #1, HW1, HIST225, 1, SAVE, YES)
Test #21: run_unit_test(Professor #1, TA #1, MP1, HIST225, 1, SAVE, YES)
Test #22: run_unit_test(Professor #1, TA #1, EXAM1, HIST225, 1, SAVE, YES)
Test #23: run_unit_test(Professor #1, TA #1, HW1, HIST225, 5, SAVE, YES)
Test #24: run_unit_test(Professor #1, TA #1, MP1, HIST225, 5, SAVE, YES)
Test #25: run_unit_test(Professor #1, TA #1, EXAM1, HIST225, 5, SAVE, YES)
Test #26: run_unit_test(Professor #1, TA #1, HW1, HIST225, MAXSTUDENTS, SAVE, YES)
Test #27: run_unit_test(Professor #1, TA #1, MP1, HIST225, MAXSTUDENTS, SAVE, YES)
Test #28: run_unit_test(Professor #1, TA #1, EXAM1, HIST225, MAXSTUDENTS, SAVE, YES)
Test #29: run_unit_test(TA #1, Professor #1, HW1, ECON102, 1, SAVE, YES)
Test #30: run_unit_test(TA #1, Professor #1, MP1, ECON102, 1, SAVE, YES)
Test #31: run_unit_test(TA #1, Professor #1, EXAM1, ECON102, 1, SAVE, YES)
Test #32: run_unit_test(TA #1, Professor #1, HW1, CS327, 1, SAVE, YES)
Test #33: run_unit_test(TA #1, Professor #1, MP1, CS327, 1, SAVE, YES)
Test #34: run_unit_test(TA #1, Professor #1, EXAM1, CS327, 1, SAVE, YES)
Test #35: run_unit_test(TA #1, Professor #1, HW1, CS327, 5, SAVE, YES)
Test #36: run_unit_test(TA #1, Professor #1, MP1, CS327, 5, SAVE, YES)
Test #37: run_unit_test(TA #1, Professor #1, EXAM1, CS327, 5, SAVE, YES)
Test #38: run_unit_test(TA #1, Professor #1, HW1, CS327, 50, SAVE, YES)
Test #39: run_unit_test(TA #1, Professor #1, MP1, CS327, 50, SAVE, YES)
Test #40: run_unit_test(TA #1, Professor #1, EXAM1, CS327, 50, SAVE, YES)
Test #41: run_unit_test(TA #1, Professor #1, HW1, HIST225, 1, SAVE, YES)
Test #42: run_unit_test(TA #1, Professor #1, MP1, HIST225, 1, SAVE, YES)
Test #43: run_unit_test(TA #1, Professor #1, EXAM1, HIST225, 1, SAVE, YES)
Test #44: run_unit_test(TA #1, Professor #1, HW1, HIST225, 5, SAVE, YES)
Test #45: run_unit_test(TA #1, Professor #1, MP1, HIST225, 5, SAVE, YES)
Test #46: run_unit_test(TA #1, Professor #1, EXAM1, HIST225, 5, SAVE, YES)
Test #47: run_unit_test(TA #1, Professor #1, HW1, HIST225, MAXSTUDENTS, SAVE, YES)
Test #48: run_unit_test(TA #1, Professor #1, MP1, HIST225, MAXSTUDENTS, SAVE, YES)
Test #49: run_unit_test(TA #1, Professor #1, EXAM1, HIST225, MAXSTUDENTS, SAVE, YES)
Test #50: run_unit_test(Professor #1, TA #1, HW1, ECON102, 1, CANCEL-SAVE, YES)
Test #51: run_unit_test(Professor #1, TA #1, MP1, ECON102, 1, CANCEL-SAVE, YES)
Test #52: run_unit_test(Professor #1, TA #1, EXAM1, ECON102, 1, CANCEL-SAVE, YES)
Test #53: run_unit_test(Professor #1, TA #1, HW1, CS327, 1, CANCEL-SAVE, YES)
Test #54: run_unit_test(Professor #1, TA #1, MP1, CS327, 1, CANCEL-SAVE, YES)
Test #55: run_unit_test(Professor #1, TA #1, EXAM1, CS327, 1, CANCEL-SAVE, YES)
Test #56: run_unit_test(Professor #1, TA #1, HW1, CS327, 5, CANCEL-SAVE, YES)
Test #57: run_unit_test(Professor #1, TA #1, MP1, CS327, 5, CANCEL-SAVE, YES)
Test #58: run_unit_test(Professor #1, TA #1, EXAM1, CS327, 5, CANCEL-SAVE, YES)
Test #59: run_unit_test(Professor #1, TA #1, HW1, CS327, 50, CANCEL-SAVE, YES)
Test #60: run_unit_test(Professor #1, TA #1, MP1, CS327, 50, CANCEL-SAVE, YES)
Test #61: run_unit_test(Professor #1, TA #1, EXAM1, CS327, 50, CANCEL-SAVE, YES)
Test #62: run_unit_test(Professor #1, TA #1, HW1, HIST225, 1, CANCEL-SAVE, YES)
Test #63: run_unit_test(Professor #1, TA #1, MP1, HIST225, 1, CANCEL-SAVE, YES)
Test #64: run_unit_test(Professor #1, TA #1, EXAM1, HIST225, 1, CANCEL-SAVE, YES)
Test #65: run_unit_test(Professor #1, TA #1, HW1, HIST225, 5, CANCEL-SAVE, YES)
Test #66: run_unit_test(Professor #1, TA #1, MP1, HIST225, 5, CANCEL-SAVE, YES)
Test #67: run_unit_test(Professor #1, TA #1, EXAM1, HIST225, 5, CANCEL-SAVE, YES)
Test #68: run_unit_test(Professor #1, TA #1, HW1, HIST225, MAXSTUDENTS, CANCEL-SAVE, YES)
Test #69: run_unit_test(Professor #1, TA #1, MP1, HIST225, MAXSTUDENTS, CANCEL-SAVE, YES)
Test #70: run_unit_test(Professor #1, TA #1, EXAM1, HIST225, MAXSTUDENTS, CANCEL-SAVE, YES)
Test #71: run_unit_test(TA #1, Professor #1, HW1, ECON102, 1, CANCEL-SAVE, YES)
Test #72: run_unit_test(TA #1, Professor #1, MP1, ECON102, 1, CANCEL-SAVE, YES)
Test #73: run_unit_test(TA #1, Professor #1, EXAM1, ECON102, 1, CANCEL-SAVE, YES)
Test #74: run_unit_test(TA #1, Professor #1, HW1, CS327, 1, CANCEL-SAVE, YES)
Test #75: run_unit_test(TA #1, Professor #1, MP1, CS327, 1, CANCEL-SAVE, YES)
Test #76: run_unit_test(TA #1, Professor #1, EXAM1, CS327, 1, CANCEL-SAVE, YES)
Test #77: run_unit_test(TA #1, Professor #1, HW1, CS327, 5, CANCEL-SAVE, YES)
Test #78: run_unit_test(TA #1, Professor #1, MP1, CS327, 5, CANCEL-SAVE, YES)
Test #79: run_unit_test(TA #1, Professor #1, EXAM1, CS327, 5, CANCEL-SAVE, YES)
Test #80: run_unit_test(TA #1, Professor #1, HW1, CS327, 50, CANCEL-SAVE, YES)
Test #81: run_unit_test(TA #1, Professor #1, MP1, CS327, 50, CANCEL-SAVE, YES)
Test #82: run_unit_test(TA #1, Professor #1, EXAM1, CS327, 50, CANCEL-SAVE, YES)
Test #83: run_unit_test(TA #1, Professor #1, HW1, HIST225, 1, CANCEL-SAVE, YES)
Test #84: run_unit_test(TA #1, Professor #1, MP1, HIST225, 1, CANCEL-SAVE, YES)
Test #85: run_unit_test(TA #1, Professor #1, EXAM1, HIST225, 1, CANCEL-SAVE, YES)
Test #86: run_unit_test(TA #1, Professor #1, HW1, HIST225, 5, CANCEL-SAVE, YES)
Test #87: run_unit_test(TA #1, Professor #1, MP1, HIST225, 5, CANCEL-SAVE, YES)
Test #88: run_unit_test(TA #1, Professor #1, EXAM1, HIST225, 5, CANCEL-SAVE, YES)
Test #89: run_unit_test(TA #1, Professor #1, HW1, HIST225, MAXSTUDENTS, CANCEL-SAVE, YES)
Test #90: run_unit_test(TA #1, Professor #1, MP1, HIST225, MAXSTUDENTS, CANCEL-SAVE, YES)
Test #91: run_unit_test(TA #1, Professor #1, EXAM1, HIST225, MAXSTUDENTS, CANCEL-SAVE, YES)
Test #92: run_unit_test(Professor #1, TA #1, HW1, ECON102, 1, CANCEL-CANCEL, NO)
Test #93: run_unit_test(Professor #1, TA #1, MP1, ECON102, 1, CANCEL-CANCEL, NO)
Test #94: run_unit_test(Professor #1, TA #1, EXAM1, ECON102, 1, CANCEL-CANCEL, NO)
Test #95: run_unit_test(Professor #1, TA #1, HW1, CS327, 1, CANCEL-CANCEL, NO)
Test #96: run_unit_test(Professor #1, TA #1, MP1, CS327, 1, CANCEL-CANCEL, NO)
Test #97: run_unit_test(Professor #1, TA #1, EXAM1, CS327, 1, CANCEL-CANCEL, NO)
Test #98: run_unit_test(Professor #1, TA #1, HW1, CS327, 5, CANCEL-CANCEL, NO)
Test #99: run_unit_test(Professor #1, TA #1, MP1, CS327, 5, CANCEL-CANCEL, NO)
Test #100: run_unit_test(Professor #1, TA #1, EXAM1, CS327, 5, CANCEL-CANCEL, NO)
Test #101: run_unit_test(Professor #1, TA #1, HW1, CS327, 50, CANCEL-CANCEL, NO)
Test #102: run_unit_test(Professor #1, TA #1, MP1, CS327, 50, CANCEL-CANCEL, NO)
Test #103: run_unit_test(Professor #1, TA #1, EXAM1, CS327, 50, CANCEL-CANCEL, NO)
Test #104: run_unit_test(Professor #1, TA #1, HW1, HIST225, 1, CANCEL-CANCEL, NO)
Test #105: run_unit_test(Professor #1, TA #1, MP1, HIST225, 1, CANCEL-CANCEL, NO)
Test #106: run_unit_test(Professor #1, TA #1, EXAM1, HIST225, 1, CANCEL-CANCEL, NO)
Test #107: run_unit_test(Professor #1, TA #1, HW1, HIST225, 5, CANCEL-CANCEL, NO)
Test #108: run_unit_test(Professor #1, TA #1, MP1, HIST225, 5, CANCEL-CANCEL, NO)
Test #109: run_unit_test(Professor #1, TA #1, EXAM1, HIST225, 5, CANCEL-CANCEL, NO)
Test #110: run_unit_test(Professor #1, TA #1, HW1, HIST225, MAXSTUDENTS, CANCEL-CANCEL, NO)
Test #111: run_unit_test(Professor #1, TA #1, MP1, HIST225, MAXSTUDENTS, CANCEL-CANCEL, NO)
Test #112: run_unit_test(Professor #1, TA #1, EXAM1, HIST225, MAXSTUDENTS, CANCEL-CANCEL, NO)
Test #113: run_unit_test(TA #1, Professor #1, HW1, ECON102, 1, CANCEL-CANCEL, NO)
Test #114: run_unit_test(TA #1, Professor #1, MP1, ECON102, 1, CANCEL-CANCEL, NO)
Test #115: run_unit_test(TA #1, Professor #1, EXAM1, ECON102, 1, CANCEL-CANCEL, NO)
Test #116: run_unit_test(TA #1, Professor #1, HW1, CS327, 1, CANCEL-CANCEL, NO)
Test #117: run_unit_test(TA #1, Professor #1, MP1, CS327, 1, CANCEL-CANCEL, NO)
Test #118: run_unit_test(TA #1, Professor #1, EXAM1, CS327, 1, CANCEL-CANCEL, NO)
Test #119: run_unit_test(TA #1, Professor #1, HW1, CS327, 5, CANCEL-CANCEL, NO)
Test #120: run_unit_test(TA #1, Professor #1, MP1, CS327, 5, CANCEL-CANCEL, NO)
Test #121: run_unit_test(TA #1, Professor #1, EXAM1, CS327, 5, CANCEL-CANCEL, NO)
Test #122: run_unit_test(TA #1, Professor #1, HW1, CS327, 50, CANCEL-CANCEL, NO)
Test #123: run_unit_test(TA #1, Professor #1, MP1, CS327, 50, CANCEL-CANCEL, NO)
Test #124: run_unit_test(TA #1, Professor #1, EXAM1, CS327, 50, CANCEL-CANCEL, NO)
Test #125: run_unit_test(TA #1, Professor #1, HW1, HIST225, 1, CANCEL-CANCEL, NO)
Test #126: run_unit_test(TA #1, Professor #1, MP1, HIST225, 1, CANCEL-CANCEL, NO)
Test #127: run_unit_test(TA #1, Professor #1, EXAM1, HIST225, 1, CANCEL-CANCEL, NO)
Test #128: run_unit_test(TA #1, Professor #1, HW1, HIST225, 5, CANCEL-CANCEL, NO)
Test #129: run_unit_test(TA #1, Professor #1, MP1, HIST225, 5, CANCEL-CANCEL, NO)
Test #130: run_unit_test(TA #1, Professor #1, EXAM1, HIST225, 5, CANCEL-CANCEL, NO)
Test #131: run_unit_test(TA #1, Professor #1, HW1, HIST225, MAXSTUDENTS, CANCEL-CANCEL, NO)
Test #132: run_unit_test(TA #1, Professor #1, MP1, HIST225, MAXSTUDENTS, CANCEL-CANCEL, NO)
Test #133: run_unit_test(TA #1, Professor #1, EXAM1, HIST225, MAXSTUDENTS, CANCEL-CANCEL, NO)