ДжазТим — надежный технологический партнер

Agile разработка ПО на Java

Автоматизация тестирования веб-приложения по подбору вариантов банковских депозитов

Краткое описание проекта

Проект представляет собой автоматизацию тестирования продукта, который даёт пользователю возможность подбирать наиболее подходящие для него банковские депозиты по заданным критериям, а также оформлять договор с банком на открытие депозитов.

UI часть состоит из следующих разделов:

  • Депозитный калькулятор.
    Раздел, в котором пользователь может настроить параметры (сумма депозита, срок размещения и др.) и получить готовый расчёт с указанием видов депозитов, которые он может открыть в банке, и с информацией о доходе, который в результате получит.
  • Раздел с выбором депозитов.
    В этом разделе представлен список всех предлагаемых депозитов с возможностью узнать детальную информацию по каждому из них. Пользователь может самостоятельно выбрать интересующий его депозит и перейти к его оформлению.
  • Раздел оформления выбранного депозита.
    В этом разделе пользователь может проверить полную информацию о депозите, если требуется — внести корректировки, выбрать счета для внесения депозита, пополнения средств и выплаты процентов. Тут же пользователю предлагается ознакомиться с условиями и отправить заявку в банк на рассмотрение.
  • Раздел с информацией об имеющихся у пользователя депозитах.
    В этом разделе расположен список всех депозитов пользователя и их текущий статус.

Backend-часть — это сервис, который общается с внешними банковскими сервисами и получает от них необходимую информацию о клиенте и депозитах. Общение происходит по синхронным (REST API) и асинхронным каналам. Вся необходимая информация хранится в БД. Общение с фронтенд-частью осуществляется по синхронным каналам связи (REST API).

Компоненты разрабатываемого продукта

Рис.1 — Компоненты разрабатываемого продукта.

Диаграмма фреймворка для автотестирования

Рис. 2 — Диаграмма фреймворка для автотестирования.

Обязанности команды ДжазТим

На проекте команда ДжазТим занималась обеспечением непрерывной проверки качества как пользовательского интерфейса, так и интеграционных сервисов в условиях постоянного развития и совершенствования продукта. Работа на проекте велась по трём основным направлениям:

  1. Разработка тестового фреймворка для тестирования бэкенд-части в интеграционном окружении. В данном окружении развёрнуты и работают все сервисы, которые взаимодействуют с тестируемой системой. Таким образом, тестирование в интеграционном окружении позволяет проверить работоспособность всех необходимых интеграций с другими сервисами.
  2. Организация процесса тестирования бэкенд-части в изолированном окружении на базе разработанного фреймворка. В изолированном окружении отсутствуют реальные интеграции — все интеграции симулируются заглушками. Таким образом, для выполнения тестирования мы не зависим от смежных сервисов, но можем проверить основную бизнес-логику.
  3. Разработка бэкенд автотестов. Были написаны автотесты на базе созданного фреймворка.
  4. Разработка фронтенд автотестов. Конечной целью работы команды ДжазТим было обеспечение покрытия автотестами не менее 60% тест-кейсов для проведения регрессионного тестирования.

Используемые технологии

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.

Особенности проекта

  • Работа велась в условиях жёстких правил относительно доступов. В процессе планирования работ необходимо было продумывать наперёд, какие доступы нужны для работы, и проходить несколько этапов согласований этих доступов.
  • В обязанности автотестировщиков входили задачи по написанию вспомогательных утилит для нужд бизнес-аналитиков и системных аналитиков.
  • В самом начале проекта заказчик предусматривал работу одного автоматизатора в 2-х командах разработки (команда бэкенда и команда фронтенда).
  • На проекте существовала практика поддержки менее опытных автоматизаторов из команд, которые разрабатывали другие сервисы.

Результаты проекта

  • Разработаны, настроены и запущены в работу тестовые фреймворки для автотестирования бэкенда и фронтенда.
  • Обеспечен запланированный заказчиком процент покрытия автотестами.
  • Внедрили процесс автоматизации тестирования на проекте:
  • выполнили анализ требований заказчика;
  • разработали тестовый фреймворк;
  • написали автотесты.

Достижения компании на проекте

  • Определили каналы и интенсивность коммуникации между командами QA Automation, разработчиками, девопсами, стейкхолдерами. По сути частично перестроили бизнес-процессы компании-заказчика для эффективного применения результатов QA Automation.
  • Для билд-сервера отсутствовали доступы ко всем сторонним сервисам. Это требовало решения дополнительной задачи для тестирования реальной интеграции — силами команды ДжазТим провели исследование и разработку решения по настройке прав доступа интеграционных тестов в условиях высоких требований к безопасности системы заказчика.

Свяжитесь с нами, чтобы обсудить Ваш IT-проект

    Имя *

    Название компании

    Email *

    Телефон

    Чем мы можем Вам помочь? *

    * – Обязательные поля для заполнения