CSC/ECE 517 Fall 2019 - E1969. Fixes for reviews not being available: Difference between revisions

From Expertiza_Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 14: Line 14:


=== Testing ===
=== Testing ===
The purpose of the following test is to iterate over a set of plausible user flow paths that terminate in being able to begin a review. The following flow paths are tested, where each step in the path is either a user clicking in the UI or navigating to a page directly using their browser:
=====Clicking around in UI like normal=====
# Assignments -> ReviewTestAssignment -> Others' work -> Request a new submission to review -> Begin
# Contact Us -> Assignments -> ReviewTestAssignment -> Others' work -> Request a new submission to review -> Begin
# Home -> Assignments -> ReviewTestAssignment -> Others' work -> Request a new submission to review -> Begin
# Profile -> Assignments -> ReviewTestAssignment -> Others' work -> Request a new submission to review -> Begin
=====Going from different pages directly to the specific assignment page using address bar=====
# Assignments -> /student_task/view?id=3 -> Others' work -> Request a new submission to review -> Begin
# Contact Us -> /student_task/view?id=3 -> ReviewTestAssignment -> Others' work -> Request a new submission to review -> Begin
# Home -> /student_task/view?id=3 -> ReviewTestAssignment -> Others' work -> Request a new submission to review -> Begin
# Profile -> /student_task/view?id=3 -> ReviewTestAssignment -> Others' work -> Request a new submission to review -> Begin
=====Going from different pages directly to the specific assignment review page using address bar=====
# Assignments -> /student_review/list?id=3 -> Request a new submission to review -> Begin
# Contact Us-> /student_review/list?id=3 -> Request a new submission to review -> Begin
# Home -> /student_review/list?id=3 -> Request a new submission to review -> Begin
# Profile -> /student_review/list?id=3 -> Request a new submission to review -> Begin
=====Going from assignment list to specific assignment page, back to assignment list and then finishing review=====
# student_task/list -> ReviewTestAssignment -> /student_task/list -> ReviewTestAssignment -> Others' work -> Request a new submission to review -> Begin
These test cases are implemented using the following code. In an attempt to keep the code DRY, we loop over the test cases contained in a large array. This array consists of smaller arrays, each representing a user flow path. Each test case array also contains smaller arrays which are the steps in this user flow path. The first element in these "step" arrays are the name of the button/link the browser should click/visit. The second element is what should be present on the page once the navigation is complete.
[[user_flow_test_picture.png|centre]]


=== Results ===
=== Results ===

Revision as of 14:31, 28 October 2019

E1969 - Investigating inabilities to review

Issue #1321

Reported Problem

It was reported by a student that an assignment was not able to be reviewed even though it was during the review period. This bug was thought to be fixed in the past when Issue #915 was merged. However, in December of 2018, another student reported this issue occurring again.

Investigation Approach

It is suspected that if this bug exists, it is caused by an abnormal user flow path. That is, caused by a user navigating to the point where they should be able to conduct a review, but doing so in an indirect way. To begin our investigation of this bug, a flow chart showing most plausible user flow paths was created. We then used this flow chart to guide our investigation efforts. This flow chart is found below:

From this point, we began to manually test the user flow paths represented in our flow chart on our local development environment. Doing this revealed no evidence that the bug exists. We then set out to create an automated test suite that would test the user flow paths in a more quick and reliable way. The code for these tests, as well as the test cases they cover are produced in the testing section below.

Testing

The purpose of the following test is to iterate over a set of plausible user flow paths that terminate in being able to begin a review. The following flow paths are tested, where each step in the path is either a user clicking in the UI or navigating to a page directly using their browser:

Clicking around in UI like normal
  1. Assignments -> ReviewTestAssignment -> Others' work -> Request a new submission to review -> Begin
  2. Contact Us -> Assignments -> ReviewTestAssignment -> Others' work -> Request a new submission to review -> Begin
  3. Home -> Assignments -> ReviewTestAssignment -> Others' work -> Request a new submission to review -> Begin
  4. Profile -> Assignments -> ReviewTestAssignment -> Others' work -> Request a new submission to review -> Begin
Going from different pages directly to the specific assignment page using address bar
  1. Assignments -> /student_task/view?id=3 -> Others' work -> Request a new submission to review -> Begin
  2. Contact Us -> /student_task/view?id=3 -> ReviewTestAssignment -> Others' work -> Request a new submission to review -> Begin
  3. Home -> /student_task/view?id=3 -> ReviewTestAssignment -> Others' work -> Request a new submission to review -> Begin
  4. Profile -> /student_task/view?id=3 -> ReviewTestAssignment -> Others' work -> Request a new submission to review -> Begin
Going from different pages directly to the specific assignment review page using address bar
  1. Assignments -> /student_review/list?id=3 -> Request a new submission to review -> Begin
  2. Contact Us-> /student_review/list?id=3 -> Request a new submission to review -> Begin
  3. Home -> /student_review/list?id=3 -> Request a new submission to review -> Begin
  4. Profile -> /student_review/list?id=3 -> Request a new submission to review -> Begin
Going from assignment list to specific assignment page, back to assignment list and then finishing review
  1. student_task/list -> ReviewTestAssignment -> /student_task/list -> ReviewTestAssignment -> Others' work -> Request a new submission to review -> Begin


These test cases are implemented using the following code. In an attempt to keep the code DRY, we loop over the test cases contained in a large array. This array consists of smaller arrays, each representing a user flow path. Each test case array also contains smaller arrays which are the steps in this user flow path. The first element in these "step" arrays are the name of the button/link the browser should click/visit. The second element is what should be present on the page once the navigation is complete.

centre


Results

Conclusion

Issue #1211

Reported Problem

Investigation Approach

Solution (if changes were needed. Dylan?)

Testing

Results

Conclusion