Topcoder Search Challenges Test Suite

Register
Submit a solution
The challenge is finished.

Challenge Overview

Project Overview

This challenge should develop automatic test suties for topcoder.com by selenium.

Competition Task Overview

This challenge should use Selenium to develop automatic test cases for following scenarios:

To verify user is able to search challenges on the basis of keyword, Type, Submission start/end date, Platform and Technology tags

Design challenges:

1. Go to 'tcqa1.topcoder.com'

2. Go to Challenges -> Design Option

3. Verify that a search box is available on the top of the challenges' list. Verify that the search box contains the following fields to filter search:

a) Field to give submission end date range and hovering the mouse over it, opens up a menu to give custom date range by selecting from the 2 calendar controls. Also verify that there are few more option to select the range on the right side of the menu, like Today, Tomorrow, Next 7 days, This Month, and Next Month.

b) Field to specify challenge type and hovering the mouse over it, opens up a dropdown list containing the various challenges type. A search box is also available in this dropdown to search for the desired type.

Note :

a) Open Challenges - Search options include are Keyword, Challenge type and Submission End Date Range

b) Past Challenges - Search options include are Keyword, Challenge type and Submission End Date Range. Since past challenges display challenges only upto a year from current year, so a tag would already be present and verify that clear all tag won't remove that tag.

3. Upcoming Challenges - Search options include are Keyword, Challenge type and Submission End Date Range

4.  To search for challenges, provide any keyword like Type tags, Challenge name, etc. and press Enter. Verify that the entered keyword(s) appear as tags below the search box with a cross(X) sign next to it and a link 'Clear All Tags' becomes visible. Also verify that the list containing the search results is displayed. Search by keyword would apply to both challenge name + details.

5. Click the link 'Clear All Tags' and verify that all the tags, that were created to search the challenges, get removed.

6. Similarly, search for challenges by providing any keyword like Type tags, Challenge name, etc. and click on the search icon. Verify that the entered keyword(s) appear as tags below the search box with a cross(X) sign next to it and a link 'Clear All Tags' becomes visible. Also verify that the list containing the search results is displayed.

7. Click the link 'Clear All Tags' and verify that all the tags, that were created to search the challenges, get removed.

8. Go to 'Submission End Date Range' option and select some value for 'From' and 'To' dates from the respective calendars and verify that correct values get populated in the corresponding textboxes. Also verify that a tag gets created for the selected range. Now click the search icon and verify the list that contains the search results. It should contain only those challenges that satisfy the search criteria.

9. Click the link 'Clear All Tags' and verify that all the tags, that were created to search the challenges, get removed.

10.  Similarly, go to 'Submission End Date Range' option again and perform the same checks by selecting the following values:

- Today : This should populate today's date in both 'From' and 'To' textboxes.

Tomorrow : This should populate tomorrow's date in both 'From' and 'To' textboxes.

- Next 7 days : This should populate today's date in 'From' and date after 7 days in 'To' textbox.

- This Month : This should populate today's date in 'From' and date on last day of the current month in 'To' textbox.

- Next Month : This should populate next month's starting date in 'From' and date on last day of the next month in 'To' textbox.

11. Go to 'Challenge Type' option and select any one challenge type. Verify that the selected type appear as a tag below the search box with a cross(X) sign next to it and the link 'Clear All Tags' becomes visible.

12. Again go to the 'Challenge Type' option and in the search box, available in the dropdown, enter a value for challenge type to search for(like 'design'). Verify that the dropdown now contains only those types whose names contain the word entered (here 'design'). Select any value and verify that the selected type appear as a tag below the search box with a cross(X) sign next to it.

13. Now click the search icon and verify the list that contains the search results. It should contain only those challenges that satisfy the search criteria. Click the link 'Clear All Tags' and verify that all the tags are removed.

14. Enter some keywords like Type, Technology, Platform tags, Challenge name, etc., in the search box and verify that the entered keyword(s) appear as tags, below the search box, with a cross(X) sign next to them. Now remove one or two tags by clicking on the cross(X) sign next to each tag. Verify that the challenges lists filters the results again on the basis of the remaining and removed tags.

Development challenges: (note, most steps are similar to design challenges)

1. Go to 'tcqa1.topcoder.com'

2. Go to Challenges -> Development Option

3. Verify that a search box is available on the top of the challenges' list. Verify that the search box contains the following fields to filter search:

a) Field to give submission end date range and hovering the mouse over it, opens up a menu to give custom date range by selecting from the 2 calendar controls. Also verify that there are few more option to select the range on the right side of the menu, like Today, Tomorrow, Next 7 days, This Month, and Next Month.

b) Field to specify challenge type and hovering the mouse over it, opens up a dropdown list containing the various challenges type. A search box is also available in this dropdown to search for the desired type.

c) Field to specify challenge technology and hovering the mouse over it, opens up a dropdown list containing the various challenges technologies. A search box is also available in this dropdown to search for the desired technology.

d) Field to specify challenge platform and hovering the mouse over it, opens up a dropdown list containing the various platform types. A search box is also available in this dropdown to search for the desired platform.

Note :

a) Open Challenges - Search options include are Keyword, Challenge type, Submission End Date Range, Platform and Technology

