Register
Submit a solution
The challenge is finished.

Challenge Overview

Note: The challenge prizes displayed is just indicative. The prize money is per test case basis. The prize money with each test case is tagged into gitlab issue tracker. The prize money will be paid for successful acceptance after review of the test case.

About the Challenge 

RCS is an Asset Reliability Centered Business Performance Tool, specifically designed for Power Grids and Substations asset reliability management. For this project, we are going to run a series of challenges to automate the test cases for Web application using Selenium framework to make things easier. 

Technology Stack

���     .Net Technology

���     C#

���     Selenium Webdriver

���     SpecFlow - Cucumber for .NET

���     Web App - (Chrome, Firefox, IE11, Safari)

 

App Overview

The app link: https://abbrcstop.azurewebsites.net/#/login

There are multiple different roles in the app. Each role has its own permissions. A user can have 1 or multiple roles. We provided three users with different roles for your testing. The credentials of these users are provided in the forum.

The users with the following roles are provided.

  • System Manager: System manager can manage the entire system, including creating new projects, verifying existing projects and assigning projects to the existing Project Manager ABB and Project Support users, etc.

  • Project Manager ABB: The created project is assigned to this user. The user can manage the projects, including creating new users, new teams, new skills and assigning skills to the existing users.

  • Project Support: The permission is similar to Project Manager ABB.

Requirements

1. Implement the automated testing

This is the sprint 2 challenge of this challenge. Please refer to Challenge 2_Automation Test Cases.xlsx (provided in the forum), there are 70 test cases in scope

