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 automation testing
Please refer to the Challenge 2_Automation Test Cases Part 1.xlsx file provided in the forum, there are 25 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 master 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. Code structure.
Please put the Feature files under the challenge-2 folder, the name of the Feature file should be the test case ID, e.g., US_1_2_3_TC02.feature. In each Feature file, the number of scenarios should match with the number of steps of the correlated test case. The name of each scenario should be prefixed by the test case ID and followed with a hyphen _ and the StepNo (1, 2, 3), and you can also freely add a descriptional name after it. For example,
-
US_1_2_3_TC02_1Login
-
US_1_2_3_TC02_2CreateUsersWithMultipleRoles_Planner
Learning Resources & Tips
Learning resources
-
Selenium Webdriver with C#:
-
You can check the official documentation https://www.seleniumhq.org/docs/03_webdriver.jsp
-
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
Please zip all the following content in a zip archive.
-
The automation testing project solution (with all source code)
-
A deployment guide about how to deploy and run the automation test.