Клиент:
Департамент информационных технологий города Москвы (ДИТ)
Проект:
Функциональное, автоматизированное и нагрузочное тестирование портала государственных услуг города Москвы
«Госуслуги Москвы» входят в число продуктов Департамента информационных технологий города Москвы. Команда инженеров по тестированию работает на проекте с 2017 года.
Портал государственных услуг города Москвы позволяет удаленно узнавать информацию о государственных и муниципальных услугах, заказывать госуслуги в электронной форме, записываться на приём в различные ведомства, оплачивать штрафы, судебные и налоговые задолженности, госпошлины, услуги ЖКХ, оценивать качество предоставления госуслуг и другое.
Количество тестируемых систем меняется в зависимости от потребностей проекта. Помимо регулярных систем команда в 2020 году тестировала все продукты, направленные на борьбу с распространением Covid-19 в Москве. Таким образом, список тестируемых систем был расширен втрое.
Для регулярно тестируемых систем команда провела функциональное и интеграционное тестирование, что позволило выпустить в продуктивную среду качественные релизы к заданным срокам.
Вся активность по задачам инженеров тестирования, а также хранение артефактов тестирования осуществлялось в трех системах: JIRA, Confluence, HP SM. Для тестирования части задач на тестовых контурах использовались Postman, Soap UI, Graylog, БД.
Помимо функционального и интеграционного тестирования проводится автоматизированное и нагрузочное тестирование. Автоматизация позволяет проводить регрессионное тестирование на ежедневной основе в любое удобное время и с минимальным влиянием человеческого фактора. Также проводилось нагрузочное тестирование, чтобы выявить слабые места системы и не допустить сбоев при высокой нагрузке.
Автоматизация тестирования производилась с помощью тестового фреймворка, включающего Java, TestNG, Citrus, Cucumber, в основе – Qameta Altas, Selenium. Система сборки проекта – Maven. Система контроля версий – Git. Среда разработки автотестов – Intellij Idea. Построение CI осуществлялось с помощью Jenkins.
В процессе нагрузочного тестирования системы задействован Jmeter для подачи нагрузки на систему. Для мониторинга применялись InfluxDB (БД), Chronograf, Grafana, Zabbix, Splunk, Graylog. Для хранения данных – PostgreSQL, Redis.
Система контейнеризации при проведении автоматизированного и нагрузочного тестирования – OpenShift.
Цели:
- Внедрить процесс функционального и интеграционного тестирования.
- Минимизировать риски возникновения дефектов в промышленных средах.
- Внедрить и выстроить процесс автоматизированного регрессионного тестирования.
- Сократить время вывода нового функционала в продуктивную среду.
- Минимизировать риски, связанные со снижением производительности системы под нагрузкой.
Подтвердить стабильность работы системы при фиксированной нагрузке.
Результаты:
- Построен процесс функционального и интеграционного тестирования.
- Общее количество пропущенных дефектов сократилось в 4 раза, из них количество критических и высоких сократилось до нуля.
- Количество дефектов, пропущенных по причине недостаточности тестовой модели, снизилось на 90%.
- Запущены End To End тесты по проектам, где это было необходимо.
- Построен процесс автоматизированного регрессионного тестирования по методологии Scrum.
- Сокращено время вывода нового функционала и багфиксов в продуктивную среду с четырех рабочих дней до двух благодаря автоматизации тестирования.
- Процесс нагрузочного тестирования успешно интегрирован и отлажен.
Успешно интегрирована в нагрузочное тестирование технология OpenShift, которая позволила сэкономить ресурсы для тестирования.
Выстроенные процессы помогли команде тестирования адаптироваться в период 2020 года к необходимости оперативно тестировать продукты, направленные на борьбу с распространением COVID-19 в Москве. Увеличились объемы тестируемых систем и штат инженеров по функциональному тестированию был увеличен в два раза при первой волне COVID-19. Из-за увеличения нагрузки на «Госуслуги Москвы» были выстроены процессы по круглосуточному тестированию. Помимо регулярных систем нужно было тестировать те, что отвечают за получению пропусков в виде QR-кодов для перемещения по городу; функционал по контролю посещения заведений по QR-коду; форму, которая позволяет записаться на вакцинацию, и многие другие продукты в рамках деятельности ДИТ Москвы, предоставляющей возможность получать услуги удаленно.
По итогам все системы вышли в продуктовую среду с минимальными издержками и в оперативные сроки.