You should implement the automation testing with Selenium Webdriver (in C#).

Tips: To get familiar with the app, you can follow the steps of the test cases manually to play with the app first, then implement the test case scenarios.

The existing codebase is https://gitlab.com/abb-rcs-test-automation/rcs-test sprint2 branch. You can grant yourself access by the Topcoder-X link provided in the forum.

2. Generate the report.

For all the test cases, you should generate the report by following the existing code - to implement the automation testing with Selenium Webdriver (in C#), and generate a report with SpecFlow.

The report should be in CSV format, it contains the following columns

  • Suite: Test Suite No - you can provide Test Automation suite ID

  • Epic: Epic No - User Story ID (Ex: US_1.2.1)

  • TestID: Test ID - Test Case ID (Ex: US_1.2.1_TC01)

  • StepNo: Step Number of the test case ID (US_1.2.1_TC01_1, …)

  • StepDescription: Step description

  • Pass/Fail: Is the test passed or failed?

  • Exception_innerException: Exception and Inner Exception

  • Reason: The reason for the failure (screenshot link)

  • PageName: The title of the tested page.

  • PageURL: The URL of the tested page.

  • userID: The logged in user ID.

  • userRole: The role of the logged in user.

  • testEnv: Test Environment (Browser, OS).

  • inputParam: Input parameters that are passed - Please use the actual parameters used by Specflow. It's fine to keep the same parameters info in the StepDescription

  • exStart: Execution Start time

  • exEnd: Execution End time

  • retryAttemps: Retry Attempts Count - We are retrying tests that are failing, it should be configurable. And the retry attempts count should also be included in the report.

  • expectedRes: Expected Result - It should be different from the StepDescription. StepDescription is to describe the process/steps of the testing, and the expected result is to focus on the result/outcome.

  • actualRes: Actual Result

The target test browsers are Chrome, Firefox, IE11, Safari. All the browsers are in scope.

Note:

In case that a test case step is failed, you need to provide a screenshot in rcs-test\bin\Debug\Screenshots\folder, the screenshot name should be the same as StepNo in the report, for example, US_1.2.1_TC01_1.png.

For the successful screenshots, don’t generate the screenshots.

SpecFlow (Cucumber is for Java, SpecFlow is Cucumber for .NET) is used to specify the tests so you will need to convert the test steps into Cucumber scenarios. Use Page Objects, Backgrounds and Scenario Outlines wisely. Parametrize the steps and reuse existing steps wherever possible. SpecFlow has an extension for VisualStudio that will make it easier to develop and run the tests. Also, take a look at the documentation page at https://specflow.org/docs/.

3. Provide the test case cover info.

Once you submit a test case, please provide the info (in the GitLab ticket comment) that which step is covered by which Feature and Scenario. You can refer to Challenge 1_Automation Test Cases.xlsx for the format reference.

The reviewer needs to update the info in the spreadsheet once the submission is accepted. The review process is near real time while challenge is live.

How To Participate

 

Register for the challenge.

  • Step 1 - Create a Gitlab Account if you do not have one already

  • Step 2 - Use the self-registration link and register yourself to get the gitlab project access - SEE CHALLENGE FORUMS FOR THE LINK

  • Step 3 - Then access the GitLab tickets here - https://gitlab.com/abb-rcs-test-automation/rcs-test/issues

  • Step 4 - Choose the ticket that not labeled and assign yourself to the ticket

  • Step 5 - add "tcx_Assigned" to the ticket.

  • Step 6 - Work on the chosen ticket and submit your automated test case by creating a new branch for the ticket. Please make sure to name each branch as “issueX” where X is the issue ID in Gitlab. Not following this naming convention will consider the submission disqualified.

  • Step 7 - Change the ticket status to "tcx_ReadyForReview".

  • Step 8 - Reviewer will review your test results submission by adding "tcx_Review" label, and if accepted the status should be changed to "tcx_FixAccepted" and if not the status should be changed to "tcx_Feedback", and "tcx_Review" label should be removed when the status changed into "tcx_Feedback" status.

  • Step 9 - If the ticket status is "tcx_Feedback", you will have to fix the review feedback before continuing to work on the new chosen ticket, and then repeat step 6 to 9.

 

Important Notes

 
  • The GitLab ticket only contains the title of the test case, for details of the test case, please check https://docs.google.com/spreadsheets/d/1Uz6iaLGRE-QgHB-3FHXYXwQMJnmLUXChQc2uzWclnKU/edit?usp=sharing

  • A participant is not supposed to hold the test case for more than 1 day, and needs to report your status every 2 hours so that we know you are working. The format of your status report is like “I have completed 2 steps out of 10  and I am working on next”. Else, it will be unassigned from the participant. Similarly, the review feedback needs to be resolved within 1 day, otherwise, the ticket submission will be rejected and the ticket will be open for pickup by others.

  • You need to assign yourself the unassigned/open tickets only, please don't work on tickets assigned to others.

  • Once the currently assigned ticket is ready for review, then you can work on the next open ticket by assigning yourself. You can work as many tickets you can complete within a challenge timeline to win more prizes. But you can only assign yourself to 1 ticket at the same time.

  • For a ticket, if you receive any feedback from the reviewer, then work on it and submit quickly to pass review.

  • For a ticket, if it is accepted by the reviewer, then you will get paid the prize amount associated with the test case title.

  • In case of a step of a test case contains deletion, please ensure to create deletion piece before logging out of the test case.

  • Wherever RISE application is mentioned, that step is not in scope. the RISE DESKTOP app is not in scope so that step need to be skipped. You can mention that step as NA under the status column.

 

To Reviewers

 
  • Reviewers would be paid per ticket review basis, 18% of the prize money

  • Review is open for real time feedback and review as soon as the developer closes the issue, it is ready for pickup for review.

  • Update the spreadsheet with the review comments and approve the pass and fail with appropriate feedback to the developer and merge the code into the sprint2 branch. Reviewers please share your google account ID with me in the forum, so that I can grant you edit permission. 

  • This is realtime review, please pick up the ready for review tickets and after mark the ticket as completed, or assign back with feedback to address the issue. The review feedback must be provided in 2 hours once a ticket is marked as "tcx_ReadyForReview".

 

Past challenges for reference

You can check the past challenges for reference.

Sprint 1:

Learning Resources & Tips

Learning resources

  1. Selenium Webdriver with C#:

    1. You can check the official documentation https://www.seleniumhq.org/docs/03_webdriver.jsp

    2. Here is a step by step Youtube video tutorial: https://www.youtube.com/watch?v=wtH4i7CPg1M

An End to End Youtube video example of Using Specflow And Selenium Webdriver: https://www.youtube.com/watch?v=9AgKt4YpRFw

Final Submission Guidelines

When you are done with your tickets, please submit a .txt file in Direct using the "Submit" button before the submission phase ends. In this file please include the following details: 

  • TopCoder Handle: <>

  • Gitlab ID: <>

  • Optional: List of accepted issues (GitLab links) 

 

Failure to submit a small text document (see ‘Final Deliverables’) to the challenge will result in non-payment.

DON'T use any other link to create new issues or submit as document, they won't count and won't be paid.

 

ELIGIBLE EVENTS:

2020 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30106752