<?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=Lshi7</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=Lshi7"/>
	<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Special:Contributions/Lshi7"/>
	<updated>2026-09-17T13:18:45Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105510</id>
		<title>CSC/ECE 517 Fall 2016 E1684: Feature Test for Assignment Submission</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105510"/>
		<updated>2016-11-13T23:59:44Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is an open-source project on GitHub used by students to view/submit assignments and review others' work. Expertiza also provides tools to visualize the scores and gauge the improvements made during the course semester. It also facilitates and monitors team projects. It is targeted at educational and non-profit organizations.&lt;br /&gt;
&lt;br /&gt;
== '''Project Requirement''' ==&lt;br /&gt;
&lt;br /&gt;
There should be a feature test for submission of the assignment by the student. Once the assignment is created by the instructor the only call to action for the student is assignment submission. The purpose of this project is to test whether the submission function could work properly under different scenarios:&lt;br /&gt;
&lt;br /&gt;
# Upload valid link&lt;br /&gt;
# Upload invalid link&lt;br /&gt;
# Upload multiple links&lt;br /&gt;
# Upload empty link&lt;br /&gt;
# Upload file&lt;br /&gt;
&lt;br /&gt;
== '''Background''' ==&lt;br /&gt;
&lt;br /&gt;
=== Travis CI ===&lt;br /&gt;
[https://travis-ci.org Travis CI] is a hosted, distributed continuous integration service used to build and test software projects hosted at GitHub. &lt;br /&gt;
&lt;br /&gt;
'''Configuration:'''&lt;br /&gt;
Travis CI is configured by adding a file named .travis.yml, which is a YAML format text file, to the root directory of the repository. This file specifies the programming language used, the desired building and testing environment (including dependencies which must be installed before the software can be built and tested), and various other parameters.&lt;br /&gt;
&lt;br /&gt;
'''Operation:'''&lt;br /&gt;
When Travis CI has been activated for a given repository, GitHub will notify it whenever new commits are pushed to that repository or a pull request is submitted. It can also be configured to only run for specific branches, or branches whose names match a specific pattern. Travis CI will then check out the relevant branch and run the commands specified in .travis.yml, which usually build the software and run any automated tests. When that process has completed, Travis notifies the developer(s) in the way it has been configured to do so—for example, by sending an email containing the test results (showing success or failure), or by posting a message on an IRC channel. In the case of pull requests, the pull request will be annotated with the outcome and a link to the build log, using a GitHub integration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[https://github.com/jnicklas/capybara Capybara] supports selenium-webdriver, which is mostly used in web-based automation frameworks. It supports JavaScript, can access HTTP resources outside of application, and can also be setup for testing in headless mode which is especially useful for CI scenarios.&lt;br /&gt;
&lt;br /&gt;
'''Using Capybara with [http://rspec.info/ RSpec]:'''&lt;br /&gt;
Load RSpec 2.x support by adding the following line(typically to the spec_helper.rb file):&lt;br /&gt;
 ''require 'capybara/rspec' &lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Approach''' ==&lt;br /&gt;
1. First, using [https://github.com/expertiza/expertiza/blob/master/spec/factories/factories.rb factories] to create test data: create assignment, create topic, create participant. &lt;br /&gt;
 ''before(:each) do&lt;br /&gt;
       create(:assignment, name: &amp;quot;Assignment1684&amp;quot;, directory_path: &amp;quot;Assignment1684&amp;quot;)&lt;br /&gt;
       create_list(:participant, 3)&lt;br /&gt;
       create(:topic, topic_name: &amp;quot;Topic&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;submission&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;review&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;metareview&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;drop_topic&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;signup&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;team_formation&amp;quot;)&lt;br /&gt;
       create(:deadline_right)&lt;br /&gt;
       create(:deadline_right, name: 'Late')&lt;br /&gt;
       create(:deadline_right, name: 'OK')&lt;br /&gt;
       create(:assignment_due_date, deadline_type: DeadlineType.where(name: &amp;quot;submission&amp;quot;).first, due_at: DateTime.now + 1)&lt;br /&gt;
   end''&lt;br /&gt;
2. Mock the workflow of Assignment submission using Capybara.&lt;br /&gt;
&lt;br /&gt;
[[File:Work flow.png]]&lt;br /&gt;
&lt;br /&gt;
3. Check the result of the submission both from webpage and database. &lt;br /&gt;
&lt;br /&gt;
In database level, the submission results are stored in table: TEAMS.&lt;br /&gt;
&lt;br /&gt;
[[File:Teams.jpg]]&lt;/div&gt;</summary>
		<author><name>Lshi7</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105509</id>
		<title>CSC/ECE 517 Fall 2016 E1684: Feature Test for Assignment Submission</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105509"/>
		<updated>2016-11-13T23:57:33Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is an open-source project on GitHub used by students to view/submit assignments and review others' work. Expertiza also provides tools to visualize the scores and gauge the improvements made during the course semester. It also facilitates and monitors team projects. It is targeted at educational and non-profit organizations.&lt;br /&gt;
&lt;br /&gt;
== '''Project Requirement''' ==&lt;br /&gt;
&lt;br /&gt;
There should be a feature test for submission of the assignment by the student. Once the assignment is created by the instructor the only call to action for the student is assignment submission. The purpose of this project is to test whether the submission function could work properly under different scenarios:&lt;br /&gt;
&lt;br /&gt;
# Upload valid link&lt;br /&gt;
# Upload invalid link&lt;br /&gt;
# Upload multiple links&lt;br /&gt;
# Upload empty link&lt;br /&gt;
# Upload file&lt;br /&gt;
&lt;br /&gt;
== '''Background''' ==&lt;br /&gt;
&lt;br /&gt;
=== Travis CI ===&lt;br /&gt;
[https://travis-ci.org Travis CI] is a hosted, distributed continuous integration service used to build and test software projects hosted at GitHub. &lt;br /&gt;
&lt;br /&gt;
'''Configuration:'''&lt;br /&gt;
Travis CI is configured by adding a file named .travis.yml, which is a YAML format text file, to the root directory of the repository. This file specifies the programming language used, the desired building and testing environment (including dependencies which must be installed before the software can be built and tested), and various other parameters.&lt;br /&gt;
&lt;br /&gt;
'''Operation:'''&lt;br /&gt;
When Travis CI has been activated for a given repository, GitHub will notify it whenever new commits are pushed to that repository or a pull request is submitted. It can also be configured to only run for specific branches, or branches whose names match a specific pattern. Travis CI will then check out the relevant branch and run the commands specified in .travis.yml, which usually build the software and run any automated tests. When that process has completed, Travis notifies the developer(s) in the way it has been configured to do so—for example, by sending an email containing the test results (showing success or failure), or by posting a message on an IRC channel. In the case of pull requests, the pull request will be annotated with the outcome and a link to the build log, using a GitHub integration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[https://github.com/jnicklas/capybara Capybara] supports selenium-webdriver, which is mostly used in web-based automation frameworks. It supports JavaScript, can access HTTP resources outside of application, and can also be setup for testing in headless mode which is especially useful for CI scenarios.&lt;br /&gt;
&lt;br /&gt;
'''Using Capybara with [http://rspec.info/ RSpec]:'''&lt;br /&gt;
Load RSpec 2.x support by adding the following line(typically to the spec_helper.rb file):&lt;br /&gt;
 ''require 'capybara/rspec' &lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Approach''' ==&lt;br /&gt;
1. First, using [https://github.com/expertiza/expertiza/blob/master/spec/factories/factories.rb factories] to create test data: create assignment, create topic, create participant. &lt;br /&gt;
 ''before(:each) do&lt;br /&gt;
       create(:assignment, name: &amp;quot;Assignment1684&amp;quot;, directory_path: &amp;quot;Assignment1684&amp;quot;)&lt;br /&gt;
       create_list(:participant, 3)&lt;br /&gt;
       create(:topic, topic_name: &amp;quot;Topic&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;submission&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;review&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;metareview&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;drop_topic&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;signup&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;team_formation&amp;quot;)&lt;br /&gt;
       create(:deadline_right)&lt;br /&gt;
       create(:deadline_right, name: 'Late')&lt;br /&gt;
       create(:deadline_right, name: 'OK')&lt;br /&gt;
       create(:assignment_due_date, deadline_type: DeadlineType.where(name: &amp;quot;submission&amp;quot;).first, due_at: DateTime.now + 1)&lt;br /&gt;
   end''&lt;br /&gt;
2. Mock the workflow of Assignment submission using Capybara.&lt;br /&gt;
&lt;br /&gt;
3. Check the result of the submission both from webpage and database. &lt;br /&gt;
&lt;br /&gt;
In database level, the submission results are stored in table: TEAMS.&lt;br /&gt;
&lt;br /&gt;
[[File:Teams.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
Insert test database: create assignment, create topic, create participant.&lt;br /&gt;
&lt;br /&gt;
Student login -&amp;gt; click on the assignment -&amp;gt; upload link or upload file&lt;br /&gt;
&lt;br /&gt;
[[File:Work flow.png]]&lt;/div&gt;</summary>
		<author><name>Lshi7</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105508</id>
		<title>CSC/ECE 517 Fall 2016 E1684: Feature Test for Assignment Submission</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105508"/>
		<updated>2016-11-13T23:57:16Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is an open-source project on GitHub used by students to view/submit assignments and review others' work. Expertiza also provides tools to visualize the scores and gauge the improvements made during the course semester. It also facilitates and monitors team projects. It is targeted at educational and non-profit organizations.&lt;br /&gt;
&lt;br /&gt;
== '''Project Requirement''' ==&lt;br /&gt;
&lt;br /&gt;
There should be a feature test for submission of the assignment by the student. Once the assignment is created by the instructor the only call to action for the student is assignment submission. The purpose of this project is to test whether the submission function could work properly under different scenarios:&lt;br /&gt;
&lt;br /&gt;
# Upload valid link&lt;br /&gt;
# Upload invalid link&lt;br /&gt;
# Upload multiple links&lt;br /&gt;
# Upload empty link&lt;br /&gt;
# Upload file&lt;br /&gt;
&lt;br /&gt;
== '''Background''' ==&lt;br /&gt;
&lt;br /&gt;
=== Travis CI ===&lt;br /&gt;
[https://travis-ci.org Travis CI] is a hosted, distributed continuous integration service used to build and test software projects hosted at GitHub. &lt;br /&gt;
&lt;br /&gt;
'''Configuration:'''&lt;br /&gt;
Travis CI is configured by adding a file named .travis.yml, which is a YAML format text file, to the root directory of the repository. This file specifies the programming language used, the desired building and testing environment (including dependencies which must be installed before the software can be built and tested), and various other parameters.&lt;br /&gt;
&lt;br /&gt;
'''Operation:'''&lt;br /&gt;
When Travis CI has been activated for a given repository, GitHub will notify it whenever new commits are pushed to that repository or a pull request is submitted. It can also be configured to only run for specific branches, or branches whose names match a specific pattern. Travis CI will then check out the relevant branch and run the commands specified in .travis.yml, which usually build the software and run any automated tests. When that process has completed, Travis notifies the developer(s) in the way it has been configured to do so—for example, by sending an email containing the test results (showing success or failure), or by posting a message on an IRC channel. In the case of pull requests, the pull request will be annotated with the outcome and a link to the build log, using a GitHub integration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[https://github.com/jnicklas/capybara Capybara] supports selenium-webdriver, which is mostly used in web-based automation frameworks. It supports JavaScript, can access HTTP resources outside of application, and can also be setup for testing in headless mode which is especially useful for CI scenarios.&lt;br /&gt;
&lt;br /&gt;
'''Using Capybara with [http://rspec.info/ RSpec]:'''&lt;br /&gt;
Load RSpec 2.x support by adding the following line(typically to the spec_helper.rb file):&lt;br /&gt;
 ''require 'capybara/rspec' &lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Approach''' ==&lt;br /&gt;
1. First, using [https://github.com/expertiza/expertiza/blob/master/spec/factories/factories.rb factories] to create test data: create assignment, create topic, create participant. &lt;br /&gt;
 ''before(:each) do&lt;br /&gt;
     #create assignment and topic&lt;br /&gt;
       create(:assignment, name: &amp;quot;Assignment1684&amp;quot;, directory_path: &amp;quot;Assignment1684&amp;quot;)&lt;br /&gt;
       create_list(:participant, 3)&lt;br /&gt;
       create(:topic, topic_name: &amp;quot;Topic&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;submission&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;review&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;metareview&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;drop_topic&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;signup&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;team_formation&amp;quot;)&lt;br /&gt;
       create(:deadline_right)&lt;br /&gt;
       create(:deadline_right, name: 'Late')&lt;br /&gt;
       create(:deadline_right, name: 'OK')&lt;br /&gt;
       create(:assignment_due_date, deadline_type: DeadlineType.where(name: &amp;quot;submission&amp;quot;).first, due_at: DateTime.now + 1)&lt;br /&gt;
   end''&lt;br /&gt;
2. Mock the workflow of Assignment submission using Capybara.&lt;br /&gt;
&lt;br /&gt;
3. Check the result of the submission both from webpage and database. &lt;br /&gt;
&lt;br /&gt;
In database level, the submission results are stored in table: TEAMS.&lt;br /&gt;
&lt;br /&gt;
[[File:Teams.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
Insert test database: create assignment, create topic, create participant.&lt;br /&gt;
&lt;br /&gt;
Student login -&amp;gt; click on the assignment -&amp;gt; upload link or upload file&lt;br /&gt;
&lt;br /&gt;
[[File:Work flow.png]]&lt;/div&gt;</summary>
		<author><name>Lshi7</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105507</id>
		<title>CSC/ECE 517 Fall 2016 E1684: Feature Test for Assignment Submission</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105507"/>
		<updated>2016-11-13T23:56:58Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is an open-source project on GitHub used by students to view/submit assignments and review others' work. Expertiza also provides tools to visualize the scores and gauge the improvements made during the course semester. It also facilitates and monitors team projects. It is targeted at educational and non-profit organizations.&lt;br /&gt;
&lt;br /&gt;
== '''Project Requirement''' ==&lt;br /&gt;
&lt;br /&gt;
There should be a feature test for submission of the assignment by the student. Once the assignment is created by the instructor the only call to action for the student is assignment submission. The purpose of this project is to test whether the submission function could work properly under different scenarios:&lt;br /&gt;
&lt;br /&gt;
# Upload valid link&lt;br /&gt;
# Upload invalid link&lt;br /&gt;
# Upload multiple links&lt;br /&gt;
# Upload empty link&lt;br /&gt;
# Upload file&lt;br /&gt;
&lt;br /&gt;
== '''Background''' ==&lt;br /&gt;
&lt;br /&gt;
=== Travis CI ===&lt;br /&gt;
[https://travis-ci.org Travis CI] is a hosted, distributed continuous integration service used to build and test software projects hosted at GitHub. &lt;br /&gt;
&lt;br /&gt;
'''Configuration:'''&lt;br /&gt;
Travis CI is configured by adding a file named .travis.yml, which is a YAML format text file, to the root directory of the repository. This file specifies the programming language used, the desired building and testing environment (including dependencies which must be installed before the software can be built and tested), and various other parameters.&lt;br /&gt;
&lt;br /&gt;
'''Operation:'''&lt;br /&gt;
When Travis CI has been activated for a given repository, GitHub will notify it whenever new commits are pushed to that repository or a pull request is submitted. It can also be configured to only run for specific branches, or branches whose names match a specific pattern. Travis CI will then check out the relevant branch and run the commands specified in .travis.yml, which usually build the software and run any automated tests. When that process has completed, Travis notifies the developer(s) in the way it has been configured to do so—for example, by sending an email containing the test results (showing success or failure), or by posting a message on an IRC channel. In the case of pull requests, the pull request will be annotated with the outcome and a link to the build log, using a GitHub integration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[https://github.com/jnicklas/capybara Capybara] supports selenium-webdriver, which is mostly used in web-based automation frameworks. It supports JavaScript, can access HTTP resources outside of application, and can also be setup for testing in headless mode which is especially useful for CI scenarios.&lt;br /&gt;
&lt;br /&gt;
'''Using Capybara with [http://rspec.info/ RSpec]:'''&lt;br /&gt;
Load RSpec 2.x support by adding the following line(typically to the spec_helper.rb file):&lt;br /&gt;
 ''require 'capybara/rspec' &lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Approach''' ==&lt;br /&gt;
1. First, using [https://github.com/expertiza/expertiza/blob/master/spec/factories/factories.rb factories] to create test data: create assignment, create topic, create participant. &lt;br /&gt;
 ''before(:each) do&lt;br /&gt;
     #create assignment and topic&lt;br /&gt;
       create(:assignment, name: &amp;quot;Assignment1684&amp;quot;, directory_path: &amp;quot;Assignment1684&amp;quot;)&lt;br /&gt;
       create_list(:participant, 3)&lt;br /&gt;
       create(:topic, topic_name: &amp;quot;Topic&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;submission&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;review&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;metareview&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;drop_topic&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;signup&amp;quot;)&lt;br /&gt;
       create(:deadline_type, name: &amp;quot;team_formation&amp;quot;)&lt;br /&gt;
       create(:deadline_right)&lt;br /&gt;
       create(:deadline_right, name: 'Late')&lt;br /&gt;
       create(:deadline_right, name: 'OK')&lt;br /&gt;
       create(:assignment_due_date, deadline_type: DeadlineType.where(name: &amp;quot;submission&amp;quot;).first, due_at: DateTime.now + 1)&lt;br /&gt;
   end''&lt;br /&gt;
2. Mock the workflow of Assignment submission using Capybara.&lt;br /&gt;
3. Check the result of the submission both from webpage and database. &lt;br /&gt;
&lt;br /&gt;
In database level, the submission results are stored in table: TEAMS.&lt;br /&gt;
&lt;br /&gt;
[[File:Teams.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
Insert test database: create assignment, create topic, create participant.&lt;br /&gt;
&lt;br /&gt;
Student login -&amp;gt; click on the assignment -&amp;gt; upload link or upload file&lt;br /&gt;
&lt;br /&gt;
[[File:Work flow.png]]&lt;/div&gt;</summary>
		<author><name>Lshi7</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Teams.jpg&amp;diff=105506</id>
		<title>File:Teams.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Teams.jpg&amp;diff=105506"/>
		<updated>2016-11-13T23:52:08Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lshi7</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105505</id>
		<title>CSC/ECE 517 Fall 2016 E1684: Feature Test for Assignment Submission</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105505"/>
		<updated>2016-11-13T23:51:37Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is an open-source project on GitHub used by students to view/submit assignments and review others' work. Expertiza also provides tools to visualize the scores and gauge the improvements made during the course semester. It also facilitates and monitors team projects. It is targeted at educational and non-profit organizations.&lt;br /&gt;
&lt;br /&gt;
== '''Project Requirement''' ==&lt;br /&gt;
&lt;br /&gt;
There should be a feature test for submission of the assignment by the student. Once the assignment is created by the instructor the only call to action for the student is assignment submission. The purpose of this project is to test whether the submission function could work properly under different scenarios:&lt;br /&gt;
&lt;br /&gt;
# Upload valid link&lt;br /&gt;
# Upload invalid link&lt;br /&gt;
# Upload multiple links&lt;br /&gt;
# Upload empty link&lt;br /&gt;
# Upload file&lt;br /&gt;
&lt;br /&gt;
== '''Background''' ==&lt;br /&gt;
&lt;br /&gt;
=== Travis CI ===&lt;br /&gt;
[https://travis-ci.org Travis CI] is a hosted, distributed continuous integration service used to build and test software projects hosted at GitHub. &lt;br /&gt;
&lt;br /&gt;
'''Configuration:'''&lt;br /&gt;
Travis CI is configured by adding a file named .travis.yml, which is a YAML format text file, to the root directory of the repository. This file specifies the programming language used, the desired building and testing environment (including dependencies which must be installed before the software can be built and tested), and various other parameters.&lt;br /&gt;
&lt;br /&gt;
'''Operation:'''&lt;br /&gt;
When Travis CI has been activated for a given repository, GitHub will notify it whenever new commits are pushed to that repository or a pull request is submitted. It can also be configured to only run for specific branches, or branches whose names match a specific pattern. Travis CI will then check out the relevant branch and run the commands specified in .travis.yml, which usually build the software and run any automated tests. When that process has completed, Travis notifies the developer(s) in the way it has been configured to do so—for example, by sending an email containing the test results (showing success or failure), or by posting a message on an IRC channel. In the case of pull requests, the pull request will be annotated with the outcome and a link to the build log, using a GitHub integration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[https://github.com/jnicklas/capybara Capybara] supports selenium-webdriver, which is mostly used in web-based automation frameworks. It supports JavaScript, can access HTTP resources outside of application, and can also be setup for testing in headless mode which is especially useful for CI scenarios.&lt;br /&gt;
&lt;br /&gt;
'''Using Capybara with [http://rspec.info/ RSpec]:'''&lt;br /&gt;
Load RSpec 2.x support by adding the following line(typically to the spec_helper.rb file):&lt;br /&gt;
 ''require 'capybara/rspec' &lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Approach''' ==&lt;br /&gt;
# First, using [https://github.com/expertiza/expertiza/blob/master/spec/factories/factories.rb factories] to create test data: create assignment, create topic, create participant. &lt;br /&gt;
# Mock the workflow of Assignment submission using Capybara.&lt;br /&gt;
# Check the result of the submission both from webpage and database. &lt;br /&gt;
&lt;br /&gt;
In database level, the submission results are stored in table: TEAMS.&lt;br /&gt;
&lt;br /&gt;
[[File:Teams.jpg]]&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
Insert test database: create assignment, create topic, create participant.&lt;br /&gt;
&lt;br /&gt;
Student login -&amp;gt; click on the assignment -&amp;gt; upload link or upload file&lt;br /&gt;
&lt;br /&gt;
[[File:Work flow.png]]&lt;/div&gt;</summary>
		<author><name>Lshi7</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105504</id>
		<title>CSC/ECE 517 Fall 2016 E1684: Feature Test for Assignment Submission</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105504"/>
		<updated>2016-11-13T23:50:49Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is an open-source project on GitHub used by students to view/submit assignments and review others' work. Expertiza also provides tools to visualize the scores and gauge the improvements made during the course semester. It also facilitates and monitors team projects. It is targeted at educational and non-profit organizations.&lt;br /&gt;
&lt;br /&gt;
== '''Project Requirement''' ==&lt;br /&gt;
&lt;br /&gt;
There should be a feature test for submission of the assignment by the student. Once the assignment is created by the instructor the only call to action for the student is assignment submission. The purpose of this project is to test whether the submission function could work properly under different scenarios:&lt;br /&gt;
&lt;br /&gt;
# Upload valid link&lt;br /&gt;
# Upload invalid link&lt;br /&gt;
# Upload multiple links&lt;br /&gt;
# Upload empty link&lt;br /&gt;
# Upload file&lt;br /&gt;
&lt;br /&gt;
== '''Background''' ==&lt;br /&gt;
&lt;br /&gt;
=== Travis CI ===&lt;br /&gt;
[https://travis-ci.org Travis CI] is a hosted, distributed continuous integration service used to build and test software projects hosted at GitHub. &lt;br /&gt;
&lt;br /&gt;
'''Configuration:'''&lt;br /&gt;
Travis CI is configured by adding a file named .travis.yml, which is a YAML format text file, to the root directory of the repository. This file specifies the programming language used, the desired building and testing environment (including dependencies which must be installed before the software can be built and tested), and various other parameters.&lt;br /&gt;
&lt;br /&gt;
'''Operation:'''&lt;br /&gt;
When Travis CI has been activated for a given repository, GitHub will notify it whenever new commits are pushed to that repository or a pull request is submitted. It can also be configured to only run for specific branches, or branches whose names match a specific pattern. Travis CI will then check out the relevant branch and run the commands specified in .travis.yml, which usually build the software and run any automated tests. When that process has completed, Travis notifies the developer(s) in the way it has been configured to do so—for example, by sending an email containing the test results (showing success or failure), or by posting a message on an IRC channel. In the case of pull requests, the pull request will be annotated with the outcome and a link to the build log, using a GitHub integration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[https://github.com/jnicklas/capybara Capybara] supports selenium-webdriver, which is mostly used in web-based automation frameworks. It supports JavaScript, can access HTTP resources outside of application, and can also be setup for testing in headless mode which is especially useful for CI scenarios.&lt;br /&gt;
&lt;br /&gt;
'''Using Capybara with [http://rspec.info/ RSpec]:'''&lt;br /&gt;
Load RSpec 2.x support by adding the following line(typically to the spec_helper.rb file):&lt;br /&gt;
 ''require 'capybara/rspec' &lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Approach''' ==&lt;br /&gt;
# First, using [https://github.com/expertiza/expertiza/blob/master/spec/factories/factories.rb factories] to create test data: create assignment, create topic, create participant. &lt;br /&gt;
# Mock the workflow of Assignment submission using Capybara.&lt;br /&gt;
# Check the result of the submission both from webpage and database. &lt;br /&gt;
In database level, the submission results are stored in table: TEAMS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
Insert test database: create assignment, create topic, create participant.&lt;br /&gt;
&lt;br /&gt;
Student login -&amp;gt; click on the assignment -&amp;gt; upload link or upload file&lt;br /&gt;
&lt;br /&gt;
[[File:Work flow.png]]&lt;/div&gt;</summary>
		<author><name>Lshi7</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105503</id>
		<title>CSC/ECE 517 Fall 2016 E1684: Feature Test for Assignment Submission</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105503"/>
		<updated>2016-11-13T23:40:30Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is an open-source project on GitHub used by students to view/submit assignments and review others' work. Expertiza also provides tools to visualize the scores and gauge the improvements made during the course semester. It also facilitates and monitors team projects. It is targeted at educational and non-profit organizations.&lt;br /&gt;
&lt;br /&gt;
== '''Project Requirement''' ==&lt;br /&gt;
&lt;br /&gt;
There should be a feature test for submission of the assignment by the student. Once the assignment is created by the instructor the only call to action for the student is assignment submission. The purpose of this project is to test whether the submission function could work properly under different scenarios:&lt;br /&gt;
&lt;br /&gt;
# Upload valid link&lt;br /&gt;
# Upload invalid link&lt;br /&gt;
# Upload multiple links&lt;br /&gt;
# Upload empty link&lt;br /&gt;
# Upload file&lt;br /&gt;
&lt;br /&gt;
== '''Background''' ==&lt;br /&gt;
&lt;br /&gt;
=== Travis CI ===&lt;br /&gt;
[https://travis-ci.org Travis CI] is a hosted, distributed continuous integration service used to build and test software projects hosted at GitHub. &lt;br /&gt;
&lt;br /&gt;
'''Configuration:'''&lt;br /&gt;
Travis CI is configured by adding a file named .travis.yml, which is a YAML format text file, to the root directory of the repository. This file specifies the programming language used, the desired building and testing environment (including dependencies which must be installed before the software can be built and tested), and various other parameters.&lt;br /&gt;
&lt;br /&gt;
'''Operation:'''&lt;br /&gt;
When Travis CI has been activated for a given repository, GitHub will notify it whenever new commits are pushed to that repository or a pull request is submitted. It can also be configured to only run for specific branches, or branches whose names match a specific pattern. Travis CI will then check out the relevant branch and run the commands specified in .travis.yml, which usually build the software and run any automated tests. When that process has completed, Travis notifies the developer(s) in the way it has been configured to do so—for example, by sending an email containing the test results (showing success or failure), or by posting a message on an IRC channel. In the case of pull requests, the pull request will be annotated with the outcome and a link to the build log, using a GitHub integration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[https://github.com/jnicklas/capybara Capybara] supports selenium-webdriver, which is mostly used in web-based automation frameworks. It supports JavaScript, can access HTTP resources outside of application, and can also be setup for testing in headless mode which is especially useful for CI scenarios.&lt;br /&gt;
&lt;br /&gt;
'''Using Capybara with [http://rspec.info/ RSpec]:'''&lt;br /&gt;
Load RSpec 2.x support by adding the following line(typically to the spec_helper.rb file):&lt;br /&gt;
 ''require 'capybara/rspec' &lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Approach''' ==&lt;br /&gt;
&lt;br /&gt;
Mock the workflow of Assignment submission using Capybara and check the result of the submission.&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
Insert test database: create assignment, create topic, create participant.&lt;br /&gt;
&lt;br /&gt;
Student login -&amp;gt; click on the assignment -&amp;gt; upload link or upload file&lt;br /&gt;
&lt;br /&gt;
[[File:Work flow.png]]&lt;/div&gt;</summary>
		<author><name>Lshi7</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105501</id>
		<title>CSC/ECE 517 Fall 2016 E1684: Feature Test for Assignment Submission</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105501"/>
		<updated>2016-11-13T23:35:10Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is an open-source project on GitHub used by students to view/submit assignments and review others' work. Expertiza also provides tools to visualize the scores and gauge the improvements made during the course semester. It also facilitates and monitors team projects. It is targeted at educational and non-profit organizations.&lt;br /&gt;
&lt;br /&gt;
== '''Project Requirement''' ==&lt;br /&gt;
&lt;br /&gt;
There should be a feature test for submission of the assignment by the student. Once the assignment is created by the instructor the only call to action for the student is assignment submission. The purpose of this project is to test whether the submission function could work properly under different scenarios:&lt;br /&gt;
&lt;br /&gt;
# Upload valid link&lt;br /&gt;
# Upload invalid link&lt;br /&gt;
# Upload multiple links&lt;br /&gt;
# Upload empty link&lt;br /&gt;
# Upload file&lt;br /&gt;
&lt;br /&gt;
== '''Background''' ==&lt;br /&gt;
&lt;br /&gt;
=== Travis CI ===&lt;br /&gt;
[https://travis-ci.org Travis CI] is a hosted, distributed continuous integration service used to build and test software projects hosted at GitHub. &lt;br /&gt;
&lt;br /&gt;
'''Configuration:'''&lt;br /&gt;
Travis CI is configured by adding a file named .travis.yml, which is a YAML format text file, to the root directory of the repository. This file specifies the programming language used, the desired building and testing environment (including dependencies which must be installed before the software can be built and tested), and various other parameters.&lt;br /&gt;
&lt;br /&gt;
'''Operation:'''&lt;br /&gt;
When Travis CI has been activated for a given repository, GitHub will notify it whenever new commits are pushed to that repository or a pull request is submitted. It can also be configured to only run for specific branches, or branches whose names match a specific pattern. Travis CI will then check out the relevant branch and run the commands specified in .travis.yml, which usually build the software and run any automated tests. When that process has completed, Travis notifies the developer(s) in the way it has been configured to do so—for example, by sending an email containing the test results (showing success or failure), or by posting a message on an IRC channel. In the case of pull requests, the pull request will be annotated with the outcome and a link to the build log, using a GitHub integration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
[https://github.com/jnicklas/capybara Capybara] supports selenium-webdriver, which is mostly used in web-based automation frameworks. It supports JavaScript, can access HTTP resources outside of application, and can also be setup for testing in headless mode which is especially useful for CI scenarios.&lt;br /&gt;
&lt;br /&gt;
'''Using Capybara with [http://rspec.info/ RSpec]:'''&lt;br /&gt;
Load RSpec 2.x support by adding the following line(typically to the spec_helper.rb file):&lt;br /&gt;
 ''require 'capybara/rspec' &lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Approach''' ==&lt;br /&gt;
&lt;br /&gt;
Mock the flow of Assignment submission using Capybara and check the result of the submission.&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
Insert test database: create assignment, create topic, create participant.&lt;br /&gt;
&lt;br /&gt;
Student login -&amp;gt; click on the assignment -&amp;gt; upload link or upload file&lt;br /&gt;
&lt;br /&gt;
[[File:Work flow.png]]&lt;/div&gt;</summary>
		<author><name>Lshi7</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105500</id>
		<title>CSC/ECE 517 Fall 2016 E1684: Feature Test for Assignment Submission</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105500"/>
		<updated>2016-11-13T23:33:13Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is an open-source project on GitHub used by students to view/submit assignments and review others' work. Expertiza also provides tools to visualize the scores and gauge the improvements made during the course semester. It also facilitates and monitors team projects. It is targeted at educational and non-profit organizations.&lt;br /&gt;
&lt;br /&gt;
== '''Project Requirement''' ==&lt;br /&gt;
&lt;br /&gt;
There should be a feature test for submission of the assignment by the student. Once the assignment is created by the instructor the only call to action for the student is assignment submission. The purpose of this project is to test whether the submission function could work properly under different scenarios:&lt;br /&gt;
&lt;br /&gt;
# Upload valid link&lt;br /&gt;
# Upload invalid link&lt;br /&gt;
# Upload multiple links&lt;br /&gt;
# Upload empty link&lt;br /&gt;
# Upload file&lt;br /&gt;
&lt;br /&gt;
== '''Background''' ==&lt;br /&gt;
&lt;br /&gt;
=== Travis CI ===&lt;br /&gt;
Travis CI is a hosted, distributed continuous integration service used to build and test software projects hosted at GitHub. &lt;br /&gt;
&lt;br /&gt;
'''Configuration:'''&lt;br /&gt;
Travis CI is configured by adding a file named .travis.yml, which is a YAML format text file, to the root directory of the repository. This file specifies the programming language used, the desired building and testing environment (including dependencies which must be installed before the software can be built and tested), and various other parameters.&lt;br /&gt;
&lt;br /&gt;
'''Operation:'''&lt;br /&gt;
When Travis CI has been activated for a given repository, GitHub will notify it whenever new commits are pushed to that repository or a pull request is submitted. It can also be configured to only run for specific branches, or branches whose names match a specific pattern. Travis CI will then check out the relevant branch and run the commands specified in .travis.yml, which usually build the software and run any automated tests. When that process has completed, Travis notifies the developer(s) in the way it has been configured to do so—for example, by sending an email containing the test results (showing success or failure), or by posting a message on an IRC channel. In the case of pull requests, the pull request will be annotated with the outcome and a link to the build log, using a GitHub integration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
Capybara supports selenium-webdriver, which is mostly used in web-based automation frameworks. It supports JavaScript, can access HTTP resources outside of application, and can also be setup for testing in headless mode which is especially useful for CI scenarios.&lt;br /&gt;
&lt;br /&gt;
'''Using Capybara with RSpec:'''&lt;br /&gt;
Load RSpec 2.x support by adding the following line(typically to the spec_helper.rb file):&lt;br /&gt;
 ''require 'capybara/rspec' &lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Approach''' ==&lt;br /&gt;
&lt;br /&gt;
Mock the flow of Assignment submission using Capybara and check the result of the submission.&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
Insert test database: create assignment, create topic, create participant.&lt;br /&gt;
&lt;br /&gt;
Student login -&amp;gt; click on the assignment -&amp;gt; upload link or upload file&lt;br /&gt;
&lt;br /&gt;
[[File:Work flow.png]]&lt;/div&gt;</summary>
		<author><name>Lshi7</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105499</id>
		<title>CSC/ECE 517 Fall 2016 E1684: Feature Test for Assignment Submission</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105499"/>
		<updated>2016-11-13T23:28:22Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is an open-source project on GitHub used by students to view/submit assignments and review others' work. Expertiza also provides tools to visualize the scores and gauge the improvements made during the course semester. It also facilitates and monitors team projects. It is targeted at educational and non-profit organizations.&lt;br /&gt;
&lt;br /&gt;
== '''Project Requirement''' ==&lt;br /&gt;
&lt;br /&gt;
There should be a feature test for submission of the assignment by the student. Once the assignment is created by the instructor the only call to action for the student is assignment submission. The purpose of this project is to test whether the submission function could work properly under different scenarios.&lt;br /&gt;
&lt;br /&gt;
== '''Background''' ==&lt;br /&gt;
&lt;br /&gt;
=== Travis CI ===&lt;br /&gt;
Travis CI is a hosted, distributed continuous integration service used to build and test software projects hosted at GitHub. &lt;br /&gt;
&lt;br /&gt;
'''Configuration:'''&lt;br /&gt;
Travis CI is configured by adding a file named .travis.yml, which is a YAML format text file, to the root directory of the repository. This file specifies the programming language used, the desired building and testing environment (including dependencies which must be installed before the software can be built and tested), and various other parameters.&lt;br /&gt;
&lt;br /&gt;
'''Operation:'''&lt;br /&gt;
When Travis CI has been activated for a given repository, GitHub will notify it whenever new commits are pushed to that repository or a pull request is submitted. It can also be configured to only run for specific branches, or branches whose names match a specific pattern. Travis CI will then check out the relevant branch and run the commands specified in .travis.yml, which usually build the software and run any automated tests. When that process has completed, Travis notifies the developer(s) in the way it has been configured to do so—for example, by sending an email containing the test results (showing success or failure), or by posting a message on an IRC channel. In the case of pull requests, the pull request will be annotated with the outcome and a link to the build log, using a GitHub integration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
Capybara supports selenium-webdriver, which is mostly used in web-based automation frameworks. It supports JavaScript, can access HTTP resources outside of application, and can also be setup for testing in headless mode which is especially useful for CI scenarios.&lt;br /&gt;
&lt;br /&gt;
'''Using Capybara with RSpec:'''&lt;br /&gt;
Load RSpec 2.x support by adding the following line(typically to the spec_helper.rb file):&lt;br /&gt;
 ''require 'capybara/rspec' &lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== '''Approach''' ==&lt;br /&gt;
&lt;br /&gt;
Mock the flow of Assignment submission using Capybara and check the result of the submission.&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
Insert test database: create assignment, create topic, create participant.&lt;br /&gt;
&lt;br /&gt;
Student login -&amp;gt; click on the assignment -&amp;gt; upload link or upload file&lt;br /&gt;
&lt;br /&gt;
[[File:Work flow.png]]&lt;br /&gt;
&lt;br /&gt;
=== Scenarios ===&lt;br /&gt;
&lt;br /&gt;
# Upload valid link&lt;br /&gt;
# Upload invalid link&lt;br /&gt;
# Upload multiple links&lt;br /&gt;
# Upload empty link&lt;br /&gt;
# Upload file&lt;/div&gt;</summary>
		<author><name>Lshi7</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105493</id>
		<title>CSC/ECE 517 Fall 2016 E1684: Feature Test for Assignment Submission</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105493"/>
		<updated>2016-11-13T23:22:06Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is an open-source project on GitHub used by students to view/submit assignments and review others' work. Expertiza also provides tools to visualize the scores and gauge the improvements made during the course semester. It also facilitates and monitors team projects. It is targeted at educational and non-profit organizations.&lt;br /&gt;
&lt;br /&gt;
== '''Project Requirement''' ==&lt;br /&gt;
&lt;br /&gt;
There should be a feature test for submission of the assignment by the student. Once the assignment is created by the instructor the only call to action for the student is assignment submission. The purpose of this project is to test whether the submission function could work properly under different scenarios.&lt;br /&gt;
&lt;br /&gt;
== '''Background''' ==&lt;br /&gt;
&lt;br /&gt;
=== Travis CI ===&lt;br /&gt;
Travis CI is a hosted, distributed continuous integration service used to build and test software projects hosted at GitHub. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Configuration:'''&lt;br /&gt;
Travis CI is configured by adding a file named .travis.yml, which is a YAML format text file, to the root directory of the repository. This file specifies the programming language used, the desired building and testing environment (including dependencies which must be installed before the software can be built and tested), and various other parameters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Operation:'''&lt;br /&gt;
When Travis CI has been activated for a given repository, GitHub will notify it whenever new commits are pushed to that repository or a pull request is submitted. It can also be configured to only run for specific branches, or branches whose names match a specific pattern. Travis CI will then check out the relevant branch and run the commands specified in .travis.yml, which usually build the software and run any automated tests. When that process has completed, Travis notifies the developer(s) in the way it has been configured to do so—for example, by sending an email containing the test results (showing success or failure), or by posting a message on an IRC channel. In the case of pull requests, the pull request will be annotated with the outcome and a link to the build log, using a GitHub integration.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
Capybara supports selenium-webdriver, which is mostly used in web-based automation frameworks. It supports JavaScript, can access HTTP resources outside of application, and can also be setup for testing in headless mode which is especially useful for CI scenarios.&lt;br /&gt;
&lt;br /&gt;
'''Using Capybara with RSpec:'''&lt;br /&gt;
Load RSpec 2.x support by adding the following line:&lt;br /&gt;
 ''require 'capybara/rspec' &lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
== '''Approach''' ==&lt;br /&gt;
&lt;br /&gt;
Mock the flow of Assignment submission using Capybara and check the result of the submission.&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
Insert test database: create assignment, create topic, create participant.&lt;br /&gt;
&lt;br /&gt;
Student login -&amp;gt; click on the assignment -&amp;gt; upload link or upload file&lt;br /&gt;
&lt;br /&gt;
[[File:Work flow.png]]&lt;br /&gt;
&lt;br /&gt;
=== Scenarios ===&lt;br /&gt;
&lt;br /&gt;
# Upload valid link&lt;br /&gt;
# Upload invalid link&lt;br /&gt;
# Upload multiple links&lt;br /&gt;
# Upload empty link&lt;br /&gt;
# Upload file&lt;/div&gt;</summary>
		<author><name>Lshi7</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105492</id>
		<title>CSC/ECE 517 Fall 2016 E1684: Feature Test for Assignment Submission</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105492"/>
		<updated>2016-11-13T23:21:02Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
[https://github.com/expertiza/expertiza Expertiza] is an open-source project on GitHub used by students to view/submit assignments and review others' work. Expertiza also provides tools to visualize the scores and gauge the improvements made during the course semester. It also facilitates and monitors team projects. It is targeted at educational and non-profit organizations.&lt;br /&gt;
&lt;br /&gt;
== '''Project Requirement''' ==&lt;br /&gt;
&lt;br /&gt;
There should be a feature test for submission of the assignment by the student. Once the assignment is created by the instructor the only call to action for the student is assignment submission. The purpose of this project is to test whether the submission function could work properly under different scenarios.&lt;br /&gt;
&lt;br /&gt;
== '''Background''' ==&lt;br /&gt;
&lt;br /&gt;
=== Travis CI ===&lt;br /&gt;
Travis CI is a hosted, distributed continuous integration service used to build and test software projects hosted at GitHub. &lt;br /&gt;
&lt;br /&gt;
'''Configuration:'''&lt;br /&gt;
Travis CI is configured by adding a file named .travis.yml, which is a YAML format text file, to the root directory of the repository. This file specifies the programming language used, the desired building and testing environment (including dependencies which must be installed before the software can be built and tested), and various other parameters.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Operation:'''&lt;br /&gt;
When Travis CI has been activated for a given repository, GitHub will notify it whenever new commits are pushed to that repository or a pull request is submitted. It can also be configured to only run for specific branches, or branches whose names match a specific pattern. Travis CI will then check out the relevant branch and run the commands specified in .travis.yml, which usually build the software and run any automated tests. When that process has completed, Travis notifies the developer(s) in the way it has been configured to do so—for example, by sending an email containing the test results (showing success or failure), or by posting a message on an IRC channel. In the case of pull requests, the pull request will be annotated with the outcome and a link to the build log, using a GitHub integration.&lt;br /&gt;
&lt;br /&gt;
=== Capybara ===&lt;br /&gt;
Capybara supports selenium-webdriver, which is mostly used in web-based automation frameworks. It supports JavaScript, can access HTTP resources outside of application, and can also be setup for testing in headless mode which is especially useful for CI scenarios.&lt;br /&gt;
&lt;br /&gt;
Using Capybara with RSpec:&lt;br /&gt;
Load RSpec 2.x support by adding the following line:&lt;br /&gt;
 ''require 'capybara/rspec' &lt;br /&gt;
''&lt;br /&gt;
&lt;br /&gt;
== '''Approach''' ==&lt;br /&gt;
&lt;br /&gt;
Mock the flow of Assignment submission using Capybara and check the result of the submission.&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
Insert test database: create assignment, create topic, create participant.&lt;br /&gt;
&lt;br /&gt;
Student login -&amp;gt; click on the assignment -&amp;gt; upload link or upload file&lt;br /&gt;
&lt;br /&gt;
[[File:Work flow.png]]&lt;br /&gt;
&lt;br /&gt;
=== Scenarios ===&lt;br /&gt;
&lt;br /&gt;
# Upload valid link&lt;br /&gt;
# Upload invalid link&lt;br /&gt;
# Upload multiple links&lt;br /&gt;
# Upload empty link&lt;br /&gt;
# Upload file&lt;/div&gt;</summary>
		<author><name>Lshi7</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105218</id>
		<title>CSC/ECE 517 Fall 2016 E1684: Feature Test for Assignment Submission</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105218"/>
		<updated>2016-11-10T02:43:14Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
Expertiza is an online system that is used by students to view/submit assignments and review others' work. Expertiza also provides tools to visualize the scores and gauge the improvements made during the course semester. It also facilitates and monitors team projects. It is targeted at educational and non-profit organizations. &lt;br /&gt;
&lt;br /&gt;
Expertiza is an open-source project with the source code available as a public repository on GitHub. It is developed using Ruby on Rails and is increasingly becoming robust thanks to the innumerable bugs being fixed by the community. The project has a micro-blog on SourceForge where the developer community report bugs and document updates.&lt;br /&gt;
&lt;br /&gt;
== '''Project Requirement''' ==&lt;br /&gt;
&lt;br /&gt;
There should be a feature test for submission of the assignment by the student. Once the assignment is created by the instructor the only call to action for the student is assignment submission. The purpose of this project is to test whether the submission function could work properly under different scenarios.&lt;br /&gt;
&lt;br /&gt;
== '''Approach''' ==&lt;br /&gt;
&lt;br /&gt;
Mock the flow of Assignment submission using Capybara and check the result of the submission.&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
Insert test database: create assignment, create topic, create participant.&lt;br /&gt;
&lt;br /&gt;
Student login -&amp;gt; click on the assignment -&amp;gt; upload link or upload file&lt;br /&gt;
&lt;br /&gt;
[[File:Work flow.png]]&lt;br /&gt;
&lt;br /&gt;
=== Scenarios ===&lt;br /&gt;
&lt;br /&gt;
# Upload valid link&lt;br /&gt;
# Upload invalid link&lt;br /&gt;
# Upload multiple links&lt;br /&gt;
# Upload empty link&lt;br /&gt;
# Upload file&lt;/div&gt;</summary>
		<author><name>Lshi7</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016&amp;diff=105215</id>
		<title>CSC/ECE 517 Fall 2016</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016&amp;diff=105215"/>
		<updated>2016-11-10T02:41:07Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[http://www.example.com link title]==Calibration Assignment Submissions==&lt;br /&gt;
*[[Calibration Assignment Submission (Firebrick JS)]]&lt;br /&gt;
*[[Calibration Assignment Submission (Active Job)]]&lt;br /&gt;
==Writing Assignments 2==&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1666. Test team functionality]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1643. Refactor Suggestion controller]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1631. Refactoring Bidding Interface]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1674.Refactor leaderboard.rb and write unit tests]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1671. Unit Tests for participants.rb Hierarchy]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1668.Test e-mailing functionality]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1658. Refractor lottery_controller.rb and write integration tests]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1660. Review requirements and thresholds]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1650. Sort instructor views alphabetically by default]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1644. Refactor and test Teams Controller]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1645. Refactoring Tree Display Controller]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1659. Refactor on_the_fly_calc.rb]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1657. Introduce a Student View for instructors]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1653. Fix and improve rubric criteria]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1642. Refactor review_response_map.rb]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1633. Refactor different question types from quiz feature]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2016/E1664:_Feature_Test_Assignment_Creation]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1666. Test team functionality]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2016/E1654. Improve_date-picker_and_deadlines]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2016/E1652 Fix teammate advertisements and requests to join a team ]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2016/E1662. UI issues/fixes]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2016/E1673. Refactor question_type.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2016/E1675. Timestamp for student file &amp;amp; hyperlink submissions]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2016/E1640. Refactor response.rb and response_helper.rb]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1634. Refactor and write unit test of due_date.rb and deadline_helper.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2016/M1654._Improve_network_security_features]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2016/E1670._Unit_tests_for_answers.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2016/E1641. Refactor review_mapping_controller.rb]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2016/M1652_Implement_ImageMap_Support_Servo]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2016/E1648/Add_past_due_assignment]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1656. Improve imports]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2016/M1653_Implement_HTML_form_validation]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2016/E1635._Refactor_join_team_requests_controller.rb_and_invitation_controller.rb]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality]]&lt;br /&gt;
&lt;br /&gt;
==Final Project Design Document==&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016 E1696  Improve Self-Review]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016 E1676  Role-based reviewing]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1680. Improve survey functionality]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1693. Drag-and-drop interface for creating rubrics]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1701. Accelerate RSpec testing]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1705. Tracking the time students look at the others' submissions]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/E1688. Send feedback to support + tree display improvement]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016 E1707: Top trading cycles to exclude previous teammates]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016 E1678: Review configuration options]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016 E1682: Improve score calculation]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016 E1684: Feature Test for Assignment Submission]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016 E1689: Anonymous Chat Between Author and Reviewer]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016 E1703: Logging for Expertiza]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016 E1708: Improvements to staggered-deadline assignments]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016 E1685: UI changes for review and score reports]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/ M1653 Implement HTML form validation]]&lt;br /&gt;
*[[CSC/ECE 517 Fall 2016/ E1700 Integrate Google doc editor/viewer]]&lt;br /&gt;
*[[CSC/ECE_517_Fall_2016/M1652_ImageMap_Support_Servo]]&lt;/div&gt;</summary>
		<author><name>Lshi7</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105207</id>
		<title>CSC/ECE 517 Fall 2016 E1684: Feature Test for Assignment Submission</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=CSC/ECE_517_Fall_2016_E1684:_Feature_Test_for_Assignment_Submission&amp;diff=105207"/>
		<updated>2016-11-10T02:31:06Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== '''Introduction to Expertiza''' ==&lt;br /&gt;
Expertiza is an online system that is used by students to view/submit assignments and review others' work. Expertiza also provides tools to visualize the scores and gauge the improvements made during the course semester. It also facilitates and monitors team projects. It is targeted at educational and non-profit organizations. &lt;br /&gt;
&lt;br /&gt;
Expertiza is an open-source project with the source code available as a public repository on GitHub. It is developed using Ruby on Rails and is increasingly becoming robust thanks to the innumerable bugs being fixed by the community. The project has a micro-blog on SourceForge where the developer community report bugs and document updates.&lt;br /&gt;
&lt;br /&gt;
== '''Project Requirement''' ==&lt;br /&gt;
&lt;br /&gt;
There should be a feature test for submission of the assignment by the student. Once the assignment is created by the instructor the only call to action for the student is assignment submission. The purpose of this project is to test whether the submission function could work properly under different scenarios.&lt;br /&gt;
&lt;br /&gt;
== '''Approach''' ==&lt;br /&gt;
&lt;br /&gt;
Mock the flow of Assignment submission using Capybara and check the result of the submission.&lt;br /&gt;
&lt;br /&gt;
===Workflow===&lt;br /&gt;
&lt;br /&gt;
Student login -&amp;gt; click on the assignment -&amp;gt; upload link or upload file&lt;br /&gt;
&lt;br /&gt;
[[File:Work flow.png]]&lt;br /&gt;
&lt;br /&gt;
=== Scenarios ===&lt;br /&gt;
&lt;br /&gt;
# Upload valid link&lt;br /&gt;
# Upload invalid link&lt;br /&gt;
# Upload multiple links&lt;br /&gt;
# Upload empty link&lt;br /&gt;
# Upload file&lt;/div&gt;</summary>
		<author><name>Lshi7</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=104187</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=104187"/>
		<updated>2016-11-02T00:05:07Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: /* Project Description */&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 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;
It is a test file. You can test it by running command in terminal: '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>Lshi7</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=104186</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=104186"/>
		<updated>2016-11-02T00:04:52Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: /* Test Plan */&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 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 ==&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;
It is a test file. You can test it by running command in terminal: '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>Lshi7</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=104185</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=104185"/>
		<updated>2016-11-02T00:03:56Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: /* Test from UI */&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 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 ==&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 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;
== Test from UI ==&lt;br /&gt;
It is a test file. You can test it by running command in terminal: '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>Lshi7</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=File:Result.jpg&amp;diff=104184</id>
		<title>File:Result.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=File:Result.jpg&amp;diff=104184"/>
		<updated>2016-11-02T00:03:12Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lshi7</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=104183</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=104183"/>
		<updated>2016-11-02T00:02:15Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: /* Project Description */&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 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 ==&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 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;
== Test from UI ==&lt;br /&gt;
It is a test file. You can test it by running command in terminal: 'rspec /spec/features/staggered_deadline_spec.rb'.&lt;br /&gt;
Here is the result.&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>Lshi7</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=104182</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=104182"/>
		<updated>2016-11-02T00:01:49Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: /* Project Description */&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 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 ==&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;
&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 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;
== Test from UI ==&lt;br /&gt;
It is a test file. You can test it by running command in terminal: 'rspec /spec/features/staggered_deadline_spec.rb'.&lt;br /&gt;
Here is the result.&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>Lshi7</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=104181</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=104181"/>
		<updated>2016-11-02T00:01:38Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: /* Project Description */&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 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 ==&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 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;
== Test from UI ==&lt;br /&gt;
It is a test file. You can test it by running command in terminal: 'rspec /spec/features/staggered_deadline_spec.rb'.&lt;br /&gt;
Here is the result.&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>Lshi7</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=104180</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=104180"/>
		<updated>2016-11-02T00:00:41Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: /* Project Description */&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 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 ==&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;
Initial state: two students with different topics submit their works before the assignment's submission deadline in round 1&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;
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;
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 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;
== Test from UI ==&lt;br /&gt;
It is a test file. You can test it by running command in terminal: 'rspec /spec/features/staggered_deadline_spec.rb'.&lt;br /&gt;
Here is the result.&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>Lshi7</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=104179</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=104179"/>
		<updated>2016-11-01T23:46:01Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: /* Functional Testing */&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 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 ==&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;
== Test from UI ==&lt;br /&gt;
It is a test file. You can test it by running command in terminal: 'rspec /spec/features/staggered_deadline_spec.rb'.&lt;br /&gt;
Here is the result.&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>Lshi7</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=104178</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=104178"/>
		<updated>2016-11-01T23:45:08Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: /* Capybara */&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 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;
[[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;
== Test from UI ==&lt;br /&gt;
It is a test file. You can test it by running command in terminal: 'rspec /spec/features/staggered_deadline_spec.rb'.&lt;br /&gt;
Here is the result.&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>Lshi7</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=104177</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=104177"/>
		<updated>2016-11-01T23:43:05Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: /* Rspec */&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 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;
== Test from UI ==&lt;br /&gt;
It is a test file. You can test it by running command in terminal: 'rspec /spec/features/staggered_deadline_spec.rb'.&lt;br /&gt;
Here is the result.&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>Lshi7</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=104176</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=104176"/>
		<updated>2016-11-01T23:41:33Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: /* Execution */&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;
== Test from UI ==&lt;br /&gt;
It is a test file. You can test it by running command in terminal: 'rspec /spec/features/staggered_deadline_spec.rb'.&lt;br /&gt;
Here is the result.&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>Lshi7</name></author>
	</entry>
	<entry>
		<id>https://wiki.expertiza.ncsu.edu/index.php?title=Testing_Staggered_Deadline&amp;diff=104173</id>
		<title>Testing Staggered Deadline</title>
		<link rel="alternate" type="text/html" href="https://wiki.expertiza.ncsu.edu/index.php?title=Testing_Staggered_Deadline&amp;diff=104173"/>
		<updated>2016-11-01T16:39:42Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: moved Testing Staggered Deadline to CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality: Add detail to the page name&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality]]&lt;/div&gt;</summary>
		<author><name>Lshi7</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=104172</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=104172"/>
		<updated>2016-11-01T16:39:42Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: moved Testing Staggered Deadline to CSC/ECE 517 Fall 2016/E1665. Test staggered-deadline functionality: Add detail to the page name&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;
&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>Lshi7</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=103987</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=103987"/>
		<updated>2016-10-29T17:39:18Z</updated>

		<summary type="html">&lt;p&gt;Lshi7: /* Execution */&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;
&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>Lshi7</name></author>
	</entry>
</feed>