CSC/ECE 517 Fall 2015/oss E1555 GMR: Difference between revisions
No edit summary |
No edit summary |
||
Line 45: | Line 45: | ||
* Work Item 4 | * Work Item 4 | ||
* Work Item 7 (WI7): the test/controllers/teams_users_controller_test.rb file was added, and the enclosed test cases tested the functionality of attempting to add members to a team, and whether the process was successful or not. | * Work Item 7 (WI7): the test/controllers/teams_users_controller_test.rb file was added, and the enclosed test cases tested the functionality of attempting to add members to a team, and whether the process was successful or not. The following list of fixture files were also added to assist in testing: assignments.yml, nodes.yml, users.yml, participants.yml, teams.yml, roles.yml. The test cases test for successful member adds, failed member adds, and participant and non-participant adds. | ||
== Suggested Future Improvements == | == Suggested Future Improvements == |
Revision as of 23:46, 31 October 2015
This is wiki page for the E1555 OSS assignment for Fall 2015, CSC/ECE 517.
Peer Review Information
For users intending to view the deployed Expertiza associated with this assignment, the credentials are below:
- Instructor login: username -> instructor6, password -> password
- Student login: username -> student5762, password -> password
- Student login: username -> student5763, password -> password
- Student login: username -> student5764, password -> password
Please make note that new accounts and password resets are disabled on the Expertiza deployment; That functionality is outside the scope of the assignment, and it is unnecessary to review that functionality.
Expertiza Background
Expertiza is an open-source web-application with functionality to facilitate the submission and peer review of assignments in an academic setting. Expertiza supports team based assignments, student and instructor roles, allocation of assignments to students (e.g. sign-ups) with number limits.
Assignment Scope & Description
For this assignment, 7 Work Items were assigned, requiring the modification and testing of the Expertiza Ruby on Rails code.
Of the 7 Work Items in the scope of our assignment: 3 of the Work Items involved making code changes to Expertiza, 3 other Work Items involved testing those changes, and one final Work Item had a deliverable of a recorded online video. Below is a list of the Work Items in scope, each with a "WI#" identifier, which will be used henceforth to reference the respective Work Item.
- WI1: Generate _team_name() exists in 2 places: team.rb line 41 and team_helper.rb line 62. Remove the one which is not used.
- WI2: Write test cases for the remaining generate _team_name() method.
- WI3: Test and fix (if any of them are broken) if export_fields(), import() and export() works for both assignment_team.rb and course_team.rb.
- WI4: Write tests for team exporting and importing for both assignment team and course team.
- WI5: Record a video which demos team exporting and importing, submit it to youtube and submit the youtube link to Expertiza.
- WI6: In add_member method, testing if the team can have more members (using “can_add_member” as flag variable) should be extracted to a single method. This method should be used by join_team_requests_controller.rb too.
- WI7: Write tests for adding members when both the team is full and not.
Solutions Implemented and Delivered
- Work Item 1 (WI1): The generate_team_name() method was removed from the team_helper.rb file. This method was removed because, during analysis and testing it was found that the the Generate_team_name method in the Team.rb model file was being executed.
- Work Item 3 (WI3): updated the export functions to export the team members' names consecutively instead of with a space in between them. I also overrode the add_member function in course_team so it doesn't check if the team is full. I then fixed up the course_team tests and added the assignment_team tests.
- Work Item 6 (WI6): In the /models/team.rb file, the add_member method (line 69) was refactored to check if the team can have more members. Additionally, the full? method (line 60) was customized such that it was more useful. The controllers/join_team_requests_controller.rb controller-file was modified to add additional checks for handling the case of sending a team request to a team which is already full. (line 50)
Testing Details
- Work Item 2 (WI2): The /test/unit/team_test.rb file was added, and the included test cases tested the generate_team_name() method functionality. The purpose of each test case is listed in a comment prior to the actual case. In summary, the cases test for name generation, additional name generation, name generation of a zero-length string, name generation of a null string, and name generation after a loop of 20 generated names.
- Work Item 4
- Work Item 7 (WI7): the test/controllers/teams_users_controller_test.rb file was added, and the enclosed test cases tested the functionality of attempting to add members to a team, and whether the process was successful or not. The following list of fixture files were also added to assist in testing: assignments.yml, nodes.yml, users.yml, participants.yml, teams.yml, roles.yml. The test cases test for successful member adds, failed member adds, and participant and non-participant adds.
Suggested Future Improvements
- Perform analysis on the remaining generate_team_name methods to validate whether or now the two remaining versions need to continue to exist in the code.