<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dsiva</id>
	<title>Expertiza_Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.expertiza.ncsu.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dsiva"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Dsiva"/>
	<updated>2026-05-18T11:50:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Text_metrics&amp;diff=105317</id>
		<title>Text metrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Text_metrics&amp;diff=105317"/>
		<updated>2016-11-10T04:36:30Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: /* Proposed Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the design review of our final project as part of CSC 517 in Fall 2016.&lt;br /&gt;
The Project is titled Text Metrics. &lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
&lt;br /&gt;
This project will facilitate few text metrics to evaluate student's peer reviews.&lt;br /&gt;
The text metrics will provide a result about the textual content, the nature of the review, whether it contains any sort of offensive or improper language, and quantify the sincerity of the review in general.&lt;br /&gt;
&lt;br /&gt;
===Tasks to be completed===&lt;br /&gt;
&lt;br /&gt;
#Create DB table [review_metrics] to record all the metrics of volume, presence of suggestions, errors/problems pointed out by the reviewer and offensive words used in the review text if any.&lt;br /&gt;
#Add a pop-up dialog or a label for both students (student_review/list) and  for instructors by adding content in review_mapping/response_report page metrics column &lt;br /&gt;
#Make sure the code works for both assignments with and without &amp;quot;vary rubric by rounds&amp;quot; selected.&lt;br /&gt;
#Make sure the code updates the review text metrics table when the peer reviews are updated.&lt;br /&gt;
#Sort the reviews based on the text metrics on the “Your scores” pages of students’ view&lt;br /&gt;
#Create tests to make sure the test coverage increases&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
Currently, after completion of reviews, the reviewers can view their responses as shown in the screenshot below: &lt;br /&gt;
&lt;br /&gt;
Instructors can see the response of the reviewers. However, in order to analyze the quality of review given by the students, the instructors have to manually go through all the reviews given by every student one at a time. This could be a time-consuming process, and the reviewers may not be properly assessed. &lt;br /&gt;
&lt;br /&gt;
In order to ease the process of evaluating the reviewers, metrics that can analyze the text written by the reviewers can be added. This will give more information about the reviews given by the reviewers to the instructors evaluating them.&lt;br /&gt;
&lt;br /&gt;
[[File:Capture1981.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Proposed Design===&lt;br /&gt;
&lt;br /&gt;
With reference to the current tasks, we will be adding a new model &lt;br /&gt;
Review_metrics. This model will include all the metrics as follows:&lt;br /&gt;
&lt;br /&gt;
#response_id → int(11) → foreign key&lt;br /&gt;
#volume → int(11) →  # of [different] words&lt;br /&gt;
#suggestion → tinyint(1) → if suggestion is given in the peer-review&lt;br /&gt;
#problem → tinyint(1) → if problems or errors in the artifact are pointed out in the peer-review&lt;br /&gt;
#offensive_term → tinyint(1) → if the peer-review contains any offensive terms&lt;br /&gt;
&lt;br /&gt;
There will be a consequent review_metric_controller which will include all the necessary CRUD operations&lt;br /&gt;
for review metrics such as add, remove and update review metrics.&lt;br /&gt;
&lt;br /&gt;
We will be dealing with the following View files:&lt;br /&gt;
&lt;br /&gt;
# student_review/list.html.erb - for the student&lt;br /&gt;
# review_mapping/response_report.html.erb - for the instructor&lt;br /&gt;
&lt;br /&gt;
==== Design Pattern Used ====&lt;br /&gt;
Iterator pattern is used as the design pattern. This pattern is used in order to allow us to iterate over the elements of a collection regardless of their implementation. In our case, the collection is the different responses given by a reviewer in one single feedback. Since we will be iterating over the different responses in a given feedback by a reviewer (where the different responses in a given feedback are the elements of the collection) in order to collect the text metrics, the design pattern used will be an iterator pattern. This will provide a standard interface for starting an iteration and moving to the next element, regardless of the implementation of the collection.&lt;br /&gt;
&lt;br /&gt;
====Features to be added====&lt;br /&gt;
&lt;br /&gt;
Added label or pop up which will indicate the metrics as icons, as shown below.&lt;br /&gt;
These icons will directly summarize the review in terms of predefined metrics. The reviews will be sorted according to the text metrics and will be displayed to the student on the 'Your Scores' page.&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Text_metrics&amp;diff=105316</id>
		<title>Text metrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Text_metrics&amp;diff=105316"/>
		<updated>2016-11-10T04:36:11Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: /* Proposed Design */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the design review of our final project as part of CSC 517 in Fall 2016.&lt;br /&gt;
The Project is titled Text Metrics. &lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
&lt;br /&gt;
This project will facilitate few text metrics to evaluate student's peer reviews.&lt;br /&gt;
The text metrics will provide a result about the textual content, the nature of the review, whether it contains any sort of offensive or improper language, and quantify the sincerity of the review in general.&lt;br /&gt;
&lt;br /&gt;
===Tasks to be completed===&lt;br /&gt;
&lt;br /&gt;
#Create DB table [review_metrics] to record all the metrics of volume, presence of suggestions, errors/problems pointed out by the reviewer and offensive words used in the review text if any.&lt;br /&gt;
#Add a pop-up dialog or a label for both students (student_review/list) and  for instructors by adding content in review_mapping/response_report page metrics column &lt;br /&gt;
#Make sure the code works for both assignments with and without &amp;quot;vary rubric by rounds&amp;quot; selected.&lt;br /&gt;
#Make sure the code updates the review text metrics table when the peer reviews are updated.&lt;br /&gt;
#Sort the reviews based on the text metrics on the “Your scores” pages of students’ view&lt;br /&gt;
#Create tests to make sure the test coverage increases&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
Currently, after completion of reviews, the reviewers can view their responses as shown in the screenshot below: &lt;br /&gt;
&lt;br /&gt;
Instructors can see the response of the reviewers. However, in order to analyze the quality of review given by the students, the instructors have to manually go through all the reviews given by every student one at a time. This could be a time-consuming process, and the reviewers may not be properly assessed. &lt;br /&gt;
&lt;br /&gt;
In order to ease the process of evaluating the reviewers, metrics that can analyze the text written by the reviewers can be added. This will give more information about the reviews given by the reviewers to the instructors evaluating them.&lt;br /&gt;
&lt;br /&gt;
[[File:Capture1981.PNG]]&lt;br /&gt;
&lt;br /&gt;
===Proposed Design===&lt;br /&gt;
&lt;br /&gt;
With reference to the current tasks, we will be adding a new model &lt;br /&gt;
Review_metrics. This model will include all the metrics as follows:&lt;br /&gt;
&lt;br /&gt;
#response_id → int(11) → foreign key&lt;br /&gt;
#volume → int(11) →  # of [different] words&lt;br /&gt;
#suggestion → tinyint(1) → if suggestion is given in the peer-review&lt;br /&gt;
#problem → tinyint(1) → if problems or errors in the artifact are pointed out in the peer-review&lt;br /&gt;
#offensive_term → tinyint(1) → if the peer-review contains any offensive terms&lt;br /&gt;
&lt;br /&gt;
There will be a consequent review_metric_controller which will include all the necessary CRUD operations&lt;br /&gt;
for review metrics such as add, remove and update review metrics.&lt;br /&gt;
&lt;br /&gt;
We will be dealing with the following View files:&lt;br /&gt;
&lt;br /&gt;
# student_review/list.html.erb - for the student&lt;br /&gt;
# review_mapping/response_report.html.erb - for the instructor&lt;br /&gt;
&lt;br /&gt;
==== Design Pattern Used ====&lt;br /&gt;
Iterator pattern is used as the design pattern. This pattern is used in order to allow us to iterate over the elements of a collection regardless of their implementation. In our case, the collection is the different responses given by a reviewer in one single feedback. Since we will be iterating over the different responses in a given feedback by a reviewer (where the different responses in a given feedback are the elements of the collection) in order to collect the text metrics, the design pattern used will be an iterator pattern. This will provide a standard interface for starting an iteration and moving to the next element, regardless of the implementation of the collection.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Features to be added====&lt;br /&gt;
&lt;br /&gt;
Added label or pop up which will indicate the metrics as icons, as shown below.&lt;br /&gt;
These icons will directly summarize the review in terms of predefined metrics. The reviews will be sorted according to the text metrics and will be displayed to the student on the 'Your Scores' page.&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Text_metrics&amp;diff=105114</id>
		<title>Text metrics</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Text_metrics&amp;diff=105114"/>
		<updated>2016-11-10T00:40:11Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: Created page with &amp;quot;This is the design review of our final project as part of CSC 517 in Fall 2016. The Project is titled Text Metrics.   ===Description===  This project will facilitate few text met...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the design review of our final project as part of CSC 517 in Fall 2016.&lt;br /&gt;
