Register
Submit a solution
Status: ‌Cancelled zero submissions

Challenge Overview

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

In the previous challenge, we implemented 15 out of 20 cases in the Challenge 1_Automation Test Cases.xlsx (The file is provided in the forum). However, in the remaining 5 test cases, there are drag & drop operations, which are a bit difficult to be implemented. In this challenge, we need to implement the automated testing for the remaining 5 test cases:

  • US_2.3.3_TC01 (CREATE SLD ADD EQUIPMENT)

  • US_2.3.4_TC01 (CONNECT EQUIPMENT)

  • US_2.3.5_TC01 (POPULATE SLD DATA FOR AN EQUIPMENT)

  • US_2.6.3_TC01 (SLD ANALYSIS MENU)

  • US_2.6.3_TC02 (Verify other analysis of an SLD)

Please note some of the steps have been done (like the automation for navigating to the menu pages). But the critical part related drag & drop should be fully addressed.

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 master branch. You can grant yourself access by the Topcoder-X link provided in the forum.

2. Generate the report.

For the remaining 5 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)

  • StepDescription: Step description

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

  • Exception_innerException: Exception and Inner Exception

  • Reason: The reason for the failure

  • 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 environments are Chrome, Firefox, IE11, Safari. All the environments are in scope.

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. Update the Challenge

Please update Challenge 1_Automation Test Cases.xlsx Covered by column, we need to address the step is covered by which Feature and Scenario.

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

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

New to Topcoder, don't know how to compete?

Please go through this guide: https://www.topcoder.com/community/development/how-to-compete



Final Submission Guidelines

Please zip all the following content in a zip archive.

  • The git patch against the latest commit of  https://gitlab.com/abb-rcs-test-automation/rcs-test master branch.

  • A simple txt file about how to apply your git patch. Please ensure your git patch works.

  • The updated deployment guide about how to deploy and run the automation test.

  • A sample generated report in CSV.

 

ELIGIBLE EVENTS:

2020 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30105690