Register
Submit a solution
The challenge is finished.

Challenge Overview

 

CHALLENGE OBJECTIVES

  • Add Selenium tests for the security flow in the web app.

 

PROJECT BACKGROUND

  • We believe that our customers have more important things to do than wrestle with complex products or spend valuable time administering their banking arrangements. We recognize that professional and personal lives often overlap and our mission is to help empower our customers to achieve their ambitions by serving all their banking needs.

  • Banking customers are looking for a bank that can help them make their deal happen in an efficient, secure, fast, and flexible way as much as it can.

  • We understand different people want different things from "Relationship management"

  • We expect a counter-trend of “committed” relationships as customers react to digitization in our services.

  • Our goal in this project is to create strong direct relationships with our customers. We want to provide everything - a blended bank, preferential banking for their family, and open to non-banking services via our digital app (Responsive Web App and Mobile Hybrid App)

 

TECHNOLOGY STACK

  • Selenium

  • ReactJS 16

 

CHALLENGE REQUIREMENTS

  • The purpose of this challenge is to write E2E tests for the security flow in our web app using Selenium. The flow should cover the following:

    • Login

      • Open app and login into the app with valid credentials

      • You’ll be asked to enter the one-time code, enter and confirm

      • You should land on the dashboard

    • Logout

      • When logged in, click logout icon on top right corner of the page

      • You should be back to the login screen

    • Register

      • Open the app and you’ll see a link that says Register for Online Banking

      • Click it to see the Account verification page

      • Enter valid details to this page and click “Verify my account”

      • You’ll get to the Contact Information screen, enter a valid email and phone number

      • Click Register and you’ll be asked to enter a one time code, provide a valid one, check I’m not a robot, and click Confirm

      • You’ll see the Registration complete screen, with a button that redirects back to the login screen

    • Reset passcode

      • Open the app and you’ll see a link that says Reset passcode

      • Click it to see the Account verification screen

      • Enter valid user ids, check I’m not a robot and click Next

      • You’ll be asked to enter the one-time code, enter and confirm

      • You’ll be asked to provide new passcode, make sure you provide a valid one

      • You’ll be redirected back to the login screen with a success message

    • Forgotten User ID

      • Open the app and navigate to the regular login screen (the one with user id and passcode)

      • Click on Forgotten User ID link and you’ll reach the Account verification screen

      • Enter valid details and click Next

      • You’ll be asked to enter the one-time code, enter and confirm

      • You’ll see a screen that shows your user id, and a button to go back to the login screen

  • You should create both positive and negative test cases for these flows

    • The above section has covered the positive cases, the following specifies the negative flows

    • Login

      • Open app and login into the app with invalid credentials, you should get an error

      • You’ll be asked to enter the one-time code, enter an invalid one and you should get an error

    • Register

      • Open the app and you’ll see a link that says Register for Online Banking

      • Click it to see the Account verification page

      • Enter invalid details to this screen (for example an age that’s not in the range of 11 and 130), you should get an error

      • When you are on the Contact Information screen, enter an invalid email and phone number, you should get an error

    • Reset passcode

      • Open the app and you’ll see a link that says Reset passcode

      • Click it to see the Account verification screen

      • Enter invalid user ids and you should get an error

      • You’ll be asked to enter the one-time code, enter an invalid one and confirm, you should receive an error

      • You’ll be asked to provide new passcode, provide invalid ones and you should get an error

    • Forgotten User ID

      • Open the app and click on Forgotten User ID link and you’ll reach the Account verification screen

      • Enter invalid details (for example wrong sort code) and click Next, you should get errors

      • You’ll be asked to enter the one-time code, enter an invalid one and confirm, you should get errors

  • We need to be able to add the E2E tests as part of our GitLab CI / CD pipeline, so make sure the tests can be executed there.

  • Please add a new command to run the E2E tests.

  • No existing code should be modified and no existing features should be broken.

  • There should be no linting errors or warnings with the unit tests code.

  • The production build of the prototype must not be broken.

 

Review Criteria

The following will be considered during review:

  • Number of user flows (scenarios completed)

  • Coding standards and documentation following Selenium best practices

  • The breadth of test coverage (browsers and platforms) 

  • Types of testing scenarios (UI, functional, performance, etc…)

  • Stability of tests (how many times can they be run in a row without failure)

  • Quality of reports (how useful would this be in a CI system)

 

LICENSES & ATTRIBUTION

  • Licenses to be followed in development:

    • Apache License 2.0

    • MIT License

    • Common Development and Distribution License

    • Eclipse Public License version 2.0

  • Sufficient information regarding third-party assets must be present in your documentation. This includes the author, license info, and a direct link to the asset online.

 

BROWSER REQUIREMENTS

  • Windows: IE 11+, Edge, Chrome latest, Firefox latest

  • Mac: Safari Latest, Chrome Latest, Firefox Latest

  • Tablet and mobile: Safari / Chrome on iOS and Chrome on Android



Final Submission Guidelines

  • Full source code

  • Updated / new build scripts to run the E2E tests

  • Updated readme to reflect the changes done in this challenge (example: new details on how to run your tests and where to check the coverage report, how to run linting on the test code, etc.

ELIGIBLE EVENTS:

2021 Topcoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30145885