CSC/ECE 517 Spring 2014/oss E1406 st

From Expertiza_Wiki
Revision as of 02:20, 31 March 2014 by Yhong3 (talk | contribs) (→‎Testing)
Jump to navigation Jump to search

E1406: Improve tests & investigate regex warnings for team functionality

Classes

app/controllers/teams_controller.rb

teams_controller contains functionalities for team management for instructor/TA accounts. Instructor/TA can:

  • view current teams
  • create new teams
  • import/export teams
  • delete teams

app/controllers/student_team_controller.rb

The student_team_controller support team management for student account. student can

  • create team
  • view current team (including team invitations received and sent)
  • advertise for their team
  • remove the advertise for their team
  • leave the team
  • review members (removed)

Motivation

There were no functional tests written on the two controllers to detect bugs, as well as confirming they are functional by itself and after integration.

Our goal is to add comprehensive functional tests and integration tests to the two controllers to provide a preferable test suite for the future developers. Also, as the classes are influenced by the changes from other, we are also responsible for fixing some of the bugs, refactoring the method names to a better ones, as well as reporting the bugs found in the testing process.

Deployment

Please note that all of our work will be under the /test folder, which means they will not show any change on the view. To see the result of tests, run

rake test TEST=test/functional/student_team_controller.rb

and

rake test TEST=test/functional/teams_controller

running the whole test suite with rake test is not recommended, as the schema change overtime has broke some of the previous tests.

Testing

Framework
Rails default testframework<ref>http://guides.rubyonrails.org/testing.html</ref>
Sample data
Fixtures (under /test/fixtures)
Total Number of Tests
??

Testing Scenarios

StudentTeamController

  1. View student team (GET #view)
  2. Edit team (GET #edit)
  3. Create team with valid name (POST #create)
  4. Create team with name in use (POST #create)
  5. Update valid team name (POST #update)
  6. Update team name in use (POST #update)
  7. Update with current team name (POST #update)
  8. Advertise for partners (GET #advertise_for_partners
  9. Remove advertise for partners (GET #remove)
  10. Leave team

Future Works

References

<references/>