Как мы разработали инструмент тестирования для «Гринатома»

Среди кейсов которыми мы гордимся — наша работа с компанией «Гринатом». Очень ответственный проект разработки средств автоматизации функционального тестирования, для которого мы придерживались высоких стандартов качества кода и использовали наиболее актуальные и поддерживаемые решения.

И у нас получилось неплохо. Мы предоставили клиенту весь нужный инструментарий, ещё и заложили в него идеи, которые предвосхитили пожелания заказчика.

И вот как это было.

Про зеленый атом и его задачи

«Гринатом» – это IT-интегратор «Росатома», государственной корпорации по атомной энергии. Чем только «Гринатом» не занимается: разработка ПО и программных роботов, развитие и поддержание ИТ-систем, проектное управление, применение ИИ и машинного обучения… На сегодняшний день это одна из самых активно развивающихся отечественных IT-компаний.

Однако даже с таким набором компетенций у «Гринатома» появилась для нас непростая задачка: нужна была система автоматизации функционального тестирования тестовых сценариев для платформы доверенных сервисов или ПДС. Сама по себе она автоматизирует процессы центров удостоверяющих услуг и органов криптографической защиты. Её функционал и тестируемые сценарии очень сложны, поэтому начали мы с изучения тестируемой системы.

Со своей стороны «Гринатом» обозначил ряд критически важных процессов, которые нужно было покрыть автоматизированными тестами. Мы предположили выполнение задач с неким условным набором инструментов:

  • Автоматизация end-to-end сценариев, которые взаимодействуют с пользовательским интерфейсом;
  • Автоматизация end-to-end сценариев, которые взаимодействуют с веб-сервисами.

Многие шаги в этих сценариях относились к ручному тестированию, так что нам нужно было дополнительно погрузиться в сценарии, понять, как наладить в них автоматизацию, изменить и унифицировать шаги тест-кейсов. Параллельно мы готовили документацию: частное техническое задание на автоматизацию, необходимое, чтобы согласовать и финализировать требования к проекту.

Что мы сделали

Мы хотели создать удобное и интегрируемое решение, поэтому привлекли к проекту специалистов с широким спектром компетенций в автоматизации тестирования. Лидер группы контролировал сроки, принимал готовые сценарии и проводил демонстрации заказчику.

Как строилась наша работа:

  • Мы проанализировали ручные тестовые сценарии на предмет подходов автоматизации.
  • Разработали тестовый фреймворк для автоматизации UI, API и БД на базе актуальных и проверенных библиотек.
  • Реализовали автоматизированные end-to-end сценарии.
  • Провели комплексный анализ механизма подтверждения операций вторым фактором, автоматизировали процесс получения кода подтверждения операции через электронную почту, не подвергая риску существующие механизмы.
  • Интегрировали фреймворк в Gitlab CI клиента с возможностью настраивать запуск тестов.
  • Реализовали вывод понятных отчетов с прозрачной статистикой по прогону и сохранением результатов предыдущих запусков.
  • Наконец, создали документацию по разработанному инструменту.

Стек мы задействовали актуальный и проверенный сообществом автоматизаторов: Java 8, Selenium Web Driver, TestNG, RestAssured, Hibernate, Allure, Maven.

Что у нас получилось

Заказчик сделал пару кликов в CI — и успешно провел автоматический тест сборки приложения перед релизом. Простое действие — но вполне демонстрирующее успех нашего проекта.

Мы реализовали для «Росатома» настраиваемый запуск сценариев со следующими вариантами:

  • Запуск всех тестов.
  • Запуск выбранных тестов.
  • Запуск наборов тестов по определенному признаку.

По словам клиента нам удалось получить читаемые, понятные отчеты. В них мы реализовали поддерживаемый код фреймворка с автотестами, реализованный по практикам и паттернам разработки. Кроме того, нам удалось:

  • Выявить ряд критичных проблем на ранних стадиях тестирования.
  • Ускорить тестирование критичных сценариев в 5 раз.
  • Предоставить средства для быстрой обратной связи по качеству текущей сборки.
  • Сократить рутинные операции ручного тестирования, в т.ч. и задачи генерации данных.

Без лишней скромности — работали мы слаженно, ориентировались на требования клиента, и результат получился достойный важного сервиса информационной безопасности и криптографии. Один из кейсов, которым мы заслуженно гордимся!

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: