Среди кейсов которыми мы гордимся — наша работа с компанией «Гринатом». Очень ответственный проект разработки средств автоматизации функционального тестирования, для которого мы придерживались высоких стандартов качества кода и использовали наиболее актуальные и поддерживаемые решения.
И у нас получилось неплохо. Мы предоставили клиенту весь нужный инструментарий, ещё и заложили в него идеи, которые предвосхитили пожелания заказчика.
И вот как это было.
Про зеленый атом и его задачи
«Гринатом» – это 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 раз.
- Предоставить средства для быстрой обратной связи по качеству текущей сборки.
- Сократить рутинные операции ручного тестирования, в т.ч. и задачи генерации данных.