The Project is titled Text Metrics. &lt;br /&gt;
&lt;br /&gt;
===Description===&lt;br /&gt;
&lt;br /&gt;
This project will facilitate few text metrics to evaluate student's peer reviews.&lt;br /&gt;
The text metrics will provide a result about the textual content, the nature of the review, whether it contains any sort of offensive or improper language, and quantify the sincerity of the review in general.&lt;br /&gt;
&lt;br /&gt;
===Tasks to be completed===&lt;br /&gt;
&lt;br /&gt;
#Create DB table [review_metrics] to record all the metrics of volume, presence of suggestions, errors/problems pointed out by the reviewer and offensive words used in the review text if any.&lt;br /&gt;
#Add a pop-up dialog or a label for both students (student_review/list) and  for instructors by adding content in review_mapping/response_report page metrics column &lt;br /&gt;
#Make sure the code works for both assignments with and without &amp;quot;vary rubric by rounds&amp;quot; selected.&lt;br /&gt;
#Make sure the code updates the review text metrics table when the peer reviews are updated.&lt;br /&gt;
#Sort the reviews based on the text metrics on the “Your scores” pages of students’ view&lt;br /&gt;
#Create tests to make sure the test coverage increases&lt;br /&gt;
&lt;br /&gt;
===Current Implementation===&lt;br /&gt;
Currently, after completion of reviews, the reviewers can view their responses as shown in the screenshot below: &lt;br /&gt;
&lt;br /&gt;
Instructors can see the response of the reviewers. However, in order to analyze the quality of review given by the students, the instructors have to manually go through all the reviews given by every student one at a time. This could be a time-consuming process, and the reviewers may not be properly assessed. &lt;br /&gt;
&lt;br /&gt;
In order to ease the process of evaluating the reviewers, metrics that can analyze the text written by the reviewers can be added. This will give more information about the reviews given by the reviewers to the instructors evaluating them.&lt;br /&gt;
&lt;br /&gt;
===Proposed Design===&lt;br /&gt;
&lt;br /&gt;
With reference to the current tasks, we will be adding a new model &lt;br /&gt;
Review_metrics. This model will include all the metrics as follows:&lt;br /&gt;
&lt;br /&gt;
#response_id → int(11) → foreign key&lt;br /&gt;
#volume → int(11) →  # of [different] words&lt;br /&gt;
#suggestion → tinyint(1) → if suggestion is given in the peer-review&lt;br /&gt;
#problem → tinyint(1) → if problems or errors in the artifact are pointed out in the peer-review&lt;br /&gt;
#offensive_term → tinyint(1) → if the peer-review contains any offensive terms&lt;br /&gt;
&lt;br /&gt;
There will be a consequent review_metric_controller which will include all the necessary CRUD operations&lt;br /&gt;
for review metrics such as add, remove and update review metrics.&lt;br /&gt;
&lt;br /&gt;
We will be dealing with the following View files:&lt;br /&gt;
&lt;br /&gt;
# student_review/list.html.erb - for the student&lt;br /&gt;
# review_mapping/response_report.html.erb - for the instructor&lt;br /&gt;
Since we will be iterating over the different responses in a given feedback by a reviewer (where the different responses in a given feedback are the elements of the collection) in order to collect the text metrics, the design pattern used will be an iterator pattern.&lt;br /&gt;
&lt;br /&gt;
====Features to be added====&lt;br /&gt;
&lt;br /&gt;
Added label or pop up which will indicate the metrics as icons, as shown below.&lt;br /&gt;
These icons will directly summarize the review in terms of predefined metrics. The reviews will be sorted according to the text metrics and will be displayed to the student on the 'Your Scores' page.&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104527</id>
		<title>CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104527"/>
		<updated>2016-11-04T22:28:15Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: /* Running Tests From Terminal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is a web application which enables students to choose a topic in an assignment, submit assignments and peer review others' work. This application also allows the instructors to add assignments to a course, and create multiple topics with varying rubrics and different deadlines for an assignment.The Expertiza project is developed on Open Source Software (OSS) and is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
=== Rspec ===&lt;br /&gt;
[http://rspec.info Rspec] is a behavior-driven development tool for Ruby programmers which helps write human readable specifications that direct and validate the development of an application. RSpec is composed of multiple libraries which can be used together or independently with other testing tools like Capybara and Cucumber. There are four parts of RSpec. They are:&lt;br /&gt;
# rspec-core &lt;br /&gt;
# rspec-expectations&lt;br /&gt;
# rspec-mocks&lt;br /&gt;
# rspec-rails&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[https://github.com/jnicklas/capybara Capybara] is a web-based test automation software that simulates scenarios for user stories. It can automate web application testing for behavior-driven software development (BDD). It is a gem that can be used on top of a web-based driver. It offers a user-friendly domain specific language to describe a sequence of actions executed by the web driver. It is a part of the Cucumber testing framework.&lt;br /&gt;
&lt;br /&gt;
It is supported by the following web-based drivers:&lt;br /&gt;
* RackTest&lt;br /&gt;
* Selenium&lt;br /&gt;
* Capybara-webkit&lt;br /&gt;
&lt;br /&gt;
=== Functional Testing ===&lt;br /&gt;
[https://en.wikipedia.org/wiki/Functional_testing Functional testing] is a type of black-box testing used in quality assurance, Functional tests are done by feeding the inputs and checking the outputs giving least importance to the internal structure of the program. It describes what the system does. Functional testing verifies a program by checking it against the specification documents. There are different types of functional testing:&lt;br /&gt;
* Smoke testing&lt;br /&gt;
* Sanity testing&lt;br /&gt;
* Regression testing&lt;br /&gt;
* Usability testing&lt;br /&gt;
&lt;br /&gt;
== Project Description and Test Strategy==&lt;br /&gt;
Staggered deadline means having different deadlines for different topics under the same assignment. This is a relatively new feature of Expertiza. Deadline of different topics under the same assignment may need to be different for reasons like dependency of one topic on another. The aim of this project is to write RSpec tests to test the functionality of staggered deadline using Capybara. According to the instruction, we design 3 test cases:&lt;br /&gt;
&lt;br /&gt;
'''Initial state:''' Two students with different topics submit their work before the assignment's submission deadline in round 1.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 1:''' Change deadline of topic 1 to bring it into review stage in round 1, check if the student assigned with topic 1 can review others' work, check if the rubrics are right for round 1.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 2:''' Change the deadlines of both the topics to bring them into review stage in round 2, check if the students assigned with these topics can review each other's work, check if the rubrics are right for round 2.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 3:''' Change the deadline of both the topic to bring them into finish stage in round 2, check that the students assigned with these topics are unable to review each other.&lt;br /&gt;
&lt;br /&gt;
== Test Steps in UI==&lt;br /&gt;
Our test plan is divided into the following steps:&lt;br /&gt;
# Create an assignment: Create an assignment with topic with varying rubric by round feature.&lt;br /&gt;
# Add participants to newly created assignment. &lt;br /&gt;
# Submit a Topic: Impersonate each participant, choose a topic and submit something.&lt;br /&gt;
# Change topic Deadline: Change deadline of each topic and let each topic be in different stages (like submission round 1, review round 1, submission round 2 and review round 2)&lt;br /&gt;
# View topic stage: Impersonate each participant and check their topic’s current stage on student_task#list view.&lt;br /&gt;
# Submit reviews:  Participant with topic in review stage can review other participant’s work, ensuring that right rubrics are used for different topics.The reviewers can fill in the rubrics, save and submit their reviews successfully.&lt;br /&gt;
&lt;br /&gt;
In order to test using the UI, type the following commands to start the server:&lt;br /&gt;
 &lt;br /&gt;
 ''git clone https://github.com/517OSS/expertiza.git&lt;br /&gt;
 bundle install&lt;br /&gt;
 rake db:migrate&lt;br /&gt;
 rails s&lt;br /&gt;
''&lt;br /&gt;
Once the Expertiza website is up, test the following:&lt;br /&gt;
&lt;br /&gt;
==== Create an Assignment: ====&lt;br /&gt;
# Login as instructor 'instructor6'&lt;br /&gt;
# Click on 'Create public assignment'.&lt;br /&gt;
# Fill in the textboxes with assignment name, and assignment directory and other necessary details.&lt;br /&gt;
# Click the 'Create' button.&lt;br /&gt;
# Click on the link 'Rubrics'.&lt;br /&gt;
# Check the box 'Review rubric varies by round?'.&lt;br /&gt;
# Click on 'Save'.&lt;br /&gt;
# Click the link 'Topics'. &lt;br /&gt;
# Click on 'New topic'&lt;br /&gt;
# Fill in the Topic id, Topic name,Topic category and Number of slots.&lt;br /&gt;
# Click 'Create'.&lt;br /&gt;
After returning, the assignment created is listed under 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
==== Add Participants to Newly Created Assignment: ====&lt;br /&gt;
# Create a new assignment 'Assignment1665' using factories, with two review rounds and Staggered Deadline enabled. &lt;br /&gt;
# Added three participants to the newly created assignment using factories. &lt;br /&gt;
&lt;br /&gt;
==== Submit a topic: ====&lt;br /&gt;
# Create a stub to Impersonate the student 'student2064'.&lt;br /&gt;
# Click on 'Assignment1665' from the task list.&lt;br /&gt;
# Click on ‘Your Work’. &lt;br /&gt;
# Fill in the textbox with the submission link.&lt;br /&gt;
# Click on ‘upload link’&lt;br /&gt;
On clicking the 'upload' button, the submitted link is displayed on the page.&lt;br /&gt;
&lt;br /&gt;
==== Change Topic Deadline: ====&lt;br /&gt;
# Create an assignment 'Assignment1665' using factories, with two rounds of reviews, and the staggered deadline functionality enabled.&lt;br /&gt;
# Create different types of deadlines with names 'submission', 'review', 'metareview', 'drop_topic', 'signup' and 'team_formation'.&lt;br /&gt;
# Create two topics 'Topic_1' and 'Topic_2' under 'Assignment1665' using factories.&lt;br /&gt;
# Create assignment due dates for 'submission' and 'review' for two rounds using factories. &lt;br /&gt;
# Set the topic due dates to corresponding assignment due dates using factories.&lt;br /&gt;
# Change the different deadlines of one topic to different dates.  &lt;br /&gt;
On returning, click on 'Assignments' tab, and click on 'Edit' under 'Actions'. Click on the 'Topics' tab and then click the link 'Show start/due dates'. The instructor should be able to see the changed due dates for each of the topics&lt;br /&gt;
&lt;br /&gt;
==== View Topic Stages: ====&lt;br /&gt;
# Change the deadline date of topic assigned to 'student2064' to a past date and change deadline date of topic assigned to 'student2065' to a future date.&lt;br /&gt;
# Impersonate a participant 'student2064' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Review'&lt;br /&gt;
# Impersonate 'student2065' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Submission'&lt;br /&gt;
&lt;br /&gt;
==== Submit Review: ====&lt;br /&gt;
# Impersonate 'student2064' using a stub.&lt;br /&gt;
# Click on the link 'Assignment1665'.&lt;br /&gt;
# Click on the link 'Others' work'.&lt;br /&gt;
# Select a topic to be reviewed.&lt;br /&gt;
# Click on the link 'Begin'.&lt;br /&gt;
# The student can see 'Questionnare1' for the review round 1.&lt;br /&gt;
# Fill in the response checkboxes.&lt;br /&gt;
# Click the button 'Save Review'.&lt;br /&gt;
On returning, the reviewer should be able to see the 'View' option for the reviews done.&lt;br /&gt;
&lt;br /&gt;
== Running Tests From Terminal ==&lt;br /&gt;
The test file we added is 'staggered_deadline_spec.rb'. Once the server is running, open a new terminal, navigate the cloned 'expertiza' folder. The tests can be run in the terminal using the command: &lt;br /&gt;
&lt;br /&gt;
''rspec /spec/features/staggered_deadline_spec.rb&lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
Here is the result:&lt;br /&gt;
&lt;br /&gt;
[[File:Result.jpg‎ ]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Expertiza]&lt;br /&gt;
# [http://rspec.info/documentation/ RSpec Documentation]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Capybara_(software) Capybara]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Functional_testing Functional Testing]&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104525</id>
		<title>CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104525"/>
		<updated>2016-11-04T22:27:32Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: /* Running Tests From Terminal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is a web application which enables students to choose a topic in an assignment, submit assignments and peer review others' work. This application also allows the instructors to add assignments to a course, and create multiple topics with varying rubrics and different deadlines for an assignment.The Expertiza project is developed on Open Source Software (OSS) and is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
=== Rspec ===&lt;br /&gt;
[http://rspec.info Rspec] is a behavior-driven development tool for Ruby programmers which helps write human readable specifications that direct and validate the development of an application. RSpec is composed of multiple libraries which can be used together or independently with other testing tools like Capybara and Cucumber. There are four parts of RSpec. They are:&lt;br /&gt;
# rspec-core &lt;br /&gt;
# rspec-expectations&lt;br /&gt;
# rspec-mocks&lt;br /&gt;
# rspec-rails&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[https://github.com/jnicklas/capybara Capybara] is a web-based test automation software that simulates scenarios for user stories. It can automate web application testing for behavior-driven software development (BDD). It is a gem that can be used on top of a web-based driver. It offers a user-friendly domain specific language to describe a sequence of actions executed by the web driver. It is a part of the Cucumber testing framework.&lt;br /&gt;
&lt;br /&gt;
It is supported by the following web-based drivers:&lt;br /&gt;
* RackTest&lt;br /&gt;
* Selenium&lt;br /&gt;
* Capybara-webkit&lt;br /&gt;
&lt;br /&gt;
=== Functional Testing ===&lt;br /&gt;
[https://en.wikipedia.org/wiki/Functional_testing Functional testing] is a type of black-box testing used in quality assurance, Functional tests are done by feeding the inputs and checking the outputs giving least importance to the internal structure of the program. It describes what the system does. Functional testing verifies a program by checking it against the specification documents. There are different types of functional testing:&lt;br /&gt;
* Smoke testing&lt;br /&gt;
* Sanity testing&lt;br /&gt;
* Regression testing&lt;br /&gt;
* Usability testing&lt;br /&gt;
&lt;br /&gt;
== Project Description and Test Strategy==&lt;br /&gt;
Staggered deadline means having different deadlines for different topics under the same assignment. This is a relatively new feature of Expertiza. Deadline of different topics under the same assignment may need to be different for reasons like dependency of one topic on another. The aim of this project is to write RSpec tests to test the functionality of staggered deadline using Capybara. According to the instruction, we design 3 test cases:&lt;br /&gt;
&lt;br /&gt;
'''Initial state:''' Two students with different topics submit their work before the assignment's submission deadline in round 1.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 1:''' Change deadline of topic 1 to bring it into review stage in round 1, check if the student assigned with topic 1 can review others' work, check if the rubrics are right for round 1.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 2:''' Change the deadlines of both the topics to bring them into review stage in round 2, check if the students assigned with these topics can review each other's work, check if the rubrics are right for round 2.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 3:''' Change the deadline of both the topic to bring them into finish stage in round 2, check that the students assigned with these topics are unable to review each other.&lt;br /&gt;
&lt;br /&gt;
== Test Steps in UI==&lt;br /&gt;
Our test plan is divided into the following steps:&lt;br /&gt;
# Create an assignment: Create an assignment with topic with varying rubric by round feature.&lt;br /&gt;
# Add participants to newly created assignment. &lt;br /&gt;
# Submit a Topic: Impersonate each participant, choose a topic and submit something.&lt;br /&gt;
# Change topic Deadline: Change deadline of each topic and let each topic be in different stages (like submission round 1, review round 1, submission round 2 and review round 2)&lt;br /&gt;
# View topic stage: Impersonate each participant and check their topic’s current stage on student_task#list view.&lt;br /&gt;
# Submit reviews:  Participant with topic in review stage can review other participant’s work, ensuring that right rubrics are used for different topics.The reviewers can fill in the rubrics, save and submit their reviews successfully.&lt;br /&gt;
&lt;br /&gt;
In order to test using the UI, type the following commands to start the server:&lt;br /&gt;
 &lt;br /&gt;
 ''git clone https://github.com/517OSS/expertiza.git&lt;br /&gt;
 bundle install&lt;br /&gt;
 rake db:migrate&lt;br /&gt;
 rails s&lt;br /&gt;
''&lt;br /&gt;
Once the Expertiza website is up, test the following:&lt;br /&gt;
&lt;br /&gt;
==== Create an Assignment: ====&lt;br /&gt;
# Login as instructor 'instructor6'&lt;br /&gt;
# Click on 'Create public assignment'.&lt;br /&gt;
# Fill in the textboxes with assignment name, and assignment directory and other necessary details.&lt;br /&gt;
# Click the 'Create' button.&lt;br /&gt;
# Click on the link 'Rubrics'.&lt;br /&gt;
# Check the box 'Review rubric varies by round?'.&lt;br /&gt;
# Click on 'Save'.&lt;br /&gt;
# Click the link 'Topics'. &lt;br /&gt;
# Click on 'New topic'&lt;br /&gt;
# Fill in the Topic id, Topic name,Topic category and Number of slots.&lt;br /&gt;
# Click 'Create'.&lt;br /&gt;
After returning, the assignment created is listed under 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
==== Add Participants to Newly Created Assignment: ====&lt;br /&gt;
# Create a new assignment 'Assignment1665' using factories, with two review rounds and Staggered Deadline enabled. &lt;br /&gt;
# Added three participants to the newly created assignment using factories. &lt;br /&gt;
&lt;br /&gt;
==== Submit a topic: ====&lt;br /&gt;
# Create a stub to Impersonate the student 'student2064'.&lt;br /&gt;
# Click on 'Assignment1665' from the task list.&lt;br /&gt;
# Click on ‘Your Work’. &lt;br /&gt;
# Fill in the textbox with the submission link.&lt;br /&gt;
# Click on ‘upload link’&lt;br /&gt;
On clicking the 'upload' button, the submitted link is displayed on the page.&lt;br /&gt;
&lt;br /&gt;
==== Change Topic Deadline: ====&lt;br /&gt;
# Create an assignment 'Assignment1665' using factories, with two rounds of reviews, and the staggered deadline functionality enabled.&lt;br /&gt;
# Create different types of deadlines with names 'submission', 'review', 'metareview', 'drop_topic', 'signup' and 'team_formation'.&lt;br /&gt;
# Create two topics 'Topic_1' and 'Topic_2' under 'Assignment1665' using factories.&lt;br /&gt;
# Create assignment due dates for 'submission' and 'review' for two rounds using factories. &lt;br /&gt;
# Set the topic due dates to corresponding assignment due dates using factories.&lt;br /&gt;
# Change the different deadlines of one topic to different dates.  &lt;br /&gt;
On returning, click on 'Assignments' tab, and click on 'Edit' under 'Actions'. Click on the 'Topics' tab and then click the link 'Show start/due dates'. The instructor should be able to see the changed due dates for each of the topics&lt;br /&gt;
&lt;br /&gt;
==== View Topic Stages: ====&lt;br /&gt;
# Change the deadline date of topic assigned to 'student2064' to a past date and change deadline date of topic assigned to 'student2065' to a future date.&lt;br /&gt;
# Impersonate a participant 'student2064' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Review'&lt;br /&gt;
# Impersonate 'student2065' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Submission'&lt;br /&gt;
&lt;br /&gt;
==== Submit Review: ====&lt;br /&gt;
# Impersonate 'student2064' using a stub.&lt;br /&gt;
# Click on the link 'Assignment1665'.&lt;br /&gt;
# Click on the link 'Others' work'.&lt;br /&gt;
# Select a topic to be reviewed.&lt;br /&gt;
# Click on the link 'Begin'.&lt;br /&gt;
# The student can see 'Questionnare1' for the review round 1.&lt;br /&gt;
# Fill in the response checkboxes.&lt;br /&gt;
# Click the button 'Save Review'.&lt;br /&gt;
On returning, the reviewer should be able to see the 'View' option for the reviews done.&lt;br /&gt;
&lt;br /&gt;
== Running Tests From Terminal ==&lt;br /&gt;
The test file we added is 'staggered_deadline_spec.rb'. Once the server is running, open a new terminal, navigate the cloned 'expertiza' folder. The tests can be run in the terminal using the command: &lt;br /&gt;
&lt;br /&gt;
''rspec /spec/features/staggered_deadline_spec.rb''.&lt;br /&gt;
&lt;br /&gt;
Here is the result:&lt;br /&gt;
&lt;br /&gt;
[[File:Result.jpg‎ ]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Expertiza]&lt;br /&gt;
# [http://rspec.info/documentation/ RSpec Documentation]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Capybara_(software) Capybara]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Functional_testing Functional Testing]&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104524</id>
		<title>CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104524"/>
		<updated>2016-11-04T22:26:55Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: /* Running Tests From Terminal */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is a web application which enables students to choose a topic in an assignment, submit assignments and peer review others' work. This application also allows the instructors to add assignments to a course, and create multiple topics with varying rubrics and different deadlines for an assignment.The Expertiza project is developed on Open Source Software (OSS) and is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
