CSC/ECE 517 Fall 2015 E1591 Integration testing for peer review
Background
Expertiza<ref>Expertiza's Github Site</ref> is an open-source web tool that is used for online assignment completion purpose for different courses. The software enables the students to form online teams and choose different assignment topics. Each topic has a completion deadline and the students can submit the links to their work or assignments through expertiza.
One of the key features of expertiza is the online peer review process. Students who are enrolled in the same courses can review the works or the assignments of the fellow students. Typically for each assignment there is a link called "Other’s Work" where a student is prompted to give feedback to the works of their fellow classmates. This link becomes active after a certain date that is determined by the instructor or the administrator. After the date, a student can choose one of the assignments that are available for review through the activated link.
After an assignment has been chosen for review, the reviewer will be presented with a review sheet that has a number of parameters based upon which the review should be done. The reviewer chooses a rating for each parameter, typically being the lowest and 5 as the highest. He can also leave a comment justifying his rating and stating the scopes of improvements for the project. The team members whose assignment has been reviewed can also review the review, i.e. provide an explanation about their work or give comments with respect to the feedback provided by the reviewer.
For some assignments there is a scope for a re submission of an improved version of the work. After such a re-submission the reviewer can again review the assignment editing and updating his previous review based upon the resubmitted work.
Purpose
The purpose of the project is to perform an integration testing for the peer review of a submitted assignment. We aim to write test cases that test the different positive test scenarios for which the reviewer should be able to successfully submit the review to an assignment. The review process has certain minimum guidelines which need to be adhered to. We also plan to test the negative scenarios for which the reviewer doesn’t adhere to these guidelines and hence should not be able to submit the review to the assignment. The Expertiza project has been developed using Ruby on Rails. The technologies to be used for the project are and Capybara using Ruby on Rails as an underlying framework. We will write the spec methods using RSpec. The various entities like users, assignment, questionnaire and instructor will be simulated using Capybara.
Technologies to be used
RSpec
Rspec<ref>Rspec.Rspec Documentation</ref> is Behavior Driven Development<ref>Behavior Driven Development</ref> framework for ruby, it is a meta gem composed of different libraries designed to work together or with other testing tools like <ref>Cucumber</ref>. It has dependencies on Rspec core, Rspec expectations, Rspec mocks gems which can be loaded by using 'require'.
Installation-
gem install rspec
Capybara
Capybara<ref>Capybara github link</ref> is a library written in ruby, it helps you to test your web applications by pretending to be a user and following the user story, it simulates the browser to interact with app to receive pages parse the HTML and submit forms just as an actual user would do. Capybara can interact with many different drivers which execute tests through the same clean and simple interface. One can choose between Selenium, Webkit or pure Ruby drivers.
Installation-
Capybara requires ruby 1.9.3 or later,to install add following line to your gem file and run bundle install
gem 'capybara'
If testing a rails app add this to your test helper file
require 'capybara/rails'
Integration Testing
Integration testing is a phase of software testing where units which have already been tested are combined into a component and the interface between them is tested<ref>https://msdn.microsoft.com/en-us/library/aa292128(v=vs.71).aspx</ref>. The idea is to test combination of pieces and eventually expand the process to test the modules with those of the other group. Eventually, all the modules making up a process are tested together. Integration testing identifies the problem that occurs when units are combined. Some different types of integration testing are big bang, top- down, bottom-up<ref>https://en.wikipedia.org/wiki/Integration_testing</ref>.
- Big Bang Integration Testing – All modules are integrated simultaneously, after which everything is tested as a whole. It is very effective for saving time in the integration testing process.
- The top down approach – The highest level modules are tested first. This allows high level logic and data flow to be integrated early in the process.
- The bottom up approach - In this approach, lowest level components are tested first, and then used to facilitate the testing of higher level components.
Test Scenarios
Using the testing requirements found on the Project Description:
T1: Login as a Student user and select a submission for review. The submission will only contain points based review choices. The user will successfully submit the review answering the points based review choices.
T2: Login as a Student user and select a submission for review. The submission will only contain points based review choices. The user will unsuccessfully submit the review by only answering some of the points based review choices.
T3: Login as a Student user and select a submission for review. The submission will only contain points based review choices. The user will unsuccessfully submit the review by answering none of the points based review choices.
T4: Login as a Student user and select a submission for review. The submission will only contain text based review choices. The user will successfully submit the review answering the text based review choices.
T5: Login as a Student user and select a submission for review. The submission will only contain text based review choices. The user will unsuccessfully submit the review by only answering some of the text based review choices.
T6: Login as a Student user and select a submission for review. The submission will only contain text based review choices. The user will unsuccessfully submit the review by answering none of the text based review choices.
T7: Login as a Student user and select a submission for review. The submission will only contain text based review choices. The user will submit the review by answering all of the text based review choices with single word answers.
T8: Login as a Student user and select a submission for review. The submission will only contain both points based and text based review choices. The user will successfully submit the review answering all of the review choices.
T9: Login as a Student user and select a submission for review. The submission will only contain both points based and text based review choices. The user will unsuccessfully submit the review answering only some of the review choices.
T10: Login as a Student user and select a submission for review. The submission will only contain both points based and text based review choices. The user will unsuccessfully submit the review answering none of the review choices.
References
<references></references>