The project presupposes test automation of a product that provides users with a possibility to choose the most suitable bank deposits by the specified criteria, as well as to draw up a deposit agreement with the bank.
The UI part consists of the following sections:
- Deposit calculator.In this section, the user can set the required parameters (deposit amount, deposit term, etc.) and get a ready calculation containing types of deposits he/she can open with the bank and information about the income he/she will consequently receive.
- Deposits section.This section contains a list of all proposed deposits with the possibility to find out detailed information on each of them. The user can choose the deposit he/she is interested in and proceed to opening it.
- Deposit opening section.In this section, the user can study complete information about the deposit, make adjustments if necessary, select accounts for making a deposit, funds replenishment and interest payment. Here the user is also asked to read the terms and conditions and send the application to the bank for consideration.
- Section with information about the user’s existing deposits.This section contains a list of all user’s deposits and their current status.
The backend part is a service that communicates with external banking services and receives from them the necessary information about the client and deposits. Communication takes place via synchronous (REST API) and asynchronous channels. All necessary information is stored in the database. Communication with the frontend part is carried out via synchronous communication channels (REST API).
Components of the product under development
Diagram of the framework for automated testing
On this project, JazzTeam specialists were engaged in ensuring continuous quality control of both the user interface and integration services in the context of continuous product development and improvement. The work on the project was carried out in three main areas:
- Development of a test framework for testing the backend part in an integration environment. All services that interact with the tested system are deployed and work in this environment. So, testing in an integration environment makes it possible to check the operability of all necessary integrations with other services.
- Organization of backend part testing in an isolated environment based on the developed framework. There are no real integrations in an isolated environment— all integrations are simulated by plugs. So, we do not depend on related services when conducting testing, but we can check the main business logic.
- Development of backend autotests. Autotests were written on the basis of the created framework.
- Development of frontend autotests. The ultimate goal of JazzTeam was to ensure that at least 60% of the test cases for regression testing were covered by autotests.
Stack: Java 11, JSON, Regular expressions, Spring, Apache Maven,
Infrastructure: Git, IntelliJ IDEA, Teamcity, Bitbucket, TestIT, Jira, Confluence, Postman, Citrix Workspace
Frameworks: Apache Kafka, Docker
Test Automation libraries: TestNG, Allure, Rest Assured, Selenide
Other libraries: Slf4j, Lombok
- The work was accompanied by strict rules regarding access. When planning the works, it was necessary to think ahead what accesses will be required and go through several stages of agreeing on these accesses.
- The responsibilities of our QA automation engineers included writing auxiliary utilities for the needs of business analysts and system analysts.
- At the very beginning of the project, the customer envisaged the work of one QA automation engineer in two development teams (backend team and frontend team).
- On the project, there was a practice of supporting less experienced QA automation engineers from teams that developed other services.
- Test frameworks for backend and frontend automated testing were developed, configured, and launched.
- The coverage with automated tests planned by the customer was provided.
- The process of test automation was implemented on the project:
- an analysis of the customer’s requirements was conducted;
- a test framework was developed;
- autotests were written.
Company’s achievements on the project
- We determined the channels and intensity of communication between QA automation teams, developers, DevOps, and stakeholders. In fact, we partially restructured the customer’s business processes to effectively apply the results of QA automation.
- The build server did not have access to all third-party services. This required to solve an additional task to test real integration — JazzTeam professionals carried out research and developed a solution for configuring access rights for integration tests in the conditions of high requirements for the security of the customer’s system.