=== Rspec ===&lt;br /&gt;
[http://rspec.info Rspec] is a behavior-driven development tool for Ruby programmers which helps write human readable specifications that direct and validate the development of an application. RSpec is composed of multiple libraries which can be used together or independently with other testing tools like Capybara and Cucumber. There are four parts of RSpec. They are:&lt;br /&gt;
# rspec-core &lt;br /&gt;
# rspec-expectations&lt;br /&gt;
# rspec-mocks&lt;br /&gt;
# rspec-rails&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[https://github.com/jnicklas/capybara Capybara] is a web-based test automation software that simulates scenarios for user stories. It can automate web application testing for behavior-driven software development (BDD). It is a gem that can be used on top of a web-based driver. It offers a user-friendly domain specific language to describe a sequence of actions executed by the web driver. It is a part of the Cucumber testing framework.&lt;br /&gt;
&lt;br /&gt;
It is supported by the following web-based drivers:&lt;br /&gt;
* RackTest&lt;br /&gt;
* Selenium&lt;br /&gt;
* Capybara-webkit&lt;br /&gt;
&lt;br /&gt;
=== Functional Testing ===&lt;br /&gt;
[https://en.wikipedia.org/wiki/Functional_testing Functional testing] is a type of black-box testing used in quality assurance, Functional tests are done by feeding the inputs and checking the outputs giving least importance to the internal structure of the program. It describes what the system does. Functional testing verifies a program by checking it against the specification documents. There are different types of functional testing:&lt;br /&gt;
* Smoke testing&lt;br /&gt;
* Sanity testing&lt;br /&gt;
* Regression testing&lt;br /&gt;
* Usability testing&lt;br /&gt;
&lt;br /&gt;
== Project Description and Test Strategy==&lt;br /&gt;
Staggered deadline means having different deadlines for different topics under the same assignment. This is a relatively new feature of Expertiza. Deadline of different topics under the same assignment may need to be different for reasons like dependency of one topic on another. The aim of this project is to write RSpec tests to test the functionality of staggered deadline using Capybara. According to the instruction, we design 3 test cases:&lt;br /&gt;
&lt;br /&gt;
'''Initial state:''' Two students with different topics submit their work before the assignment's submission deadline in round 1.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 1:''' Change deadline of topic 1 to bring it into review stage in round 1, check if the student assigned with topic 1 can review others' work, check if the rubrics are right for round 1.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 2:''' Change the deadlines of both the topics to bring them into review stage in round 2, check if the students assigned with these topics can review each other's work, check if the rubrics are right for round 2.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 3:''' Change the deadline of both the topic to bring them into finish stage in round 2, check that the students assigned with these topics are unable to review each other.&lt;br /&gt;
&lt;br /&gt;
== Test Steps in UI==&lt;br /&gt;
Our test plan is divided into the following steps:&lt;br /&gt;
# Create an assignment: Create an assignment with topic with varying rubric by round feature.&lt;br /&gt;
# Add participants to newly created assignment. &lt;br /&gt;
# Submit a Topic: Impersonate each participant, choose a topic and submit something.&lt;br /&gt;
# Change topic Deadline: Change deadline of each topic and let each topic be in different stages (like submission round 1, review round 1, submission round 2 and review round 2)&lt;br /&gt;
# View topic stage: Impersonate each participant and check their topic’s current stage on student_task#list view.&lt;br /&gt;
# Submit reviews:  Participant with topic in review stage can review other participant’s work, ensuring that right rubrics are used for different topics.The reviewers can fill in the rubrics, save and submit their reviews successfully.&lt;br /&gt;
&lt;br /&gt;
In order to test using the UI, type the following commands to start the server:&lt;br /&gt;
 &lt;br /&gt;
 ''git clone https://github.com/517OSS/expertiza.git&lt;br /&gt;
 bundle install&lt;br /&gt;
 rake db:migrate&lt;br /&gt;
 rails s&lt;br /&gt;
''&lt;br /&gt;
Once the Expertiza website is up, test the following:&lt;br /&gt;
&lt;br /&gt;
==== Create an Assignment: ====&lt;br /&gt;
# Login as instructor 'instructor6'&lt;br /&gt;
# Click on 'Create public assignment'.&lt;br /&gt;
# Fill in the textboxes with assignment name, and assignment directory and other necessary details.&lt;br /&gt;
# Click the 'Create' button.&lt;br /&gt;
# Click on the link 'Rubrics'.&lt;br /&gt;
# Check the box 'Review rubric varies by round?'.&lt;br /&gt;
# Click on 'Save'.&lt;br /&gt;
# Click the link 'Topics'. &lt;br /&gt;
# Click on 'New topic'&lt;br /&gt;
# Fill in the Topic id, Topic name,Topic category and Number of slots.&lt;br /&gt;
# Click 'Create'.&lt;br /&gt;
After returning, the assignment created is listed under 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
==== Add Participants to Newly Created Assignment: ====&lt;br /&gt;
# Create a new assignment 'Assignment1665' using factories, with two review rounds and Staggered Deadline enabled. &lt;br /&gt;
# Added three participants to the newly created assignment using factories. &lt;br /&gt;
&lt;br /&gt;
==== Submit a topic: ====&lt;br /&gt;
# Create a stub to Impersonate the student 'student2064'.&lt;br /&gt;
# Click on 'Assignment1665' from the task list.&lt;br /&gt;
# Click on ‘Your Work’. &lt;br /&gt;
# Fill in the textbox with the submission link.&lt;br /&gt;
# Click on ‘upload link’&lt;br /&gt;
On clicking the 'upload' button, the submitted link is displayed on the page.&lt;br /&gt;
&lt;br /&gt;
==== Change Topic Deadline: ====&lt;br /&gt;
# Create an assignment 'Assignment1665' using factories, with two rounds of reviews, and the staggered deadline functionality enabled.&lt;br /&gt;
# Create different types of deadlines with names 'submission', 'review', 'metareview', 'drop_topic', 'signup' and 'team_formation'.&lt;br /&gt;
# Create two topics 'Topic_1' and 'Topic_2' under 'Assignment1665' using factories.&lt;br /&gt;
# Create assignment due dates for 'submission' and 'review' for two rounds using factories. &lt;br /&gt;
# Set the topic due dates to corresponding assignment due dates using factories.&lt;br /&gt;
# Change the different deadlines of one topic to different dates.  &lt;br /&gt;
On returning, click on 'Assignments' tab, and click on 'Edit' under 'Actions'. Click on the 'Topics' tab and then click the link 'Show start/due dates'. The instructor should be able to see the changed due dates for each of the topics&lt;br /&gt;
&lt;br /&gt;
==== View Topic Stages: ====&lt;br /&gt;
# Change the deadline date of topic assigned to 'student2064' to a past date and change deadline date of topic assigned to 'student2065' to a future date.&lt;br /&gt;
# Impersonate a participant 'student2064' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Review'&lt;br /&gt;
# Impersonate 'student2065' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Submission'&lt;br /&gt;
&lt;br /&gt;
==== Submit Review: ====&lt;br /&gt;
# Impersonate 'student2064' using a stub.&lt;br /&gt;
# Click on the link 'Assignment1665'.&lt;br /&gt;
# Click on the link 'Others' work'.&lt;br /&gt;
# Select a topic to be reviewed.&lt;br /&gt;
# Click on the link 'Begin'.&lt;br /&gt;
# The student can see 'Questionnare1' for the review round 1.&lt;br /&gt;
# Fill in the response checkboxes.&lt;br /&gt;
# Click the button 'Save Review'.&lt;br /&gt;
On returning, the reviewer should be able to see the 'View' option for the reviews done.&lt;br /&gt;
&lt;br /&gt;
== Running Tests From Terminal ==&lt;br /&gt;
The test file we added is 'staggered_deadline_spec.rb'. Once the server is running, open a new terminal, navigate the cloned 'expertiza' folder. The tests can be run in the terminal using the command: ''rspec /spec/features/staggered_deadline_spec.rb''.&lt;br /&gt;
Here is the result:&lt;br /&gt;
&lt;br /&gt;
[[File:Result.jpg‎ ]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Expertiza]&lt;br /&gt;
# [http://rspec.info/documentation/ RSpec Documentation]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Capybara_(software) Capybara]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Functional_testing Functional Testing]&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104522</id>
		<title>CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104522"/>
		<updated>2016-11-04T22:24:05Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: /* Test Steps in UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is a web application which enables students to choose a topic in an assignment, submit assignments and peer review others' work. This application also allows the instructors to add assignments to a course, and create multiple topics with varying rubrics and different deadlines for an assignment.The Expertiza project is developed on Open Source Software (OSS) and is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
=== Rspec ===&lt;br /&gt;
[http://rspec.info Rspec] is a behavior-driven development tool for Ruby programmers which helps write human readable specifications that direct and validate the development of an application. RSpec is composed of multiple libraries which can be used together or independently with other testing tools like Capybara and Cucumber. There are four parts of RSpec. They are:&lt;br /&gt;
# rspec-core &lt;br /&gt;
# rspec-expectations&lt;br /&gt;
# rspec-mocks&lt;br /&gt;
# rspec-rails&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[https://github.com/jnicklas/capybara Capybara] is a web-based test automation software that simulates scenarios for user stories. It can automate web application testing for behavior-driven software development (BDD). It is a gem that can be used on top of a web-based driver. It offers a user-friendly domain specific language to describe a sequence of actions executed by the web driver. It is a part of the Cucumber testing framework.&lt;br /&gt;
&lt;br /&gt;
It is supported by the following web-based drivers:&lt;br /&gt;
* RackTest&lt;br /&gt;
* Selenium&lt;br /&gt;
* Capybara-webkit&lt;br /&gt;
&lt;br /&gt;
=== Functional Testing ===&lt;br /&gt;
[https://en.wikipedia.org/wiki/Functional_testing Functional testing] is a type of black-box testing used in quality assurance, Functional tests are done by feeding the inputs and checking the outputs giving least importance to the internal structure of the program. It describes what the system does. Functional testing verifies a program by checking it against the specification documents. There are different types of functional testing:&lt;br /&gt;
* Smoke testing&lt;br /&gt;
* Sanity testing&lt;br /&gt;
* Regression testing&lt;br /&gt;
* Usability testing&lt;br /&gt;
&lt;br /&gt;
== Project Description and Test Strategy==&lt;br /&gt;
Staggered deadline means having different deadlines for different topics under the same assignment. This is a relatively new feature of Expertiza. Deadline of different topics under the same assignment may need to be different for reasons like dependency of one topic on another. The aim of this project is to write RSpec tests to test the functionality of staggered deadline using Capybara. According to the instruction, we design 3 test cases:&lt;br /&gt;
&lt;br /&gt;
'''Initial state:''' Two students with different topics submit their work before the assignment's submission deadline in round 1.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 1:''' Change deadline of topic 1 to bring it into review stage in round 1, check if the student assigned with topic 1 can review others' work, check if the rubrics are right for round 1.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 2:''' Change the deadlines of both the topics to bring them into review stage in round 2, check if the students assigned with these topics can review each other's work, check if the rubrics are right for round 2.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 3:''' Change the deadline of both the topic to bring them into finish stage in round 2, check that the students assigned with these topics are unable to review each other.&lt;br /&gt;
&lt;br /&gt;
== Test Steps in UI==&lt;br /&gt;
Our test plan is divided into the following steps:&lt;br /&gt;
# Create an assignment: Create an assignment with topic with varying rubric by round feature.&lt;br /&gt;
# Add participants to newly created assignment. &lt;br /&gt;
# Submit a Topic: Impersonate each participant, choose a topic and submit something.&lt;br /&gt;
# Change topic Deadline: Change deadline of each topic and let each topic be in different stages (like submission round 1, review round 1, submission round 2 and review round 2)&lt;br /&gt;
# View topic stage: Impersonate each participant and check their topic’s current stage on student_task#list view.&lt;br /&gt;
# Submit reviews:  Participant with topic in review stage can review other participant’s work, ensuring that right rubrics are used for different topics.The reviewers can fill in the rubrics, save and submit their reviews successfully.&lt;br /&gt;
&lt;br /&gt;
In order to test using the UI, type the following commands to start the server:&lt;br /&gt;
 &lt;br /&gt;
 ''git clone https://github.com/517OSS/expertiza.git&lt;br /&gt;
 bundle install&lt;br /&gt;
 rake db:migrate&lt;br /&gt;
 rails s&lt;br /&gt;
''&lt;br /&gt;
Once the Expertiza website is up, test the following:&lt;br /&gt;
&lt;br /&gt;
==== Create an Assignment: ====&lt;br /&gt;
# Login as instructor 'instructor6'&lt;br /&gt;
# Click on 'Create public assignment'.&lt;br /&gt;
# Fill in the textboxes with assignment name, and assignment directory and other necessary details.&lt;br /&gt;
# Click the 'Create' button.&lt;br /&gt;
# Click on the link 'Rubrics'.&lt;br /&gt;
# Check the box 'Review rubric varies by round?'.&lt;br /&gt;
# Click on 'Save'.&lt;br /&gt;
# Click the link 'Topics'. &lt;br /&gt;
# Click on 'New topic'&lt;br /&gt;
# Fill in the Topic id, Topic name,Topic category and Number of slots.&lt;br /&gt;
# Click 'Create'.&lt;br /&gt;
After returning, the assignment created is listed under 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
==== Add Participants to Newly Created Assignment: ====&lt;br /&gt;
# Create a new assignment 'Assignment1665' using factories, with two review rounds and Staggered Deadline enabled. &lt;br /&gt;
# Added three participants to the newly created assignment using factories. &lt;br /&gt;
&lt;br /&gt;
==== Submit a topic: ====&lt;br /&gt;
# Create a stub to Impersonate the student 'student2064'.&lt;br /&gt;
# Click on 'Assignment1665' from the task list.&lt;br /&gt;
# Click on ‘Your Work’. &lt;br /&gt;
# Fill in the textbox with the submission link.&lt;br /&gt;
# Click on ‘upload link’&lt;br /&gt;
On clicking the 'upload' button, the submitted link is displayed on the page.&lt;br /&gt;
&lt;br /&gt;
==== Change Topic Deadline: ====&lt;br /&gt;
# Create an assignment 'Assignment1665' using factories, with two rounds of reviews, and the staggered deadline functionality enabled.&lt;br /&gt;
# Create different types of deadlines with names 'submission', 'review', 'metareview', 'drop_topic', 'signup' and 'team_formation'.&lt;br /&gt;
# Create two topics 'Topic_1' and 'Topic_2' under 'Assignment1665' using factories.&lt;br /&gt;
# Create assignment due dates for 'submission' and 'review' for two rounds using factories. &lt;br /&gt;
# Set the topic due dates to corresponding assignment due dates using factories.&lt;br /&gt;
# Change the different deadlines of one topic to different dates.  &lt;br /&gt;
On returning, click on 'Assignments' tab, and click on 'Edit' under 'Actions'. Click on the 'Topics' tab and then click the link 'Show start/due dates'. The instructor should be able to see the changed due dates for each of the topics&lt;br /&gt;
&lt;br /&gt;
==== View Topic Stages: ====&lt;br /&gt;
# Change the deadline date of topic assigned to 'student2064' to a past date and change deadline date of topic assigned to 'student2065' to a future date.&lt;br /&gt;
# Impersonate a participant 'student2064' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Review'&lt;br /&gt;
# Impersonate 'student2065' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Submission'&lt;br /&gt;
&lt;br /&gt;
==== Submit Review: ====&lt;br /&gt;
# Impersonate 'student2064' using a stub.&lt;br /&gt;
# Click on the link 'Assignment1665'.&lt;br /&gt;
# Click on the link 'Others' work'.&lt;br /&gt;
# Select a topic to be reviewed.&lt;br /&gt;
# Click on the link 'Begin'.&lt;br /&gt;
# The student can see 'Questionnare1' for the review round 1.&lt;br /&gt;
# Fill in the response checkboxes.&lt;br /&gt;
# Click the button 'Save Review'.&lt;br /&gt;
On returning, the reviewer should be able to see the 'View' option for the reviews done.&lt;br /&gt;
&lt;br /&gt;
== Running Tests From Terminal ==&lt;br /&gt;
The test file we added is 'staggered_deadline_spec.rb'. The tests can be run in the terminal using the command: 'rspec /spec/features/staggered_deadline_spec.rb'.&lt;br /&gt;
Here is the result:&lt;br /&gt;
&lt;br /&gt;
[[File:Result.jpg‎ ]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Expertiza]&lt;br /&gt;
# [http://rspec.info/documentation/ RSpec Documentation]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Capybara_(software) Capybara]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Functional_testing Functional Testing]&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104521</id>
		<title>CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104521"/>
		<updated>2016-11-04T22:23:03Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: /* Test Steps in UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is a web application which enables students to choose a topic in an assignment, submit assignments and peer review others' work. This application also allows the instructors to add assignments to a course, and create multiple topics with varying rubrics and different deadlines for an assignment.The Expertiza project is developed on Open Source Software (OSS) and is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
=== Rspec ===&lt;br /&gt;
[http://rspec.info Rspec] is a behavior-driven development tool for Ruby programmers which helps write human readable specifications that direct and validate the development of an application. RSpec is composed of multiple libraries which can be used together or independently with other testing tools like Capybara and Cucumber. There are four parts of RSpec. They are:&lt;br /&gt;
# rspec-core &lt;br /&gt;
# rspec-expectations&lt;br /&gt;
# rspec-mocks&lt;br /&gt;
# rspec-rails&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[https://github.com/jnicklas/capybara Capybara] is a web-based test automation software that simulates scenarios for user stories. It can automate web application testing for behavior-driven software development (BDD). It is a gem that can be used on top of a web-based driver. It offers a user-friendly domain specific language to describe a sequence of actions executed by the web driver. It is a part of the Cucumber testing framework.&lt;br /&gt;
&lt;br /&gt;
It is supported by the following web-based drivers:&lt;br /&gt;
* RackTest&lt;br /&gt;
* Selenium&lt;br /&gt;
* Capybara-webkit&lt;br /&gt;
&lt;br /&gt;
=== Functional Testing ===&lt;br /&gt;
[https://en.wikipedia.org/wiki/Functional_testing Functional testing] is a type of black-box testing used in quality assurance, Functional tests are done by feeding the inputs and checking the outputs giving least importance to the internal structure of the program. It describes what the system does. Functional testing verifies a program by checking it against the specification documents. There are different types of functional testing:&lt;br /&gt;
* Smoke testing&lt;br /&gt;
* Sanity testing&lt;br /&gt;
* Regression testing&lt;br /&gt;
* Usability testing&lt;br /&gt;
&lt;br /&gt;
== Project Description and Test Strategy==&lt;br /&gt;
Staggered deadline means having different deadlines for different topics under the same assignment. This is a relatively new feature of Expertiza. Deadline of different topics under the same assignment may need to be different for reasons like dependency of one topic on another. The aim of this project is to write RSpec tests to test the functionality of staggered deadline using Capybara. According to the instruction, we design 3 test cases:&lt;br /&gt;
&lt;br /&gt;
'''Initial state:''' Two students with different topics submit their work before the assignment's submission deadline in round 1.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 1:''' Change deadline of topic 1 to bring it into review stage in round 1, check if the student assigned with topic 1 can review others' work, check if the rubrics are right for round 1.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 2:''' Change the deadlines of both the topics to bring them into review stage in round 2, check if the students assigned with these topics can review each other's work, check if the rubrics are right for round 2.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 3:''' Change the deadline of both the topic to bring them into finish stage in round 2, check that the students assigned with these topics are unable to review each other.&lt;br /&gt;
&lt;br /&gt;
== Test Steps in UI==&lt;br /&gt;
Our test plan is divided into the following steps:&lt;br /&gt;
# Create an assignment: Create an assignment with topic with varying rubric by round feature.&lt;br /&gt;
# Add participants to newly created assignment. &lt;br /&gt;
# Submit a Topic: Impersonate each participant, choose a topic and submit something.&lt;br /&gt;
# Change topic Deadline: Change deadline of each topic and let each topic be in different stages (like submission round 1, review round 1, submission round 2 and review round 2)&lt;br /&gt;
# View topic stage: Impersonate each participant and check their topic’s current stage on student_task#list view.&lt;br /&gt;
# Submit reviews:  Participant with topic in review stage can review other participant’s work, ensuring that right rubrics are used for different topics.The reviewers can fill in the rubrics, save and submit their reviews successfully.&lt;br /&gt;
&lt;br /&gt;
In order to test using the UI, type the following commands:&lt;br /&gt;
 &lt;br /&gt;
 ''git clone https://github.com/517OSS/expertiza.git&lt;br /&gt;
 bundle install&lt;br /&gt;
 rake db:migrate&lt;br /&gt;
 rails s&lt;br /&gt;
''&lt;br /&gt;
 Once the Expertiza website is up, test the following:&lt;br /&gt;
&lt;br /&gt;
==== Create an Assignment: ====&lt;br /&gt;
# Login as instructor 'instructor6'&lt;br /&gt;
# Click on 'Create public assignment'.&lt;br /&gt;
# Fill in the textboxes with assignment name, and assignment directory and other necessary details.&lt;br /&gt;
# Click the 'Create' button.&lt;br /&gt;
# Click on the link 'Rubrics'.&lt;br /&gt;
# Check the box 'Review rubric varies by round?'.&lt;br /&gt;
# Click on 'Save'.&lt;br /&gt;
# Click the link 'Topics'. &lt;br /&gt;
# Click on 'New topic'&lt;br /&gt;
# Fill in the Topic id, Topic name,Topic category and Number of slots.&lt;br /&gt;
# Click 'Create'.&lt;br /&gt;
After returning, the assignment created is listed under 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
==== Add Participants to Newly Created Assignment: ====&lt;br /&gt;
# Create a new assignment 'Assignment1665' using factories, with two review rounds and Staggered Deadline enabled. &lt;br /&gt;
# Added three participants to the newly created assignment using factories. &lt;br /&gt;
&lt;br /&gt;
==== Submit a topic: ====&lt;br /&gt;
# Create a stub to Impersonate the student 'student2064'.&lt;br /&gt;
# Click on 'Assignment1665' from the task list.&lt;br /&gt;
# Click on ‘Your Work’. &lt;br /&gt;
# Fill in the textbox with the submission link.&lt;br /&gt;
# Click on ‘upload link’&lt;br /&gt;
On clicking the 'upload' button, the submitted link is displayed on the page.&lt;br /&gt;
&lt;br /&gt;
==== Change Topic Deadline: ====&lt;br /&gt;
# Create an assignment 'Assignment1665' using factories, with two rounds of reviews, and the staggered deadline functionality enabled.&lt;br /&gt;
# Create different types of deadlines with names 'submission', 'review', 'metareview', 'drop_topic', 'signup' and 'team_formation'.&lt;br /&gt;
# Create two topics 'Topic_1' and 'Topic_2' under 'Assignment1665' using factories.&lt;br /&gt;
# Create assignment due dates for 'submission' and 'review' for two rounds using factories. &lt;br /&gt;
# Set the topic due dates to corresponding assignment due dates using factories.&lt;br /&gt;
# Change the different deadlines of one topic to different dates.  &lt;br /&gt;
On returning, click on 'Assignments' tab, and click on 'Edit' under 'Actions'. Click on the 'Topics' tab and then click the link 'Show start/due dates'. The instructor should be able to see the changed due dates for each of the topics&lt;br /&gt;
&lt;br /&gt;
==== View Topic Stages: ====&lt;br /&gt;
# Change the deadline date of topic assigned to 'student2064' to a past date and change deadline date of topic assigned to 'student2065' to a future date.&lt;br /&gt;
# Impersonate a participant 'student2064' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Review'&lt;br /&gt;
# Impersonate 'student2065' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Submission'&lt;br /&gt;
&lt;br /&gt;
==== Submit Review: ====&lt;br /&gt;
# Impersonate 'student2064' using a stub.&lt;br /&gt;
# Click on the link 'Assignment1665'.&lt;br /&gt;
# Click on the link 'Others' work'.&lt;br /&gt;
# Select a topic to be reviewed.&lt;br /&gt;
# Click on the link 'Begin'.&lt;br /&gt;
# The student can see 'Questionnare1' for the review round 1.&lt;br /&gt;
# Fill in the response checkboxes.&lt;br /&gt;
# Click the button 'Save Review'.&lt;br /&gt;
On returning, the reviewer should be able to see the 'View' option for the reviews done.&lt;br /&gt;
&lt;br /&gt;
== Running Tests From Terminal ==&lt;br /&gt;
The test file we added is 'staggered_deadline_spec.rb'. The tests can be run in the terminal using the command: 'rspec /spec/features/staggered_deadline_spec.rb'.&lt;br /&gt;
Here is the result:&lt;br /&gt;
&lt;br /&gt;
[[File:Result.jpg‎ ]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Expertiza]&lt;br /&gt;
# [http://rspec.info/documentation/ RSpec Documentation]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Capybara_(software) Capybara]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Functional_testing Functional Testing]&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104520</id>
		<title>CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104520"/>
		<updated>2016-11-04T22:21:47Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: /* Test Steps in UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is a web application which enables students to choose a topic in an assignment, submit assignments and peer review others' work. This application also allows the instructors to add assignments to a course, and create multiple topics with varying rubrics and different deadlines for an assignment.The Expertiza project is developed on Open Source Software (OSS) and is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
=== Rspec ===&lt;br /&gt;
[http://rspec.info Rspec] is a behavior-driven development tool for Ruby programmers which helps write human readable specifications that direct and validate the development of an application. RSpec is composed of multiple libraries which can be used together or independently with other testing tools like Capybara and Cucumber. There are four parts of RSpec. They are:&lt;br /&gt;
# rspec-core &lt;br /&gt;
# rspec-expectations&lt;br /&gt;
# rspec-mocks&lt;br /&gt;
# rspec-rails&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[https://github.com/jnicklas/capybara Capybara] is a web-based test automation software that simulates scenarios for user stories. It can automate web application testing for behavior-driven software development (BDD). It is a gem that can be used on top of a web-based driver. It offers a user-friendly domain specific language to describe a sequence of actions executed by the web driver. It is a part of the Cucumber testing framework.&lt;br /&gt;
&lt;br /&gt;
It is supported by the following web-based drivers:&lt;br /&gt;
* RackTest&lt;br /&gt;
* Selenium&lt;br /&gt;
* Capybara-webkit&lt;br /&gt;
&lt;br /&gt;
=== Functional Testing ===&lt;br /&gt;
[https://en.wikipedia.org/wiki/Functional_testing Functional testing] is a type of black-box testing used in quality assurance, Functional tests are done by feeding the inputs and checking the outputs giving least importance to the internal structure of the program. It describes what the system does. Functional testing verifies a program by checking it against the specification documents. There are different types of functional testing:&lt;br /&gt;
* Smoke testing&lt;br /&gt;
* Sanity testing&lt;br /&gt;
* Regression testing&lt;br /&gt;
* Usability testing&lt;br /&gt;
&lt;br /&gt;
== Project Description and Test Strategy==&lt;br /&gt;
Staggered deadline means having different deadlines for different topics under the same assignment. This is a relatively new feature of Expertiza. Deadline of different topics under the same assignment may need to be different for reasons like dependency of one topic on another. The aim of this project is to write RSpec tests to test the functionality of staggered deadline using Capybara. According to the instruction, we design 3 test cases:&lt;br /&gt;
&lt;br /&gt;
'''Initial state:''' Two students with different topics submit their work before the assignment's submission deadline in round 1.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 1:''' Change deadline of topic 1 to bring it into review stage in round 1, check if the student assigned with topic 1 can review others' work, check if the rubrics are right for round 1.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 2:''' Change the deadlines of both the topics to bring them into review stage in round 2, check if the students assigned with these topics can review each other's work, check if the rubrics are right for round 2.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 3:''' Change the deadline of both the topic to bring them into finish stage in round 2, check that the students assigned with these topics are unable to review each other.&lt;br /&gt;
&lt;br /&gt;
== Test Steps in UI==&lt;br /&gt;
Our test plan is divided into the following steps:&lt;br /&gt;
# Create an assignment: Create an assignment with topic with varying rubric by round feature.&lt;br /&gt;
# Add participants to newly created assignment. &lt;br /&gt;
# Submit a Topic: Impersonate each participant, choose a topic and submit something.&lt;br /&gt;
# Change topic Deadline: Change deadline of each topic and let each topic be in different stages (like submission round 1, review round 1, submission round 2 and review round 2)&lt;br /&gt;
# View topic stage: Impersonate each participant and check their topic’s current stage on student_task#list view.&lt;br /&gt;
# Submit reviews:  Participant with topic in review stage can review other participant’s work, ensuring that right rubrics are used for different topics.The reviewers can fill in the rubrics, save and submit their reviews successfully.&lt;br /&gt;
&lt;br /&gt;
#In order to test using the UI, clone our GitHub repository&lt;br /&gt;
 &lt;br /&gt;
# git clone https://github.com/517OSS/expertiza.git&lt;br /&gt;
# bundle install&lt;br /&gt;
# rake db:migrate&lt;br /&gt;
# rails s&lt;br /&gt;
&lt;br /&gt;
# Once the Expertiza website is up, test the following:&lt;br /&gt;
&lt;br /&gt;
==== Create an Assignment: ====&lt;br /&gt;
# Login as instructor 'instructor6'&lt;br /&gt;
# Click on 'Create public assignment'.&lt;br /&gt;
# Fill in the textboxes with assignment name, and assignment directory and other necessary details.&lt;br /&gt;
# Click the 'Create' button.&lt;br /&gt;
# Click on the link 'Rubrics'.&lt;br /&gt;
# Check the box 'Review rubric varies by round?'.&lt;br /&gt;
# Click on 'Save'.&lt;br /&gt;
# Click the link 'Topics'. &lt;br /&gt;
# Click on 'New topic'&lt;br /&gt;
# Fill in the Topic id, Topic name,Topic category and Number of slots.&lt;br /&gt;
# Click 'Create'.&lt;br /&gt;
After returning, the assignment created is listed under 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
==== Add Participants to Newly Created Assignment: ====&lt;br /&gt;
# Create a new assignment 'Assignment1665' using factories, with two review rounds and Staggered Deadline enabled. &lt;br /&gt;
# Added three participants to the newly created assignment using factories. &lt;br /&gt;
&lt;br /&gt;
==== Submit a topic: ====&lt;br /&gt;
# Create a stub to Impersonate the student 'student2064'.&lt;br /&gt;
# Click on 'Assignment1665' from the task list.&lt;br /&gt;
# Click on ‘Your Work’. &lt;br /&gt;
# Fill in the textbox with the submission link.&lt;br /&gt;
# Click on ‘upload link’&lt;br /&gt;
On clicking the 'upload' button, the submitted link is displayed on the page.&lt;br /&gt;
&lt;br /&gt;
==== Change Topic Deadline: ====&lt;br /&gt;
# Create an assignment 'Assignment1665' using factories, with two rounds of reviews, and the staggered deadline functionality enabled.&lt;br /&gt;
# Create different types of deadlines with names 'submission', 'review', 'metareview', 'drop_topic', 'signup' and 'team_formation'.&lt;br /&gt;
# Create two topics 'Topic_1' and 'Topic_2' under 'Assignment1665' using factories.&lt;br /&gt;
# Create assignment due dates for 'submission' and 'review' for two rounds using factories. &lt;br /&gt;
# Set the topic due dates to corresponding assignment due dates using factories.&lt;br /&gt;
# Change the different deadlines of one topic to different dates.  &lt;br /&gt;
On returning, click on 'Assignments' tab, and click on 'Edit' under 'Actions'. Click on the 'Topics' tab and then click the link 'Show start/due dates'. The instructor should be able to see the changed due dates for each of the topics&lt;br /&gt;
&lt;br /&gt;
==== View Topic Stages: ====&lt;br /&gt;
# Change the deadline date of topic assigned to 'student2064' to a past date and change deadline date of topic assigned to 'student2065' to a future date.&lt;br /&gt;
# Impersonate a participant 'student2064' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Review'&lt;br /&gt;
# Impersonate 'student2065' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Submission'&lt;br /&gt;
&lt;br /&gt;
==== Submit Review: ====&lt;br /&gt;
# Impersonate 'student2064' using a stub.&lt;br /&gt;
# Click on the link 'Assignment1665'.&lt;br /&gt;
# Click on the link 'Others' work'.&lt;br /&gt;
# Select a topic to be reviewed.&lt;br /&gt;
# Click on the link 'Begin'.&lt;br /&gt;
# The student can see 'Questionnare1' for the review round 1.&lt;br /&gt;
# Fill in the response checkboxes.&lt;br /&gt;
# Click the button 'Save Review'.&lt;br /&gt;
On returning, the reviewer should be able to see the 'View' option for the reviews done.&lt;br /&gt;
&lt;br /&gt;
== Running Tests From Terminal ==&lt;br /&gt;
The test file we added is 'staggered_deadline_spec.rb'. The tests can be run in the terminal using the command: 'rspec /spec/features/staggered_deadline_spec.rb'.&lt;br /&gt;
Here is the result:&lt;br /&gt;
&lt;br /&gt;
[[File:Result.jpg‎ ]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Expertiza]&lt;br /&gt;
# [http://rspec.info/documentation/ RSpec Documentation]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Capybara_(software) Capybara]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Functional_testing Functional Testing]&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104327</id>
		<title>CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104327"/>
		<updated>2016-11-04T04:01:28Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: /* Test from UI */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is a web application which enables students to choose a topic in an assignment, submit assignments and peer review others' work. This application also allows the instructors to add assignments to a course, and create multiple topics with varying rubrics and different deadlines for an assignment.The Expertiza project is developed on Open Source Software (OSS) and is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
=== Rspec ===&lt;br /&gt;
[http://rspec.info Rspec] is a behavior-driven development tool for Ruby programmers which helps write human readable specifications that direct and validate the development of an application. RSpec is composed of multiple libraries which can be used together or independently with other testing tools like Capybara and Cucumber. There are four parts of RSpec. They are:&lt;br /&gt;
# rspec-core &lt;br /&gt;
# rspec-expectations&lt;br /&gt;
# rspec-mocks&lt;br /&gt;
# rspec-rails&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[https://github.com/jnicklas/capybara Capybara] is a web-based test automation software that simulates scenarios for user stories. It can automate web application testing for behavior-driven software development (BDD). It is a gem that can be used on top of a web-based driver. It offers a user-friendly domain specific language to describe a sequence of actions executed by the web driver. It is a part of the Cucumber testing framework.&lt;br /&gt;
&lt;br /&gt;
It is supported by the following web-based drivers:&lt;br /&gt;
* RackTest&lt;br /&gt;
* Selenium&lt;br /&gt;
* Capybara-webkit&lt;br /&gt;
&lt;br /&gt;
=== Functional Testing ===&lt;br /&gt;
[https://en.wikipedia.org/wiki/Functional_testing Functional testing] is a type of black-box testing used in quality assurance, Functional tests are done by feeding the inputs and checking the outputs giving least importance to the internal structure of the program. It describes what the system does. Functional testing verifies a program by checking it against the specification documents. There are different types of functional testing:&lt;br /&gt;
* Smoke testing&lt;br /&gt;
* Sanity testing&lt;br /&gt;
* Regression testing&lt;br /&gt;
* Usability testing&lt;br /&gt;
&lt;br /&gt;
== Project Description and Test Strategy==&lt;br /&gt;
Staggered deadline means having different deadlines for different topics under the same assignment. This is a relatively new feature of Expertiza. Deadline of different topics under the same assignment may need to be different for reasons like dependency of one topic on another. The aim of this project is to write RSpec tests to test the functionality of staggered deadline using Capybara. According to the instruction, we design 3 test cases:&lt;br /&gt;
&lt;br /&gt;
'''Initial state:''' Two students with different topics submit their work before the assignment's submission deadline in round 1.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 1:''' Change deadline of topic 1 to bring it into review stage in round 1, check if the student assigned with topic 1 can review others' work, check if the rubrics are right for round 1.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 2:''' Change the deadlines of both the topics to bring them into review stage in round 2, check if the students assigned with these topics can review each other's work, check if the rubrics are right for round 2.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 3:''' Change the deadline of both the topic to bring them into finish stage in round 2, check that the students assigned with these topics are unable to review each other.&lt;br /&gt;
&lt;br /&gt;
== Test Steps in UI==&lt;br /&gt;
Our test plan is divided into the following steps:&lt;br /&gt;
# Create an assignment: Create an assignment with topic with varying rubric by round feature.&lt;br /&gt;
# Add participants to newly created assignment. &lt;br /&gt;
# Submit a Topic: Impersonate each participant, choose a topic and submit something.&lt;br /&gt;
# Change topic Deadline: Change deadline of each topic and let each topic be in different stages (like submission round 1, review round 1, submission round 2 and review round 2)&lt;br /&gt;
# View topic stage: Impersonate each participant and check their topic’s current stage on student_task#list view.&lt;br /&gt;
# Submit reviews:  Participant with topic in review stage can review other participant’s work, ensuring that right rubrics are used for different topics.The reviewers can fill in the rubrics, save and submit their reviews successfully. &lt;br /&gt;
&lt;br /&gt;
==== Create an Assignment: ====&lt;br /&gt;
# Login as instructor 'instructor6'&lt;br /&gt;
# Click on 'Create public assignment'.&lt;br /&gt;
# Fill in the textboxes with assignment name, and assignment directory and other necessary details.&lt;br /&gt;
# Click the 'Create' button.&lt;br /&gt;
# Click on the link 'Rubrics'.&lt;br /&gt;
# Check the box 'Review rubric varies by round?'.&lt;br /&gt;
# Click on 'Save'.&lt;br /&gt;
# Click the link 'Topics'. &lt;br /&gt;
# Click on 'New topic'&lt;br /&gt;
# Fill in the Topic id, Topic name,Topic category and Number of slots.&lt;br /&gt;
# Click 'Create'.&lt;br /&gt;
After returning, the assignment created is listed under 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
==== Add Participants to Newly Created Assignment: ====&lt;br /&gt;
# Create a new assignment 'Assignment1665' using factories, with two review rounds and Staggered Deadline enabled. &lt;br /&gt;
# Added three participants to the newly created assignment using factories. &lt;br /&gt;
&lt;br /&gt;
==== Submit a topic: ====&lt;br /&gt;
# Create a stub to Impersonate the student 'student2064'.&lt;br /&gt;
# Click on 'Assignment1665' from the task list.&lt;br /&gt;
# Click on ‘Your Work’. &lt;br /&gt;
# Fill in the textbox with the submission link.&lt;br /&gt;
# Click on ‘upload link’&lt;br /&gt;
On clicking the 'upload' button, the submitted link is displayed on the page.&lt;br /&gt;
&lt;br /&gt;
==== Change Topic Deadline: ====&lt;br /&gt;
# Create an assignment 'Assignment1665' using factories, with two rounds of reviews, and the staggered deadline functionality enabled.&lt;br /&gt;
# Create different types of deadlines with names 'submission', 'review', 'metareview', 'drop_topic', 'signup' and 'team_formation'.&lt;br /&gt;
# Create two topics 'Topic_1' and 'Topic_2' under 'Assignment1665' using factories.&lt;br /&gt;
# Create assignment due dates for 'submission' and 'review' for two rounds using factories. &lt;br /&gt;
# Set the topic due dates to corresponding assignment due dates using factories.&lt;br /&gt;
# Change the different deadlines of one topic to different dates.  &lt;br /&gt;
On returning, click on 'Assignments' tab, and click on 'Edit' under 'Actions'. Click on the 'Topics' tab and then click the link 'Show start/due dates'. The instructor should be able to see the changed due dates for each of the topics&lt;br /&gt;
&lt;br /&gt;
==== View Topic Stages: ====&lt;br /&gt;
# Change the deadline date of topic assigned to 'student2064' to a past date and change deadline date of topic assigned to 'student2065' to a future date.&lt;br /&gt;
# Impersonate a participant 'student2064' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Review'&lt;br /&gt;
# Impersonate 'student2065' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Submission'&lt;br /&gt;
&lt;br /&gt;
==== Submit Review: ====&lt;br /&gt;
# Impersonate 'student2064' using a stub.&lt;br /&gt;
# Click on the link 'Assignment1665'.&lt;br /&gt;
# Click on the link 'Others' work'.&lt;br /&gt;
# Select a topic to be reviewed.&lt;br /&gt;
# Click on the link 'Begin'.&lt;br /&gt;
# The student can see 'Questionnare1' for the review round 1.&lt;br /&gt;
# Fill in the response checkboxes.&lt;br /&gt;
# Click the button 'Save Review'.&lt;br /&gt;
On returning, the reviewer should be able to see the 'View' option for the reviews done.&lt;br /&gt;
&lt;br /&gt;
== Running Tests From Terminal ==&lt;br /&gt;
The test file we added is 'staggered_deadline_spec.rb'. The tests can be run in the terminal using the command: 'rspec /spec/features/staggered_deadline_spec.rb'.&lt;br /&gt;
Here is the result:&lt;br /&gt;
&lt;br /&gt;
[[File:Result.jpg‎ ]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Expertiza]&lt;br /&gt;
# [http://rspec.info/documentation/ RSpec Documentation]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Capybara_(software) Capybara]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Functional_testing Functional Testing]&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104325</id>
		<title>CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104325"/>
		<updated>2016-11-04T04:01:00Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: /* Test Steps */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is a web application which enables students to choose a topic in an assignment, submit assignments and peer review others' work. This application also allows the instructors to add assignments to a course, and create multiple topics with varying rubrics and different deadlines for an assignment.The Expertiza project is developed on Open Source Software (OSS) and is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
=== Rspec ===&lt;br /&gt;
[http://rspec.info Rspec] is a behavior-driven development tool for Ruby programmers which helps write human readable specifications that direct and validate the development of an application. RSpec is composed of multiple libraries which can be used together or independently with other testing tools like Capybara and Cucumber. There are four parts of RSpec. They are:&lt;br /&gt;
# rspec-core &lt;br /&gt;
# rspec-expectations&lt;br /&gt;
# rspec-mocks&lt;br /&gt;
# rspec-rails&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[https://github.com/jnicklas/capybara Capybara] is a web-based test automation software that simulates scenarios for user stories. It can automate web application testing for behavior-driven software development (BDD). It is a gem that can be used on top of a web-based driver. It offers a user-friendly domain specific language to describe a sequence of actions executed by the web driver. It is a part of the Cucumber testing framework.&lt;br /&gt;
&lt;br /&gt;
It is supported by the following web-based drivers:&lt;br /&gt;
* RackTest&lt;br /&gt;
* Selenium&lt;br /&gt;
* Capybara-webkit&lt;br /&gt;
&lt;br /&gt;
=== Functional Testing ===&lt;br /&gt;
[https://en.wikipedia.org/wiki/Functional_testing Functional testing] is a type of black-box testing used in quality assurance, Functional tests are done by feeding the inputs and checking the outputs giving least importance to the internal structure of the program. It describes what the system does. Functional testing verifies a program by checking it against the specification documents. There are different types of functional testing:&lt;br /&gt;
* Smoke testing&lt;br /&gt;
* Sanity testing&lt;br /&gt;
* Regression testing&lt;br /&gt;
* Usability testing&lt;br /&gt;
&lt;br /&gt;
== Project Description and Test Strategy==&lt;br /&gt;
Staggered deadline means having different deadlines for different topics under the same assignment. This is a relatively new feature of Expertiza. Deadline of different topics under the same assignment may need to be different for reasons like dependency of one topic on another. The aim of this project is to write RSpec tests to test the functionality of staggered deadline using Capybara. According to the instruction, we design 3 test cases:&lt;br /&gt;
&lt;br /&gt;
'''Initial state:''' Two students with different topics submit their work before the assignment's submission deadline in round 1.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 1:''' Change deadline of topic 1 to bring it into review stage in round 1, check if the student assigned with topic 1 can review others' work, check if the rubrics are right for round 1.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 2:''' Change the deadlines of both the topics to bring them into review stage in round 2, check if the students assigned with these topics can review each other's work, check if the rubrics are right for round 2.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 3:''' Change the deadline of both the topic to bring them into finish stage in round 2, check that the students assigned with these topics are unable to review each other.&lt;br /&gt;
&lt;br /&gt;
== Test Steps in UI==&lt;br /&gt;
Our test plan is divided into the following steps:&lt;br /&gt;
# Create an assignment: Create an assignment with topic with varying rubric by round feature.&lt;br /&gt;
# Add participants to newly created assignment. &lt;br /&gt;
# Submit a Topic: Impersonate each participant, choose a topic and submit something.&lt;br /&gt;
# Change topic Deadline: Change deadline of each topic and let each topic be in different stages (like submission round 1, review round 1, submission round 2 and review round 2)&lt;br /&gt;
# View topic stage: Impersonate each participant and check their topic’s current stage on student_task#list view.&lt;br /&gt;
# Submit reviews:  Participant with topic in review stage can review other participant’s work, ensuring that right rubrics are used for different topics.The reviewers can fill in the rubrics, save and submit their reviews successfully. &lt;br /&gt;
&lt;br /&gt;
==== Create an Assignment: ====&lt;br /&gt;
# Login as instructor 'instructor6'&lt;br /&gt;
# Click on 'Create public assignment'.&lt;br /&gt;
# Fill in the textboxes with assignment name, and assignment directory and other necessary details.&lt;br /&gt;
# Click the 'Create' button.&lt;br /&gt;
# Click on the link 'Rubrics'.&lt;br /&gt;
# Check the box 'Review rubric varies by round?'.&lt;br /&gt;
# Click on 'Save'.&lt;br /&gt;
# Click the link 'Topics'. &lt;br /&gt;
# Click on 'New topic'&lt;br /&gt;
# Fill in the Topic id, Topic name,Topic category and Number of slots.&lt;br /&gt;
# Click 'Create'.&lt;br /&gt;
After returning, the assignment created is listed under 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
==== Add Participants to Newly Created Assignment: ====&lt;br /&gt;
# Create a new assignment 'Assignment1665' using factories, with two review rounds and Staggered Deadline enabled. &lt;br /&gt;
# Added three participants to the newly created assignment using factories. &lt;br /&gt;
&lt;br /&gt;
==== Submit a topic: ====&lt;br /&gt;
# Create a stub to Impersonate the student 'student2064'.&lt;br /&gt;
# Click on 'Assignment1665' from the task list.&lt;br /&gt;
# Click on ‘Your Work’. &lt;br /&gt;
# Fill in the textbox with the submission link.&lt;br /&gt;
# Click on ‘upload link’&lt;br /&gt;
On clicking the 'upload' button, the submitted link is displayed on the page.&lt;br /&gt;
&lt;br /&gt;
==== Change Topic Deadline: ====&lt;br /&gt;
# Create an assignment 'Assignment1665' using factories, with two rounds of reviews, and the staggered deadline functionality enabled.&lt;br /&gt;
# Create different types of deadlines with names 'submission', 'review', 'metareview', 'drop_topic', 'signup' and 'team_formation'.&lt;br /&gt;
# Create two topics 'Topic_1' and 'Topic_2' under 'Assignment1665' using factories.&lt;br /&gt;
# Create assignment due dates for 'submission' and 'review' for two rounds using factories. &lt;br /&gt;
# Set the topic due dates to corresponding assignment due dates using factories.&lt;br /&gt;
# Change the different deadlines of one topic to different dates.  &lt;br /&gt;
On returning, click on 'Assignments' tab, and click on 'Edit' under 'Actions'. Click on the 'Topics' tab and then click the link 'Show start/due dates'. The instructor should be able to see the changed due dates for each of the topics&lt;br /&gt;
&lt;br /&gt;
==== View Topic Stages: ====&lt;br /&gt;
# Change the deadline date of topic assigned to 'student2064' to a past date and change deadline date of topic assigned to 'student2065' to a future date.&lt;br /&gt;
# Impersonate a participant 'student2064' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Review'&lt;br /&gt;
# Impersonate 'student2065' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Submission'&lt;br /&gt;
&lt;br /&gt;
==== Submit Review: ====&lt;br /&gt;
# Impersonate 'student2064' using a stub.&lt;br /&gt;
# Click on the link 'Assignment1665'.&lt;br /&gt;
# Click on the link 'Others' work'.&lt;br /&gt;
# Select a topic to be reviewed.&lt;br /&gt;
# Click on the link 'Begin'.&lt;br /&gt;
# The student can see 'Questionnare1' for the review round 1.&lt;br /&gt;
# Fill in the response checkboxes.&lt;br /&gt;
# Click the button 'Save Review'.&lt;br /&gt;
On returning, the reviewer should be able to see the 'View' option for the reviews done.&lt;br /&gt;
&lt;br /&gt;
== Test from UI ==&lt;br /&gt;
The test file we added is 'staggered_deadline_spec.rb'. The tests can be run in the terminal using the command: 'rspec /spec/features/staggered_deadline_spec.rb'.&lt;br /&gt;
Here is the result:&lt;br /&gt;
&lt;br /&gt;
[[File:Result.jpg‎ ]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Expertiza]&lt;br /&gt;
# [http://rspec.info/documentation/ RSpec Documentation]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Capybara_(software) Capybara]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Functional_testing Functional Testing]&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104320</id>
		<title>CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104320"/>
		<updated>2016-11-04T03:56:23Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: /* Project Description and Test Strategy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is a web application which enables students to choose a topic in an assignment, submit assignments and peer review others' work. This application also allows the instructors to add assignments to a course, and create multiple topics with varying rubrics and different deadlines for an assignment.The Expertiza project is developed on Open Source Software (OSS) and is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
=== Rspec ===&lt;br /&gt;
[http://rspec.info Rspec] is a behavior-driven development tool for Ruby programmers which helps write human readable specifications that direct and validate the development of an application. RSpec is composed of multiple libraries which can be used together or independently with other testing tools like Capybara and Cucumber. There are four parts of RSpec. They are:&lt;br /&gt;
# rspec-core &lt;br /&gt;
# rspec-expectations&lt;br /&gt;
# rspec-mocks&lt;br /&gt;
# rspec-rails&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[https://github.com/jnicklas/capybara Capybara] is a web-based test automation software that simulates scenarios for user stories. It can automate web application testing for behavior-driven software development (BDD). It is a gem that can be used on top of a web-based driver. It offers a user-friendly domain specific language to describe a sequence of actions executed by the web driver. It is a part of the Cucumber testing framework.&lt;br /&gt;
&lt;br /&gt;
It is supported by the following web-based drivers:&lt;br /&gt;
* RackTest&lt;br /&gt;
* Selenium&lt;br /&gt;
* Capybara-webkit&lt;br /&gt;
&lt;br /&gt;
=== Functional Testing ===&lt;br /&gt;
[https://en.wikipedia.org/wiki/Functional_testing Functional testing] is a type of black-box testing used in quality assurance, Functional tests are done by feeding the inputs and checking the outputs giving least importance to the internal structure of the program. It describes what the system does. Functional testing verifies a program by checking it against the specification documents. There are different types of functional testing:&lt;br /&gt;
* Smoke testing&lt;br /&gt;
* Sanity testing&lt;br /&gt;
* Regression testing&lt;br /&gt;
* Usability testing&lt;br /&gt;
&lt;br /&gt;
== Project Description and Test Strategy==&lt;br /&gt;
Staggered deadline means having different deadlines for different topics under the same assignment. This is a relatively new feature of Expertiza. Deadline of different topics under the same assignment may need to be different for reasons like dependency of one topic on another. The aim of this project is to write RSpec tests to test the functionality of staggered deadline using Capybara. According to the instruction, we design 3 test cases:&lt;br /&gt;
&lt;br /&gt;
'''Initial state:''' Two students with different topics submit their work before the assignment's submission deadline in round 1.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 1:''' Change deadline of topic 1 to bring it into review stage in round 1, check if the student assigned with topic 1 can review others' work, check if the rubrics are right for round 1.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 2:''' Change the deadlines of both the topics to bring them into review stage in round 2, check if the students assigned with these topics can review each other's work, check if the rubrics are right for round 2.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 3:''' Change the deadline of both the topic to bring them into finish stage in round 2, check that the students assigned with these topics are unable to review each other.&lt;br /&gt;
&lt;br /&gt;
== Test Steps ==&lt;br /&gt;
Our test plan is divided into the following steps:&lt;br /&gt;
# Create an assignment: Create an assignment with topic with varying rubric by round feature.&lt;br /&gt;
# Add participants to newly created assignment. &lt;br /&gt;
# Submit a Topic: Impersonate each participant, choose a topic and submit something.&lt;br /&gt;
# Change topic Deadline: Change deadline of each topic and let each topic be in different stages (like submission round 1, review round 1, submission round 2 and review round 2)&lt;br /&gt;
# View topic stage: Impersonate each participant and check their topic’s current stage on student_task#list view.&lt;br /&gt;
# Submit reviews:  Participant with topic in review stage can review other participant’s work, ensuring that right rubrics are used for different topics.The reviewers can fill in the rubrics, save and submit their reviews successfully. &lt;br /&gt;
&lt;br /&gt;
==== Create an Assignment: ====&lt;br /&gt;
# Login as instructor 'instructor6'&lt;br /&gt;
# Click on 'Create public assignment'.&lt;br /&gt;
# Fill in the textboxes with assignment name, and assignment directory and other necessary details.&lt;br /&gt;
# Click the 'Create' button.&lt;br /&gt;
# Click on the link 'Rubrics'.&lt;br /&gt;
# Check the box 'Review rubric varies by round?'.&lt;br /&gt;
# Click on 'Save'.&lt;br /&gt;
# Click the link 'Topics'. &lt;br /&gt;
# Click on 'New topic'&lt;br /&gt;
# Fill in the Topic id, Topic name,Topic category and Number of slots.&lt;br /&gt;
# Click 'Create'.&lt;br /&gt;
After returning, the assignment created is listed under 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
==== Add Participants to Newly Created Assignment: ====&lt;br /&gt;
# Create a new assignment 'Assignment1665' using factories, with two review rounds and Staggered Deadline enabled. &lt;br /&gt;
# Added three participants to the newly created assignment using factories. &lt;br /&gt;
&lt;br /&gt;
==== Submit a topic: ====&lt;br /&gt;
# Create a stub to Impersonate the student 'student2064'.&lt;br /&gt;
# Click on 'Assignment1665' from the task list.&lt;br /&gt;
# Click on ‘Your Work’. &lt;br /&gt;
# Fill in the textbox with the submission link.&lt;br /&gt;
# Click on ‘upload link’&lt;br /&gt;
On clicking the 'upload' button, the submitted link is displayed on the page.&lt;br /&gt;
&lt;br /&gt;
==== Change Topic Deadline: ====&lt;br /&gt;
# Create an assignment 'Assignment1665' using factories, with two rounds of reviews, and the staggered deadline functionality enabled.&lt;br /&gt;
# Create different types of deadlines with names 'submission', 'review', 'metareview', 'drop_topic', 'signup' and 'team_formation'.&lt;br /&gt;
# Create two topics 'Topic_1' and 'Topic_2' under 'Assignment1665' using factories.&lt;br /&gt;
# Create assignment due dates for 'submission' and 'review' for two rounds using factories. &lt;br /&gt;
# Set the topic due dates to corresponding assignment due dates using factories.&lt;br /&gt;
# Change the different deadlines of one topic to different dates.  &lt;br /&gt;
On returning, click on 'Assignments' tab, and click on 'Edit' under 'Actions'. Click on the 'Topics' tab and then click the link 'Show start/due dates'. The instructor should be able to see the changed due dates for each of the topics&lt;br /&gt;
&lt;br /&gt;
==== View Topic Stages: ====&lt;br /&gt;
# Change the deadline date of topic assigned to 'student2064' to a past date and change deadline date of topic assigned to 'student2065' to a future date.&lt;br /&gt;
# Impersonate a participant 'student2064' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Review'&lt;br /&gt;
# Impersonate 'student2065' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Submission'&lt;br /&gt;
&lt;br /&gt;
==== Submit Review: ====&lt;br /&gt;
# Impersonate 'student2064' using a stub.&lt;br /&gt;
# Click on the link 'Assignment1665'.&lt;br /&gt;
# Click on the link 'Others' work'.&lt;br /&gt;
# Select a topic to be reviewed.&lt;br /&gt;
# Click on the link 'Begin'.&lt;br /&gt;
# The student can see 'Questionnare1' for the review round 1.&lt;br /&gt;
# Fill in the response checkboxes.&lt;br /&gt;
# Click the button 'Save Review'.&lt;br /&gt;
On returning, the reviewer should be able to see the 'View' option for the reviews done.&lt;br /&gt;
&lt;br /&gt;
== Test from UI ==&lt;br /&gt;
The test file we added is 'staggered_deadline_spec.rb'. The tests can be run in the terminal using the command: 'rspec /spec/features/staggered_deadline_spec.rb'.&lt;br /&gt;
Here is the result:&lt;br /&gt;
&lt;br /&gt;
[[File:Result.jpg‎ ]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Expertiza]&lt;br /&gt;
# [http://rspec.info/documentation/ RSpec Documentation]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Capybara_(software) Capybara]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Functional_testing Functional Testing]&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104316</id>
		<title>CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104316"/>
		<updated>2016-11-04T03:52:22Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: /* Project Description and Test Strategy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is a web application which enables students to choose a topic in an assignment, submit assignments and peer review others' work. This application also allows the instructors to add assignments to a course, and create multiple topics with varying rubrics and different deadlines for an assignment.The Expertiza project is developed on Open Source Software (OSS) and is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
=== Rspec ===&lt;br /&gt;
[http://rspec.info Rspec] is a behavior-driven development tool for Ruby programmers which helps write human readable specifications that direct and validate the development of an application. RSpec is composed of multiple libraries which can be used together or independently with other testing tools like Capybara and Cucumber. There are four parts of RSpec. They are:&lt;br /&gt;
# rspec-core &lt;br /&gt;
# rspec-expectations&lt;br /&gt;
# rspec-mocks&lt;br /&gt;
# rspec-rails&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[https://github.com/jnicklas/capybara Capybara] is a web-based test automation software that simulates scenarios for user stories. It can automate web application testing for behavior-driven software development (BDD). It is a gem that can be used on top of a web-based driver. It offers a user-friendly domain specific language to describe a sequence of actions executed by the web driver. It is a part of the Cucumber testing framework.&lt;br /&gt;
&lt;br /&gt;
It is supported by the following web-based drivers:&lt;br /&gt;
* RackTest&lt;br /&gt;
* Selenium&lt;br /&gt;
* Capybara-webkit&lt;br /&gt;
&lt;br /&gt;
=== Functional Testing ===&lt;br /&gt;
[https://en.wikipedia.org/wiki/Functional_testing Functional testing] is a type of black-box testing used in quality assurance, Functional tests are done by feeding the inputs and checking the outputs giving least importance to the internal structure of the program. It describes what the system does. Functional testing verifies a program by checking it against the specification documents. There are different types of functional testing:&lt;br /&gt;
* Smoke testing&lt;br /&gt;
* Sanity testing&lt;br /&gt;
* Regression testing&lt;br /&gt;
* Usability testing&lt;br /&gt;
&lt;br /&gt;
== Project Description and Test Strategy==&lt;br /&gt;
Staggered deadline means having different deadlines for different topics under the same assignment. This is a relatively new feature of Expertiza. Deadline of topics can be changed due to specific reasons (like dependencies), without affecting the deadline of other topics. This project is to write RSpec tests to test the functionality of staggered deadline using Capybara. According to the instruction, we design 3 test cases:&lt;br /&gt;
&lt;br /&gt;
'''Initial state:''' Two students with different topics submit their work before the assignment's submission deadline in round 1&lt;br /&gt;
&lt;br /&gt;
'''Scenario 1:''' Change deadline of topic 1 to bring it into review stage in round 1, check if the student assigned with topic 1 can review others' work, check if the rubrics are right for round 1.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 2:''' Change the deadlines of both the topics to bring them into review stage in round 2, check if the students assigned with these topics can review each other's work, check if the rubrics are right for round 2.&lt;br /&gt;
&lt;br /&gt;
'''Scenario 3:''' Change the deadline of both the topic to bring them into finish stage in round 2, check that the students assigned with these topics are unable to review each other.&lt;br /&gt;
&lt;br /&gt;
== Test Steps ==&lt;br /&gt;
Our test plan is divided into the following steps:&lt;br /&gt;
# Create an assignment: Create an assignment with topic with varying rubric by round feature.&lt;br /&gt;
# Add participants to newly created assignment. &lt;br /&gt;
# Submit a Topic: Impersonate each participant, choose a topic and submit something.&lt;br /&gt;
# Change topic Deadline: Change deadline of each topic and let each topic be in different stages (like submission round 1, review round 1, submission round 2 and review round 2)&lt;br /&gt;
# View topic stage: Impersonate each participant and check their topic’s current stage on student_task#list view.&lt;br /&gt;
# Submit reviews:  Participant with topic in review stage can review other participant’s work, ensuring that right rubrics are used for different topics.The reviewers can fill in the rubrics, save and submit their reviews successfully. &lt;br /&gt;
&lt;br /&gt;
==== Create an Assignment: ====&lt;br /&gt;
# Login as instructor 'instructor6'&lt;br /&gt;
# Click on 'Create public assignment'.&lt;br /&gt;
# Fill in the textboxes with assignment name, and assignment directory and other necessary details.&lt;br /&gt;
# Click the 'Create' button.&lt;br /&gt;
# Click on the link 'Rubrics'.&lt;br /&gt;
# Check the box 'Review rubric varies by round?'.&lt;br /&gt;
# Click on 'Save'.&lt;br /&gt;
# Click the link 'Topics'. &lt;br /&gt;
# Click on 'New topic'&lt;br /&gt;
# Fill in the Topic id, Topic name,Topic category and Number of slots.&lt;br /&gt;
# Click 'Create'.&lt;br /&gt;
After returning, the assignment created is listed under 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
==== Add Participants to Newly Created Assignment: ====&lt;br /&gt;
# Create a new assignment 'Assignment1665' using factories, with two review rounds and Staggered Deadline enabled. &lt;br /&gt;
# Added three participants to the newly created assignment using factories. &lt;br /&gt;
&lt;br /&gt;
==== Submit a topic: ====&lt;br /&gt;
# Create a stub to Impersonate the student 'student2064'.&lt;br /&gt;
# Click on 'Assignment1665' from the task list.&lt;br /&gt;
# Click on ‘Your Work’. &lt;br /&gt;
# Fill in the textbox with the submission link.&lt;br /&gt;
# Click on ‘upload link’&lt;br /&gt;
On clicking the 'upload' button, the submitted link is displayed on the page.&lt;br /&gt;
&lt;br /&gt;
==== Change Topic Deadline: ====&lt;br /&gt;
# Create an assignment 'Assignment1665' using factories, with two rounds of reviews, and the staggered deadline functionality enabled.&lt;br /&gt;
# Create different types of deadlines with names 'submission', 'review', 'metareview', 'drop_topic', 'signup' and 'team_formation'.&lt;br /&gt;
# Create two topics 'Topic_1' and 'Topic_2' under 'Assignment1665' using factories.&lt;br /&gt;
# Create assignment due dates for 'submission' and 'review' for two rounds using factories. &lt;br /&gt;
# Set the topic due dates to corresponding assignment due dates using factories.&lt;br /&gt;
# Change the different deadlines of one topic to different dates.  &lt;br /&gt;
On returning, click on 'Assignments' tab, and click on 'Edit' under 'Actions'. Click on the 'Topics' tab and then click the link 'Show start/due dates'. The instructor should be able to see the changed due dates for each of the topics&lt;br /&gt;
&lt;br /&gt;
==== View Topic Stages: ====&lt;br /&gt;
# Change the deadline date of topic assigned to 'student2064' to a past date and change deadline date of topic assigned to 'student2065' to a future date.&lt;br /&gt;
# Impersonate a participant 'student2064' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Review'&lt;br /&gt;
# Impersonate 'student2065' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Submission'&lt;br /&gt;
&lt;br /&gt;
==== Submit Review: ====&lt;br /&gt;
# Impersonate 'student2064' using a stub.&lt;br /&gt;
# Click on the link 'Assignment1665'.&lt;br /&gt;
# Click on the link 'Others' work'.&lt;br /&gt;
# Select a topic to be reviewed.&lt;br /&gt;
# Click on the link 'Begin'.&lt;br /&gt;
# The student can see 'Questionnare1' for the review round 1.&lt;br /&gt;
# Fill in the response checkboxes.&lt;br /&gt;
# Click the button 'Save Review'.&lt;br /&gt;
On returning, the reviewer should be able to see the 'View' option for the reviews done.&lt;br /&gt;
&lt;br /&gt;
== Test from UI ==&lt;br /&gt;
The test file we added is 'staggered_deadline_spec.rb'. The tests can be run in the terminal using the command: 'rspec /spec/features/staggered_deadline_spec.rb'.&lt;br /&gt;
Here is the result:&lt;br /&gt;
&lt;br /&gt;
[[File:Result.jpg‎ ]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Expertiza]&lt;br /&gt;
# [http://rspec.info/documentation/ RSpec Documentation]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Capybara_(software) Capybara]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Functional_testing Functional Testing]&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104287</id>
		<title>CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=104287"/>
		<updated>2016-11-04T03:25:11Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is a web application which enables students to choose a topic in an assignment, submit assignments and peer review others' work. This application also allows the instructors to add assignments to a course, and create multiple topics with varying rubrics and different deadlines for an assignment.The Expertiza project is developed on Open Source Software (OSS) and is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
=== Rspec ===&lt;br /&gt;
[http://rspec.info Rspec] is a behavior-driven development tool for Ruby programmers which helps write human readable specifications that direct and validate the development of an application. RSpec is composed of multiple libraries which can be used together or independently with other testing tools like Capybara and Cucumber. There are four parts of RSpec. They are:&lt;br /&gt;
# rspec-core &lt;br /&gt;
# rspec-expectations&lt;br /&gt;
# rspec-mocks&lt;br /&gt;
# rspec-rails&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[https://github.com/jnicklas/capybara Capybara] is a web-based test automation software that simulates scenarios for user stories. It can automate web application testing for behavior-driven software development (BDD). It is a gem that can be used on top of a web-based driver. It offers a user-friendly domain specific language to describe a sequence of actions executed by the web driver. It is a part of the Cucumber testing framework.&lt;br /&gt;
&lt;br /&gt;
It is supported by the following web-based drivers:&lt;br /&gt;
* RackTest&lt;br /&gt;
* Selenium&lt;br /&gt;
* Capybara-webkit&lt;br /&gt;
&lt;br /&gt;
=== Functional Testing ===&lt;br /&gt;
[https://en.wikipedia.org/wiki/Functional_testing Functional testing] is a type of black-box testing used in quality assurance, Functional tests are done by feeding the inputs and checking the outputs giving least importance to the internal structure of the program. It describes what the system does. Functional testing verifies a program by checking it against the specification documents. There are different types of functional testing:&lt;br /&gt;
* Smoke testing&lt;br /&gt;
* Sanity testing&lt;br /&gt;
* Regression testing&lt;br /&gt;
* Usability testing&lt;br /&gt;
&lt;br /&gt;
== Project Description and Test Strategy==&lt;br /&gt;
Staggered deadline is deadline for individual topic under the same assignment. This is a relatively new feature of Expertiza. Deadline of topics could be changed due to specific reasons without affect other topics. This project is to write RSpec tests to test functionality of staggered deadline using Capybara. According to the instruction, we design 3 test cases:&lt;br /&gt;
&lt;br /&gt;
'''Initial state:''' two students with different topics submit their works before the assignment's submission deadline in round 1&lt;br /&gt;
&lt;br /&gt;
'''Case 1:''' change topic 1's deadline to bring it into review stage in round 1, check if he could review others work, check if the rubrics is correct for the round 1&lt;br /&gt;
&lt;br /&gt;
'''Case 2:''' change both topics' deadlines to bring them into review stage in round 2, check if they could review each other, check if the rubrics is correct for the round 2&lt;br /&gt;
&lt;br /&gt;
'''Case 3:''' change both topic's deadlines to bring them into finish stage in round 2, check if they could not review each other&lt;br /&gt;
&lt;br /&gt;
== Test Steps ==&lt;br /&gt;
Our test plan is divided into the following steps:&lt;br /&gt;
# Create an assignment: Create an assignment with topic with varying rubric by round feature.&lt;br /&gt;
# Add participants to newly created assignment. &lt;br /&gt;
# Submit a Topic: Impersonate each participant, choose a topic and submit something.&lt;br /&gt;
# Change topic Deadline: Change deadline of each topic and let each topic be in different stages (like submission round 1, review round 1, submission round 2 and review round 2)&lt;br /&gt;
# View topic stage: Impersonate each participant and check their topic’s current stage on student_task#list view.&lt;br /&gt;
# Submit reviews:  Participant with topic in review stage can review other participant’s work, ensuring that right rubrics are used for different topics.The reviewers can fill in the rubrics, save and submit their reviews successfully. &lt;br /&gt;
&lt;br /&gt;
==== Create an Assignment: ====&lt;br /&gt;
# Login as instructor 'instructor6'&lt;br /&gt;
# Click on 'Create public assignment'.&lt;br /&gt;
# Fill in the textboxes with assignment name, and assignment directory and other necessary details.&lt;br /&gt;
# Click the 'Create' button.&lt;br /&gt;
# Click on the link 'Rubrics'.&lt;br /&gt;
# Check the box 'Review rubric varies by round?'.&lt;br /&gt;
# Click on 'Save'.&lt;br /&gt;
# Click the link 'Topics'. &lt;br /&gt;
# Click on 'New topic'&lt;br /&gt;
# Fill in the Topic id, Topic name,Topic category and Number of slots.&lt;br /&gt;
# Click 'Create'.&lt;br /&gt;
After returning, the assignment created is listed under 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
==== Add Participants to Newly Created Assignment: ====&lt;br /&gt;
# Create a new assignment 'Assignment1665' using factories, with two review rounds and Staggered Deadline enabled. &lt;br /&gt;
# Added three participants to the newly created assignment using factories. &lt;br /&gt;
&lt;br /&gt;
==== Submit a topic: ====&lt;br /&gt;
# Create a stub to Impersonate the student 'student2064'.&lt;br /&gt;
# Click on 'Assignment1665' from the task list.&lt;br /&gt;
# Click on ‘Your Work’. &lt;br /&gt;
# Fill in the textbox with the submission link.&lt;br /&gt;
# Click on ‘upload link’&lt;br /&gt;
On clicking the 'upload' button, the submitted link is displayed on the page.&lt;br /&gt;
&lt;br /&gt;
==== Change Topic Deadline: ====&lt;br /&gt;
# Create an assignment 'Assignment1665' using factories, with two rounds of reviews, and the staggered deadline functionality enabled.&lt;br /&gt;
# Create different types of deadlines with names 'submission', 'review', 'metareview', 'drop_topic', 'signup' and 'team_formation'.&lt;br /&gt;
# Create two topics 'Topic_1' and 'Topic_2' under 'Assignment1665' using factories.&lt;br /&gt;
# Create assignment due dates for 'submission' and 'review' for two rounds using factories. &lt;br /&gt;
# Set the topic due dates to corresponding assignment due dates using factories.&lt;br /&gt;
# Change the different deadlines of one topic to different dates.  &lt;br /&gt;
On returning, click on 'Assignments' tab, and click on 'Edit' under 'Actions'. Click on the 'Topics' tab and then click the link 'Show start/due dates'. The instructor should be able to see the changed due dates for each of the topics&lt;br /&gt;
&lt;br /&gt;
==== View Topic Stages: ====&lt;br /&gt;
# Change the deadline date of topic assigned to 'student2064' to a past date and change deadline date of topic assigned to 'student2065' to a future date.&lt;br /&gt;
# Impersonate a participant 'student2064' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Review'&lt;br /&gt;
# Impersonate 'student2065' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Submission'&lt;br /&gt;
&lt;br /&gt;
==== Submit Review: ====&lt;br /&gt;
# Impersonate 'student2064' using a stub.&lt;br /&gt;
# Click on the link 'Assignment1665'.&lt;br /&gt;
# Click on the link 'Others' work'.&lt;br /&gt;
# Select a topic to be reviewed.&lt;br /&gt;
# Click on the link 'Begin'.&lt;br /&gt;
# The student can see 'Questionnare1' for the review round 1.&lt;br /&gt;
# Fill in the response checkboxes.&lt;br /&gt;
# Click the button 'Save Review'.&lt;br /&gt;
On returning, the reviewer should be able to see the 'View' option for the reviews done.&lt;br /&gt;
&lt;br /&gt;
== Test from UI ==&lt;br /&gt;
The test file we added is 'staggered_deadline_spec.rb'. The tests can be run in the terminal using the command: 'rspec /spec/features/staggered_deadline_spec.rb'.&lt;br /&gt;
Here is the result:&lt;br /&gt;
&lt;br /&gt;
[[File:Result.jpg‎ ]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Expertiza]&lt;br /&gt;
# [http://rspec.info/documentation/ RSpec Documentation]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Capybara_(software) Capybara]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Functional_testing Functional Testing]&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=103745</id>
		<title>CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=103745"/>
		<updated>2016-10-29T03:02:23Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is a web application which enables students to choose a topic in an assignment, submit assignments and peer review others' work. This application also allows the instructors to add assignments to a course, and create multiple topics with varying rubrics and different deadlines for an assignment.The Expertiza project is developed on Open Source Software (OSS) and is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
=== Rspec ===&lt;br /&gt;
[http://rspec.info/documentation/ Rspec] is a behavior-driven development tool for Ruby programmers which helps write human readable specifications that direct and validate the development of an application. RSpec is composed of multiple libraries which can be used together or independently with other testing tools like Capybara and Cucumber. There are four parts of RSpec. They are:&lt;br /&gt;
# rspec-core &lt;br /&gt;
# rspec-expectations&lt;br /&gt;
# rspec-mocks&lt;br /&gt;
# rspec-rails&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[[Capybara (software)|Capybara]] is a web-based test automation software that simulates scenarios for user stories. It can automate web application testing for behavior-driven software development (BDD). It is a gem that can be used on top of a web-based driver. It offers a user-friendly domain specific language to describe a sequence of actions executed by the web driver. It is a part of the Cucumber testing framework.&lt;br /&gt;
&lt;br /&gt;
It is supported by the following web-based drivers:&lt;br /&gt;
* RackTest&lt;br /&gt;
* Selenium&lt;br /&gt;
* Capybara-webkit&lt;br /&gt;
&lt;br /&gt;
=== Functional Testing ===&lt;br /&gt;
[[Functional testing]] is a type of black-box testing used in quality assurance, Functional tests are done by feeding the inputs and checking the outputs giving least importance to the internal structure of the program. It describes what the system does. Functional testing verifies a program by checking it against the specification documents. There are different types of functional testing:&lt;br /&gt;
* Smoke testing&lt;br /&gt;
* Sanity testing&lt;br /&gt;
* Regression testing&lt;br /&gt;
* Usability testing &lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
This project is to write RSpec tests to test functionality of Staggered deadline in Expertiza using Capybara. The procedures to be tested are:&lt;br /&gt;
* Create an assignment.&lt;br /&gt;
* Submit a topic.&lt;br /&gt;
* Change a topic deadline.&lt;br /&gt;
* View topic stage.&lt;br /&gt;
* Submit reviews.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
Our test plan is divided into the following steps:&lt;br /&gt;
# Create an assignment: Create an assignment with topic with varying rubric by round feature.&lt;br /&gt;
# Add participants to newly created assignment. &lt;br /&gt;
# Submit a Topic: Impersonate each participant, choose a topic and submit something.&lt;br /&gt;
# Change topic Deadline: Change deadline of each topic and let each topic be in different stages (like submission round 1, review round 1, submission round 2 and review round 2)&lt;br /&gt;
# View topic stage: Impersonate each participant and check their topic’s current stage on student_task#list view.&lt;br /&gt;
# Submit reviews:  Participant with topic in review stage can review other participant’s work, ensuring that right rubrics are used for different topics.The reviewers can fill in the rubrics, save and submit their reviews successfully. &lt;br /&gt;
&lt;br /&gt;
==== Create an Assignment: ====&lt;br /&gt;
# Login as instructor 'instructor6'&lt;br /&gt;
# Click on 'Create public assignment'.&lt;br /&gt;
# Fill in the textboxes with assignment name, and assignment directory and other necessary details.&lt;br /&gt;
# Click the 'Create' button.&lt;br /&gt;
# Click on the link 'Rubrics'.&lt;br /&gt;
# Check the box 'Review rubric varies by round?'.&lt;br /&gt;
# Click on 'Save'.&lt;br /&gt;
# Click the link 'Topics'. &lt;br /&gt;
# Click on 'New topic'&lt;br /&gt;
# Fill in the Topic id, Topic name,Topic category and Number of slots.&lt;br /&gt;
# Click 'Create'.&lt;br /&gt;
After returning, the assignment created is listed under 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
==== Add Participants to Newly Created Assignment: ====&lt;br /&gt;
# Create a new assignment 'Assignment1665' using factories, with two review rounds and Staggered Deadline enabled. &lt;br /&gt;
# Added three participants to the newly created assignment using factories. &lt;br /&gt;
&lt;br /&gt;
==== Submit a topic: ====&lt;br /&gt;
# Create a stub to Impersonate the student 'student2064'.&lt;br /&gt;
# Click on 'Assignment1665' from the task list.&lt;br /&gt;
# Click on ‘Your Work’. &lt;br /&gt;
# Fill in the textbox with the submission link.&lt;br /&gt;
# Click on ‘upload link’&lt;br /&gt;
On clicking the 'upload' button, the submitted link is displayed on the page.&lt;br /&gt;
&lt;br /&gt;
==== Change Topic Deadline: ====&lt;br /&gt;
# Create an assignment 'Assignment1665' using factories, with two rounds of reviews, and the staggered deadline functionality enabled.&lt;br /&gt;
# Create different types of deadlines with names 'submission', 'review', 'metareview', 'drop_topic', 'signup' and 'team_formation'.&lt;br /&gt;
# Create two topics 'Topic_1' and 'Topic_2' under 'Assignment1665' using factories.&lt;br /&gt;
# Create assignment due dates for 'submission' and 'review' for two rounds using factories. &lt;br /&gt;
# Set the topic due dates to corresponding assignment due dates using factories.&lt;br /&gt;
# Change the different deadlines of one topic to different dates.  &lt;br /&gt;
On returning, click on 'Assignments' tab, and click on 'Edit' under 'Actions'. Click on the 'Topics' tab and then click the link 'Show start/due dates'. The instructor should be able to see the changed due dates for each of the topics&lt;br /&gt;
&lt;br /&gt;
==== View Topic Stages: ====&lt;br /&gt;
# Change the deadline date of topic assigned to 'student2064' to a past date and change deadline date of topic assigned to 'student2065' to a future date.&lt;br /&gt;
# Impersonate a participant 'student2064' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Review'&lt;br /&gt;
# Impersonate 'student2065' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Submission'&lt;br /&gt;
&lt;br /&gt;
==== Submit Review: ====&lt;br /&gt;
# Impersonate 'student2064' using a stub.&lt;br /&gt;
# Click on the link 'Assignment1665'.&lt;br /&gt;
# Click on the link 'Others' work'.&lt;br /&gt;
# Select a topic to be reviewed.&lt;br /&gt;
# Click on the link 'Begin'.&lt;br /&gt;
# The student can see 'Questionnare1' for the review round 1.&lt;br /&gt;
# Fill in the response checkboxes.&lt;br /&gt;
# Click the button 'Save Review'.&lt;br /&gt;
On returning, the reviewer should be able to see the 'View' option for the reviews done.&lt;br /&gt;
== Execution ==&lt;br /&gt;
The command used to execute the RSpec test was 'rspec /spec/features/staggered_deadline_spec.rb'.&lt;br /&gt;
[[File:Execution.jpg]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Expertiza]&lt;br /&gt;
# [http://rspec.info/documentation/ RSpec Documentation]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Capybara_(software) Capybara]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Functional_testing Functional Testing]&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:12874325_1141331805910848_864500454_o.jpg&amp;diff=103742</id>
		<title>File:12874325 1141331805910848 864500454 o.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:12874325_1141331805910848_864500454_o.jpg&amp;diff=103742"/>
		<updated>2016-10-29T03:00:22Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Execution.jpg&amp;diff=103730</id>
		<title>File:Execution.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Execution.jpg&amp;diff=103730"/>
		<updated>2016-10-29T02:56:48Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: uploaded a new version of &amp;amp;quot;File:Execution.jpg&amp;amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Execution.jpg&amp;diff=103725</id>
		<title>File:Execution.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Execution.jpg&amp;diff=103725"/>
		<updated>2016-10-29T02:55:43Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=103722</id>
		<title>CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=103722"/>
		<updated>2016-10-29T02:55:16Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: /* Execution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{R from move}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is a web application which enables students to choose a topic in an assignment, submit assignments and peer review others' work. This application also allows the instructors to add assignments to a course, and create multiple topics with varying rubrics and different deadlines for an assignment.The Expertiza project is developed on Open Source Software (OSS) and is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
=== Rspec ===&lt;br /&gt;
[http://rspec.info/documentation/ Rspec] is a behavior-driven development tool for Ruby programmers which helps write human readable specifications that direct and validate the development of an application. RSpec is composed of multiple libraries which can be used together or independently with other testing tools like Capybara and Cucumber. There are four parts of RSpec. They are:&lt;br /&gt;
# rspec-core &lt;br /&gt;
# rspec-expectations&lt;br /&gt;
# rspec-mocks&lt;br /&gt;
# rspec-rails&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[[Capybara (software)|Capybara]] is a web-based test automation software that simulates scenarios for user stories. It can automate web application testing for behavior-driven software development (BDD). It is a gem that can be used on top of a web-based driver. It offers a user-friendly domain specific language to describe a sequence of actions executed by the web driver. It is a part of the Cucumber testing framework.&lt;br /&gt;
&lt;br /&gt;
It is supported by the following web-based drivers:&lt;br /&gt;
* RackTest&lt;br /&gt;
* Selenium&lt;br /&gt;
* Capybara-webkit&lt;br /&gt;
&lt;br /&gt;
=== Functional Testing ===&lt;br /&gt;
[[Functional testing]] is a type of black-box testing used in quality assurance, Functional tests are done by feeding the inputs and checking the outputs giving least importance to the internal structure of the program. It describes what the system does. Functional testing verifies a program by checking it against the specification documents. There are different types of functional testing:&lt;br /&gt;
* Smoke testing&lt;br /&gt;
* Sanity testing&lt;br /&gt;
* Regression testing&lt;br /&gt;
* Usability testing &lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
This project is to write RSpec tests to test functionality of Staggered deadline in Expertiza using Capybara. The procedures to be tested are:&lt;br /&gt;
* Create an assignment.&lt;br /&gt;
* Submit a topic.&lt;br /&gt;
* Change a topic deadline.&lt;br /&gt;
* View topic stage.&lt;br /&gt;
* Submit reviews.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
Our test plan is divided into the following steps:&lt;br /&gt;
# Create an assignment: Create an assignment with topic with varying rubric by round feature.&lt;br /&gt;
# Add participants to newly created assignment. &lt;br /&gt;
# Submit a Topic: Impersonate each participant, choose a topic and submit something.&lt;br /&gt;
# Change topic Deadline: Change deadline of each topic and let each topic be in different stages (like submission round 1, review round 1, submission round 2 and review round 2)&lt;br /&gt;
# View topic stage: Impersonate each participant and check their topic’s current stage on student_task#list view.&lt;br /&gt;
# Submit reviews:  Participant with topic in review stage can review other participant’s work, ensuring that right rubrics are used for different topics.The reviewers can fill in the rubrics, save and submit their reviews successfully. &lt;br /&gt;
&lt;br /&gt;
==== Create an Assignment: ====&lt;br /&gt;
# Login as instructor 'instructor6'&lt;br /&gt;
# Click on 'Create public assignment'.&lt;br /&gt;
# Fill in the textboxes with assignment name, and assignment directory and other necessary details.&lt;br /&gt;
# Click the 'Create' button.&lt;br /&gt;
# Click on the link 'Rubrics'.&lt;br /&gt;
# Check the box 'Review rubric varies by round?'.&lt;br /&gt;
# Click on 'Save'.&lt;br /&gt;
# Click the link 'Topics'. &lt;br /&gt;
# Click on 'New topic'&lt;br /&gt;
# Fill in the Topic id, Topic name,Topic category and Number of slots.&lt;br /&gt;
# Click 'Create'.&lt;br /&gt;
After returning, the assignment created is listed under 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
==== Add Participants to Newly Created Assignment: ====&lt;br /&gt;
# Create a new assignment 'Assignment1665' using factories, with two review rounds and Staggered Deadline enabled. &lt;br /&gt;
# Added three participants to the newly created assignment using factories. &lt;br /&gt;
&lt;br /&gt;
==== Submit a topic: ====&lt;br /&gt;
# Create a stub to Impersonate the student 'student2064'.&lt;br /&gt;
# Click on 'Assignment1665' from the task list.&lt;br /&gt;
# Click on ‘Your Work’. &lt;br /&gt;
# Fill in the textbox with the submission link.&lt;br /&gt;
# Click on ‘upload link’&lt;br /&gt;
On clicking the 'upload' button, the submitted link is displayed on the page.&lt;br /&gt;
&lt;br /&gt;
==== Change Topic Deadline: ====&lt;br /&gt;
# Create an assignment 'Assignment1665' using factories, with two rounds of reviews, and the staggered deadline functionality enabled.&lt;br /&gt;
# Create different types of deadlines with names 'submission', 'review', 'metareview', 'drop_topic', 'signup' and 'team_formation'.&lt;br /&gt;
# Create two topics 'Topic_1' and 'Topic_2' under 'Assignment1665' using factories.&lt;br /&gt;
# Create assignment due dates for 'submission' and 'review' for two rounds using factories. &lt;br /&gt;
# Set the topic due dates to corresponding assignment due dates using factories.&lt;br /&gt;
# Change the different deadlines of one topic to different dates.  &lt;br /&gt;
On returning, click on 'Assignments' tab, and click on 'Edit' under 'Actions'. Click on the 'Topics' tab and then click the link 'Show start/due dates'. The instructor should be able to see the changed due dates for each of the topics&lt;br /&gt;
&lt;br /&gt;
==== View Topic Stages: ====&lt;br /&gt;
# Change the deadline date of topic assigned to 'student2064' to a past date and change deadline date of topic assigned to 'student2065' to a future date.&lt;br /&gt;
# Impersonate a participant 'student2064' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Review'&lt;br /&gt;
# Impersonate 'student2065' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Submission'&lt;br /&gt;
&lt;br /&gt;
==== Submit Review: ====&lt;br /&gt;
# Impersonate 'student2064' using a stub.&lt;br /&gt;
# Click on the link 'Assignment1665'.&lt;br /&gt;
# Click on the link 'Others' work'.&lt;br /&gt;
# Select a topic to be reviewed.&lt;br /&gt;
# Click on the link 'Begin'.&lt;br /&gt;
# The student can see 'Questionnare1' for the review round 1.&lt;br /&gt;
# Fill in the response checkboxes.&lt;br /&gt;
# Click the button 'Save Review'.&lt;br /&gt;
On returning, the reviewer should be able to see the 'View' option for the reviews done.&lt;br /&gt;
== Execution ==&lt;br /&gt;
The command used to execute the RSpec test was 'rspec /spec/features/staggered_deadline_spec.rb'.&lt;br /&gt;
[[File:Execution.jpg]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Expertiza]&lt;br /&gt;
# [http://rspec.info/documentation/ RSpec Documentation]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Capybara_(software) Capybara]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Functional_testing Functional Testing]&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=103711</id>
		<title>CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=103711"/>
		<updated>2016-10-29T02:49:46Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{R from move}}&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is a web application which enables students to choose a topic in an assignment, submit assignments and peer review others' work. This application also allows the instructors to add assignments to a course, and create multiple topics with varying rubrics and different deadlines for an assignment.The Expertiza project is developed on Open Source Software (OSS) and is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
=== Rspec ===&lt;br /&gt;
[http://rspec.info/documentation/ Rspec] is a behavior-driven development tool for Ruby programmers which helps write human readable specifications that direct and validate the development of an application. RSpec is composed of multiple libraries which can be used together or independently with other testing tools like Capybara and Cucumber. There are four parts of RSpec. They are:&lt;br /&gt;
# rspec-core &lt;br /&gt;
# rspec-expectations&lt;br /&gt;
# rspec-mocks&lt;br /&gt;
# rspec-rails&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[[Capybara (software)|Capybara]] is a web-based test automation software that simulates scenarios for user stories. It can automate web application testing for behavior-driven software development (BDD). It is a gem that can be used on top of a web-based driver. It offers a user-friendly domain specific language to describe a sequence of actions executed by the web driver. It is a part of the Cucumber testing framework.&lt;br /&gt;
&lt;br /&gt;
It is supported by the following web-based drivers:&lt;br /&gt;
* RackTest&lt;br /&gt;
* Selenium&lt;br /&gt;
* Capybara-webkit&lt;br /&gt;
&lt;br /&gt;
=== Functional Testing ===&lt;br /&gt;
[[Functional testing]] is a type of black-box testing used in quality assurance, Functional tests are done by feeding the inputs and checking the outputs giving least importance to the internal structure of the program. It describes what the system does. Functional testing verifies a program by checking it against the specification documents. There are different types of functional testing:&lt;br /&gt;
* Smoke testing&lt;br /&gt;
* Sanity testing&lt;br /&gt;
* Regression testing&lt;br /&gt;
* Usability testing &lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
This project is to write RSpec tests to test functionality of Staggered deadline in Expertiza using Capybara. The procedures to be tested are:&lt;br /&gt;
* Create an assignment.&lt;br /&gt;
* Submit a topic.&lt;br /&gt;
* Change a topic deadline.&lt;br /&gt;
* View topic stage.&lt;br /&gt;
* Submit reviews.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
Our test plan is divided into the following steps:&lt;br /&gt;
# Create an assignment: Create an assignment with topic with varying rubric by round feature.&lt;br /&gt;
# Add participants to newly created assignment. &lt;br /&gt;
# Submit a Topic: Impersonate each participant, choose a topic and submit something.&lt;br /&gt;
# Change topic Deadline: Change deadline of each topic and let each topic be in different stages (like submission round 1, review round 1, submission round 2 and review round 2)&lt;br /&gt;
# View topic stage: Impersonate each participant and check their topic’s current stage on student_task#list view.&lt;br /&gt;
# Submit reviews:  Participant with topic in review stage can review other participant’s work, ensuring that right rubrics are used for different topics.The reviewers can fill in the rubrics, save and submit their reviews successfully. &lt;br /&gt;
&lt;br /&gt;
==== Create an Assignment: ====&lt;br /&gt;
# Login as instructor 'instructor6'&lt;br /&gt;
# Click on 'Create public assignment'.&lt;br /&gt;
# Fill in the textboxes with assignment name, and assignment directory and other necessary details.&lt;br /&gt;
# Click the 'Create' button.&lt;br /&gt;
# Click on the link 'Rubrics'.&lt;br /&gt;
# Check the box 'Review rubric varies by round?'.&lt;br /&gt;
# Click on 'Save'.&lt;br /&gt;
# Click the link 'Topics'. &lt;br /&gt;
# Click on 'New topic'&lt;br /&gt;
# Fill in the Topic id, Topic name,Topic category and Number of slots.&lt;br /&gt;
# Click 'Create'.&lt;br /&gt;
After returning, the assignment created is listed under 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
==== Add Participants to Newly Created Assignment: ====&lt;br /&gt;
# Create a new assignment 'Assignment1665' using factories, with two review rounds and Staggered Deadline enabled. &lt;br /&gt;
# Added three participants to the newly created assignment using factories. &lt;br /&gt;
&lt;br /&gt;
==== Submit a topic: ====&lt;br /&gt;
# Create a stub to Impersonate the student 'student2064'.&lt;br /&gt;
# Click on 'Assignment1665' from the task list.&lt;br /&gt;
# Click on ‘Your Work’. &lt;br /&gt;
# Fill in the textbox with the submission link.&lt;br /&gt;
# Click on ‘upload link’&lt;br /&gt;
On clicking the 'upload' button, the submitted link is displayed on the page.&lt;br /&gt;
&lt;br /&gt;
==== Change Topic Deadline: ====&lt;br /&gt;
# Create an assignment 'Assignment1665' using factories, with two rounds of reviews, and the staggered deadline functionality enabled.&lt;br /&gt;
# Create different types of deadlines with names 'submission', 'review', 'metareview', 'drop_topic', 'signup' and 'team_formation'.&lt;br /&gt;
# Create two topics 'Topic_1' and 'Topic_2' under 'Assignment1665' using factories.&lt;br /&gt;
# Create assignment due dates for 'submission' and 'review' for two rounds using factories. &lt;br /&gt;
# Set the topic due dates to corresponding assignment due dates using factories.&lt;br /&gt;
# Change the different deadlines of one topic to different dates.  &lt;br /&gt;
On returning, click on 'Assignments' tab, and click on 'Edit' under 'Actions'. Click on the 'Topics' tab and then click the link 'Show start/due dates'. The instructor should be able to see the changed due dates for each of the topics&lt;br /&gt;
&lt;br /&gt;
==== View Topic Stages: ====&lt;br /&gt;
# Change the deadline date of topic assigned to 'student2064' to a past date and change deadline date of topic assigned to 'student2065' to a future date.&lt;br /&gt;
# Impersonate a participant 'student2064' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Review'&lt;br /&gt;
# Impersonate 'student2065' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Submission'&lt;br /&gt;
&lt;br /&gt;
==== Submit Review: ====&lt;br /&gt;
# Impersonate 'student2064' using a stub.&lt;br /&gt;
# Click on the link 'Assignment1665'.&lt;br /&gt;
# Click on the link 'Others' work'.&lt;br /&gt;
# Select a topic to be reviewed.&lt;br /&gt;
# Click on the link 'Begin'.&lt;br /&gt;
# The student can see 'Questionnare1' for the review round 1.&lt;br /&gt;
# Fill in the response checkboxes.&lt;br /&gt;
# Click the button 'Save Review'.&lt;br /&gt;
On returning, the reviewer should be able to see the 'View' option for the reviews done.&lt;br /&gt;
== Execution ==&lt;br /&gt;
The command used to execute the RSpec test was 'rspec /spec/features/staggered_deadline_spec.rb'.&lt;br /&gt;
[[File:Execution.jpg.jpg|center|thumb|981x981px]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Expertiza]&lt;br /&gt;
# [http://rspec.info/documentation/ RSpec Documentation]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Capybara_(software) Capybara]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Functional_testing Functional Testing]&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Execution_of_expertiza.png&amp;diff=103646</id>
		<title>File:Execution of expertiza.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Execution_of_expertiza.png&amp;diff=103646"/>
		<updated>2016-10-29T02:09:54Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=103644</id>
		<title>CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=103644"/>
		<updated>2016-10-29T02:09:25Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: /* Execution */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is a web application which enables students to choose a topic in an assignment, submit assignmnets and peer review others' work. This application also allows the instructors to add assignments to a course, and create multiple topics with varying rubrics and different deadlines for an assignment. The Expertiza project is developed on Open Source Software (OSS) and is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
=== Rspec ===&lt;br /&gt;
[http://rspec.info/documentation/ Rspec] is a behavior-driven development tool for Ruby programmers which helps write human readable specifications that direct and validate the development of an application. RSpec is composed of multiple libraries which can be used together or independently with other testing tools like Capybara and Cucumber. There are four parts of RSpec. They are:&lt;br /&gt;
# rspec-core &lt;br /&gt;
# rspec-expectations&lt;br /&gt;
# rspec-mocks&lt;br /&gt;
# rspec-rails&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[[Capybara (software)|Capybara]] is a web-based test automation software that simulates scenarios for user stories. It can automate web application testing for behavior-driven software development (BDD). It is a gem that can be used on top of a web-based driver. It offers a user-friendly domain specific language to describe a sequence of actions executed by the web driver. It is a part of the Cucumber testing framework.&lt;br /&gt;
&lt;br /&gt;
It is supported by the following web-based drivers:&lt;br /&gt;
* RackTest&lt;br /&gt;
* Selenium&lt;br /&gt;
* Capybara-webkit&lt;br /&gt;
&lt;br /&gt;
=== Functional Testing ===&lt;br /&gt;
[[Functional testing]] is a type of black-box testing used in quality assurance, Functional tests are done by feeding the inputs and checking the outputs giving least importance to the internal structure of the program. It describes what the system does. Functional testing verifies a program by checking it against the specification documents. There are different types of functional testing:&lt;br /&gt;
* Smoke testing&lt;br /&gt;
* Sanity testing&lt;br /&gt;
* Regression testing&lt;br /&gt;
* Usability testing &lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
This project is to write RSpec tests to test functionality of Staggered deadline in Expertiza using Capybara. The procedures to be tested are:&lt;br /&gt;
* Create an assignment.&lt;br /&gt;
* Submit a topic.&lt;br /&gt;
* Change a topic deadline.&lt;br /&gt;
* View topic stage.&lt;br /&gt;
* Submit reviews.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
Our test plan is divided into the following steps:&lt;br /&gt;
# Create an assignment: Create an assignment with topic with varying rubric by round feature.&lt;br /&gt;
# Add participants to newly created assignment. &lt;br /&gt;
# Submit a Topic: Impersonate each participant, choose a topic and submit something.&lt;br /&gt;
# Change topic Deadline: Change deadline of each topic and let each topic be in different stages (like submission round 1, review round 1, submission round 2 and review round 2)&lt;br /&gt;
# View topic stage: Impersonate each participant and check their topic’s current stage on student_task#list view.&lt;br /&gt;
# Submit reviews:  Participant with topic in review stage can review other participant’s work, ensuring that right rubrics are used for different topics.The reviewers can fill in the rubrics, save and submit their reviews successfully. &lt;br /&gt;
&lt;br /&gt;
==== Create an Assignment: ====&lt;br /&gt;
# Login as instructor 'instructor6'&lt;br /&gt;
# Click on 'Create public assignment'.&lt;br /&gt;
# Fill in the textboxes with assignment name, and assignment directory and other necessary details.&lt;br /&gt;
# Click the 'Create' button.&lt;br /&gt;
# Click on the link 'Rubrics'.&lt;br /&gt;
# Check the box 'Review rubric varies by round?'.&lt;br /&gt;
# Click on 'Save'.&lt;br /&gt;
# Click the link 'Topics'. &lt;br /&gt;
# Click on 'New topic'&lt;br /&gt;
# Fill in the Topic id, Topic name,Topic category and Number of slots.&lt;br /&gt;
# Click 'Create'.&lt;br /&gt;
After returning, the assignment created is listed under 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
==== Add Participants to Newly Created Assignment: ====&lt;br /&gt;
# Create a new assignment 'Assignment1665' using factories, with two review rounds and Staggered Deadline enabled. &lt;br /&gt;
# Added three participants to the newly created assignment using factories. &lt;br /&gt;
&lt;br /&gt;
==== Submit a topic: ====&lt;br /&gt;
# Create a stub to Impersonate the student 'student2064'.&lt;br /&gt;
# Click on 'Assignment1665' from the task list.&lt;br /&gt;
# Click on ‘Your Work’. &lt;br /&gt;
# Fill in the textbox with the submission link.&lt;br /&gt;
# Click on ‘upload link’&lt;br /&gt;
On clicking the 'upload' button, the submitted link is displayed on the page.&lt;br /&gt;
&lt;br /&gt;
==== Change Topic Deadline: ====&lt;br /&gt;
# Create an assignment 'Assignment1665' using factories, with two rounds of reviews, and the staggered deadline functionality enabled.&lt;br /&gt;
# Create different types of deadlines with names 'submission', 'review', 'metareview', 'drop_topic', 'signup' and 'team_formation'.&lt;br /&gt;
# Create two topics 'Topic_1' and 'Topic_2' under 'Assignment1665' using factories.&lt;br /&gt;
# Create assignment due dates for 'submission' and 'review' for two rounds using factories. &lt;br /&gt;
# Set the topic due dates to corresponding assignment due dates using factories.&lt;br /&gt;
# Change the different deadlines of one topic to different dates.  &lt;br /&gt;
On returning, click on 'Assignments' tab, and click on 'Edit' under 'Actions'. Click on the 'Topics' tab and then click the link 'Show start/due dates'. The instructor should be able to see the changed due dates for each of the topics&lt;br /&gt;
&lt;br /&gt;
==== View Topic Stages: ====&lt;br /&gt;
# Change the deadline date of topic assigned to 'student2064' to a past date and change deadline date of topic assigned to 'student2065' to a future date.&lt;br /&gt;
# Impersonate a participant 'student2064' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Review'&lt;br /&gt;
# Impersonate 'student2065' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Submission'&lt;br /&gt;
&lt;br /&gt;
==== Submit Review: ====&lt;br /&gt;
# Impersonate 'student2064' using a stub.&lt;br /&gt;
# Click on the link 'Assignment1665'.&lt;br /&gt;
# Click on the link 'Others' work'.&lt;br /&gt;
# Select a topic to be reviewed.&lt;br /&gt;
# Click on the link 'Begin'.&lt;br /&gt;
# The student can see 'Questionnare1' for the review round 1.&lt;br /&gt;
# Fill in the response checkboxes.&lt;br /&gt;
# Click the button 'Save Review'.&lt;br /&gt;
On returning, the reviewer should be able to see the 'View' option for the reviews done.&lt;br /&gt;
&lt;br /&gt;
== Execution ==&lt;br /&gt;
[[File:execution_of_expertiza.png]]&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Expertiza]&lt;br /&gt;
# [http://rspec.info/documentation/ RSpec Documentation]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Capybara_(software) Capybara]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Functional_testing Functional Testing]&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Execution_of_expertiza.PNG&amp;diff=103642</id>
		<title>File:Execution of expertiza.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Execution_of_expertiza.PNG&amp;diff=103642"/>
		<updated>2016-10-29T02:08:33Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: Execution of Summary&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Execution of Summary&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=103634</id>
		<title>CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=103634"/>
		<updated>2016-10-29T02:01:53Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is a web application which enables students to choose a topic in an assignment, submit assignmnets and peer review others' work. This application also allows the instructors to add assignments to a course, and create multiple topics with varying rubrics and different deadlines for an assignment. The Expertiza project is developed on Open Source Software (OSS) and is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
=== Rspec ===&lt;br /&gt;
[http://rspec.info/documentation/ Rspec] is a behavior-driven development tool for Ruby programmers which helps write human readable specifications that direct and validate the development of an application. RSpec is composed of multiple libraries which can be used together or independently with other testing tools like Capybara and Cucumber. There are four parts of RSpec. They are:&lt;br /&gt;
# rspec-core &lt;br /&gt;
# rspec-expectations&lt;br /&gt;
# rspec-mocks&lt;br /&gt;
# rspec-rails&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[[Capybara (software)|Capybara]] is a web-based test automation software that simulates scenarios for user stories. It can automate web application testing for behavior-driven software development (BDD). It is a gem that can be used on top of a web-based driver. It offers a user-friendly domain specific language to describe a sequence of actions executed by the web driver. It is a part of the Cucumber testing framework.&lt;br /&gt;
&lt;br /&gt;
It is supported by the following web-based drivers:&lt;br /&gt;
* RackTest&lt;br /&gt;
* Selenium&lt;br /&gt;
* Capybara-webkit&lt;br /&gt;
&lt;br /&gt;
=== Functional Testing ===&lt;br /&gt;
[[Functional testing]] is a type of black-box testing used in quality assurance, Functional tests are done by feeding the inputs and checking the outputs giving least importance to the internal structure of the program. It describes what the system does. Functional testing verifies a program by checking it against the specification documents. There are different types of functional testing:&lt;br /&gt;
* Smoke testing&lt;br /&gt;
* Sanity testing&lt;br /&gt;
* Regression testing&lt;br /&gt;
* Usability testing &lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
This project is to write RSpec tests to test functionality of Staggered deadline in Expertiza using Capybara. The procedures to be tested are:&lt;br /&gt;
* Create an assignment.&lt;br /&gt;
* Submit a topic.&lt;br /&gt;
* Change a topic deadline.&lt;br /&gt;
* View topic stage.&lt;br /&gt;
* Submit reviews.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
Our test plan is divided into the following steps:&lt;br /&gt;
# Create an assignment: Create an assignment with topic with varying rubric by round feature.&lt;br /&gt;
# Add participants to newly created assignment. &lt;br /&gt;
# Submit a Topic: Impersonate each participant, choose a topic and submit something.&lt;br /&gt;
# Change topic Deadline: Change deadline of each topic and let each topic be in different stages (like submission round 1, review round 1, submission round 2 and review round 2)&lt;br /&gt;
# View topic stage: Impersonate each participant and check their topic’s current stage on student_task#list view.&lt;br /&gt;
# Submit reviews:  Participant with topic in review stage can review other participant’s work, ensuring that right rubrics are used for different topics.The reviewers can fill in the rubrics, save and submit their reviews successfully. &lt;br /&gt;
&lt;br /&gt;
==== Create an Assignment: ====&lt;br /&gt;
# Login as instructor 'instructor6'&lt;br /&gt;
# Click on 'Create public assignment'.&lt;br /&gt;
# Fill in the textboxes with assignment name, and assignment directory and other necessary details.&lt;br /&gt;
# Click the 'Create' button.&lt;br /&gt;
# Click on the link 'Rubrics'.&lt;br /&gt;
# Check the box 'Review rubric varies by round?'.&lt;br /&gt;
# Click on 'Save'.&lt;br /&gt;
# Click the link 'Topics'. &lt;br /&gt;
# Click on 'New topic'&lt;br /&gt;
# Fill in the Topic id, Topic name,Topic category and Number of slots.&lt;br /&gt;
# Click 'Create'.&lt;br /&gt;
After returning, the assignment created is listed under 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
==== Add Participants to Newly Created Assignment: ====&lt;br /&gt;
# Create a new assignment 'Assignment1665' using factories, with two review rounds and Staggered Deadline enabled. &lt;br /&gt;
# Added three participants to the newly created assignment using factories. &lt;br /&gt;
&lt;br /&gt;
==== Submit a topic: ====&lt;br /&gt;
# Create a stub to Impersonate the student 'student2064'.&lt;br /&gt;
# Click on 'Assignment1665' from the task list.&lt;br /&gt;
# Click on ‘Your Work’. &lt;br /&gt;
# Fill in the textbox with the submission link.&lt;br /&gt;
# Click on ‘upload link’&lt;br /&gt;
On clicking the 'upload' button, the submitted link is displayed on the page.&lt;br /&gt;
&lt;br /&gt;
==== Change Topic Deadline: ====&lt;br /&gt;
# Create an assignment 'Assignment1665' using factories, with two rounds of reviews, and the staggered deadline functionality enabled.&lt;br /&gt;
# Create different types of deadlines with names 'submission', 'review', 'metareview', 'drop_topic', 'signup' and 'team_formation'.&lt;br /&gt;
# Create two topics 'Topic_1' and 'Topic_2' under 'Assignment1665' using factories.&lt;br /&gt;
# Create assignment due dates for 'submission' and 'review' for two rounds using factories. &lt;br /&gt;
# Set the topic due dates to corresponding assignment due dates using factories.&lt;br /&gt;
# Change the different deadlines of one topic to different dates.  &lt;br /&gt;
On returning, click on 'Assignments' tab, and click on 'Edit' under 'Actions'. Click on the 'Topics' tab and then click the link 'Show start/due dates'. The instructor should be able to see the changed due dates for each of the topics&lt;br /&gt;
&lt;br /&gt;
==== View Topic Stages: ====&lt;br /&gt;
# Change the deadline date of topic assigned to 'student2064' to a past date and change deadline date of topic assigned to 'student2065' to a future date.&lt;br /&gt;
# Impersonate a participant 'student2064' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Review'&lt;br /&gt;
# Impersonate 'student2065' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Submission'&lt;br /&gt;
&lt;br /&gt;
==== Submit Review: ====&lt;br /&gt;
# Impersonate 'student2064' using a stub.&lt;br /&gt;
# Click on the link 'Assignment1665'.&lt;br /&gt;
# Click on the link 'Others' work'.&lt;br /&gt;
# Select a topic to be reviewed.&lt;br /&gt;
# Click on the link 'Begin'.&lt;br /&gt;
# The student can see 'Questionnare1' for the review round 1.&lt;br /&gt;
# Fill in the response checkboxes.&lt;br /&gt;
# Click the button 'Save Review'.&lt;br /&gt;
On returning, the reviewer should be able to see the 'View' option for the reviews done.&lt;br /&gt;
&lt;br /&gt;
== Execution ==&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
# [https://github.com/expertiza/expertiza Expertiza]&lt;br /&gt;
# [http://rspec.info/documentation/ RSpec Documentation]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Capybara_(software) Capybara]&lt;br /&gt;
# [https://en.wikipedia.org/wiki/Functional_testing Functional Testing]&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=103471</id>
		<title>CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016/E1665._Test_staggered-deadline_functionality&amp;diff=103471"/>
		<updated>2016-10-29T00:50:54Z</updated>

		<summary type="html">&lt;p&gt;Dsiva: Staggered Deadline&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Expertiza is a web application which enables students to choose a topic in an assignment, submit assignmnets and peer review others' work. This application also allows the instructors to add assignments to a course, and create multiple topics with varying rubrics and different deadlines for an assignment. The Expertiza project is developed on Open Source Software (OSS) and is supported by the National Science Foundation.&lt;br /&gt;
&lt;br /&gt;
== Background ==&lt;br /&gt;
&lt;br /&gt;
=== Rspec ===&lt;br /&gt;
Rspec is a behavior-driven development tool for Ruby programmers which helps write human readable specifications that direct and validate the development of an application. RSpec is composed of multiple libraries which can be used together or independently with other testing tools like Capybara and Cucumber. There are four parts of RSpec. They are:&lt;br /&gt;
# rspec-core: &lt;br /&gt;
# rspec-expectations:&lt;br /&gt;
# rspec-mocks:&lt;br /&gt;
# rspec-rails:&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
Capybara is a web-based test automation software that simulates scenarios for user stories. It can automate web application testing for behavior-driven software development (BDD). It is a gem that can be used on top of a web-based driver. It offers a user-friendly domain specific language to describe a sequence of actions executed by the web driver. It is a part of the Cucumber testing framework.&lt;br /&gt;
&lt;br /&gt;
It is supported by the following web-based drivers:&lt;br /&gt;
* RackTest&lt;br /&gt;
* Selenium&lt;br /&gt;
* Capybara-webkit&lt;br /&gt;
&lt;br /&gt;
=== Functional Testing ===&lt;br /&gt;
Functional testing is a type of black-box testing used in quality assurance, Functional tests are done by feeding the inputs and checking the outputs giving least importance to the internal structure of the program. It describes what the system does. Functional testing verifies a program by checking it against the specification documents. There are different types of functional testing:&lt;br /&gt;
* Smoke testing&lt;br /&gt;
* Sanity testing&lt;br /&gt;
* Regression testing&lt;br /&gt;
* Usability testing &lt;br /&gt;
&lt;br /&gt;
== Project Description ==&lt;br /&gt;
This project is to write RSpec tests to test functionality of Staggered deadline in Expertiza using Capybara. The procedures to be tested are:&lt;br /&gt;
* Create an assignment.&lt;br /&gt;
* Submit a topic.&lt;br /&gt;
* Change a topic deadline.&lt;br /&gt;
* View topic stage.&lt;br /&gt;
* Submit reviews.&lt;br /&gt;
&lt;br /&gt;
== Test Plan ==&lt;br /&gt;
Our test plan is divided into the following steps:&lt;br /&gt;
# Create an assignment: Create an assignment with topic with varying rubric by round feature.&lt;br /&gt;
# Add participants to newly created assignment. &lt;br /&gt;
# Submit a Topic: Impersonate each participant, choose a topic and submit something.&lt;br /&gt;
# Change topic Deadline: Change deadline of each topic and let each topic be in different stages (like submission round 1, review round 1, submission round 2 and review round 2)&lt;br /&gt;
# View topic stage: Impersonate each participant and check their topic’s current stage on student_task#list view.&lt;br /&gt;
# Submit reviews:  Participant with topic in review stage can review other participant’s work, ensuring that right rubrics are used for different topics.The reviewers can fill in the rubrics, save and submit their reviews successfully. &lt;br /&gt;
&lt;br /&gt;
==== Create an Assignment: ====&lt;br /&gt;
# Login as instructor 'instructor6'&lt;br /&gt;
# Click on 'Create public assignment'.&lt;br /&gt;
# Fill in the textboxes with assignment name, and assignment directory and other necessary details.&lt;br /&gt;
# Click the 'Create' button.&lt;br /&gt;
# Click on the link 'Rubrics'.&lt;br /&gt;
# Check the box 'Review rubric varies by round?'.&lt;br /&gt;
# Click on 'Save'.&lt;br /&gt;
# Click the link 'Topics'. &lt;br /&gt;
# Click on 'New topic'&lt;br /&gt;
# Fill in the Topic id, Topic name,Topic category and Number of slots.&lt;br /&gt;
# Click 'Create'.&lt;br /&gt;
After returning, the assignment created is listed under 'Assignments' tab.&lt;br /&gt;
&lt;br /&gt;
==== Add Participants to Newly Created Assignment: ====&lt;br /&gt;
# Create a new assignment 'Assignment1665' using factories, with two review rounds and Staggered Deadline enabled. &lt;br /&gt;
# Added three participants to the newly created assignment using factories. &lt;br /&gt;
&lt;br /&gt;
==== Submit a topic: ====&lt;br /&gt;
# Create a stub to Impersonate the student 'student2064'.&lt;br /&gt;
# Click on 'Assignment1665' from the task list.&lt;br /&gt;
# Click on ‘Your Work’. &lt;br /&gt;
# Fill in the textbox with the submission link.&lt;br /&gt;
# Click on ‘upload link’&lt;br /&gt;
On clicking the 'upload' button, the submitted link is displayed on the page.&lt;br /&gt;
&lt;br /&gt;
==== Change Topic Deadline: ====&lt;br /&gt;
# Create an assignment 'Assignment1665' using factories, with two rounds of reviews, and the staggered deadline functionality enabled.&lt;br /&gt;
# Create different types of deadlines with names 'submission', 'review', 'metareview', 'drop_topic', 'signup' and 'team_formation'.&lt;br /&gt;
# Create two topics 'Topic_1' and 'Topic_2' under 'Assignment1665' using factories.&lt;br /&gt;
# Create assignment due dates for 'submission' and 'review' for two rounds using factories. &lt;br /&gt;
# Set the topic due dates to corresponding assignment due dates using factories.&lt;br /&gt;
# Change the different deadlines of one topic to different dates.  &lt;br /&gt;
On returning, click on 'Assignments' tab, and click on 'Edit' under 'Actions'. Click on the 'Topics' tab and then click the link 'Show start/due dates'. The instructor should be able to see the changed due dates for each of the topics&lt;br /&gt;
&lt;br /&gt;
==== View Topic Stages: ====&lt;br /&gt;
# Change the deadline date of topic assigned to 'student2064' to a past date and change deadline date of topic assigned to 'student2065' to a future date.&lt;br /&gt;
# Impersonate a participant 'student2064' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Review'&lt;br /&gt;
# Impersonate 'student2065' using a stub.&lt;br /&gt;
# Click on 'Assignments' tab on top of the page.&lt;br /&gt;
# The page should display the current stage of 'Assignment1665' as 'Submission'&lt;br /&gt;
&lt;br /&gt;
==== Submit Review: ====&lt;br /&gt;
# Impersonate 'student2064' using a stub.&lt;br /&gt;
# Click on the link 'Assignment1665'.&lt;br /&gt;
# Click on the link 'Others' work'.&lt;br /&gt;
# Select a topic to be reviewed.&lt;br /&gt;
# Click on the link 'Begin'.&lt;br /&gt;
# The student can see 'Questionnare1' for the review round 1.&lt;br /&gt;
# Fill in the response checkboxes.&lt;br /&gt;
# Click the button 'Save Review'.&lt;br /&gt;
On returning, the reviewer should be able to see the 'View' option for the reviews done.&lt;br /&gt;
&lt;br /&gt;
== Execution ==&lt;/div&gt;</summary>
		<author><name>Dsiva</name></author>
	</entry>
</feed>