b) Past Challenges - Search options include are Keyword, Challenge type, Submission End Date Range, Platform and Technology. Since past challenges display challenges only upto a year from current year, so a tag would already be present and verify that clear all tag won't remove that tag

c) Upcoming Challenges - Search options include are Keyword, Challenge type, Submission End Date Range, Platform and Technology

4.  To search for challenges, provide any keyword like Type, Technology, Platform tags, Challenge name, etc. and press Enter. Verify that the entered keyword(s) appear as tags below the search box with a cross(X) sign next to it and a link ‘Clear All Tags’ becomes visible. Also verify that the list containing the search results is displayed. Search by keyword would apply to both challenge name + details

5. Click the link ‘Clear All Tags’ and verify that all the tags, that were created to search the challenges, get removed.

6. Similarly, search for challenges by providing any keyword like Type, Technology, Platform tags, Challenge name, etc. and click on the search icon. Verify that the entered keyword(s) appear as tags below the search box with a cross(X) sign next to it and a link ‘Clear All Tags’ becomes visible. Also verify that the list containing the search results is displayed.

7. Click the link ‘Clear All Tags’ and verify that all the tags, that were created to search the challenges, get removed.

8. Go to ‘Submission End Date Range’ option and select some value for ‘From’ and ‘To’ dates from the respective calendars and verify that correct values get populated in the corresponding textboxes. Also verify that a tag gets created for the selected range. Now click the search icon and verify the list that contains the search results. It should contain only those challenges that satisfy the search criteria.

9. Click the link ‘Clear All Tags’ and verify that all the tags, that were created to search the challenges, get removed.

10.  Similarly, go to ‘Submission End Date Range’ option again and perform the same checks by selecting the following values:

- Today : This should populate today’s date in both ‘From’ and ‘To’ textboxes.

Tomorrow : This should populate tomorrow’s date in both ‘From’ and ‘To’ textboxes.

- Next 7 days : This should populate today’s date in ‘From’ and date after 7 days in ‘To’ textbox.

- This Month : This should populate today’s date in ‘From’ and date on last day of the current month in ‘To’ textbox.

- Next Month : This should populate next month’s starting date in ‘From’ and date on last day of the next month in ‘To’ textbox.

11. Go to ‘Challenge Type’ option and select any one challenge type. Verify that the selected type appear as a tag below the search box with a cross(X) sign next to it and the link ‘Clear All Tags’ becomes visible.

12. Again go to the ‘Challenge Type’ option and in the search box, available in the dropdown, enter a value for challenge type to search for(like ‘design’). Verify that the dropdown now contains only those types whose names contain the word entered (here ‘design’). Select any value and verify that the selected type appear as a tag below the search box with a cross(X) sign next to it.

13. Now click the search icon and verify the list that contains the search results. 

It should contain only those challenges that satisfy the search criteria. Click the link ‘Clear All Tags’ and verify that all the tags are removed.

14. Enter some keywords like Type, Technology, Platform tags, Challenge name, etc., in the search box and verify that the entered keyword(s) appear as tags, below the search box, with a cross(X) sign next to them. Now remove one or two tags by clicking on the cross(X) sign next to each tag. Verify that the challenges lists filters the results again on the basis of the remaining and removed tags.

15. Perform the same checks as specified in the above step # 11,12,13,14 for the other two dropdowns for ‘Platform’ and ‘Technology’.

Data challenges:

Perform all the verification checks specified for design challenges, from step 1 to 14, except that there is no dropdown for challenge types. Please note the following :

1. Open Challenges - Search options include are Keyword and Submission End Date Range

2. Past Challenges - Search options include are Keyword and Submission End Date Range

a) Since past challenges display challenges only upto a year from current year, so a tag would already be present and verify that clear all tag won't remove that tag

3. Upcoming Challenges - Search options include are Keyword and Submission End Date Range

4. Search by keyword would only apply to challenge name

Please see the sample test suite format in the attached spreadsheet.

The developer should run the tests and fill the test result column in the provided spreadsheet and describe the fail reason.

Verification

Please use qa.topcoder.com/v2/ to verify the requirements.

You can find the api specification here: docs.tcapi.apiary.io

Spreadsheet driven test suite

This test suite should be spreadsheet driven test suite. The java code should red the test steps from the spreadsheet and execute it via Selenium Web Driver.

Please refer to the attached spreadsheet 'Sample_SpreadSheet.xlsx' . Here, the column Action contains the names of the methods/functions that need to be called to perform a particular action. Column 'Objects/Fields' contains the object on which the action need to be performed. The identifiers to locate these objects are specified in the sheet'Local Object Repository'. Column 'Associated Data Column' contains some data value that the method may require. 

Technical Requirements

The common methods should be put in Helper class so it can be reused by other test suites. e.g. access topcoder api, login (many test suites need user to login first), retrieve data from list, etc.

Don't use JUnit, TestNG or any other framework. Use a main method to run the test cases.

Technology Overview

  • Java
  • Selenium


Final Submission Guidelines

  • Source Code
  • Test Result
  • Steps to run the test suites

Review style

Final Review

Community Review Board

Approval

User Sign-Off

Challenge links

ID: 30045766