Чтобы грамотно тестировать сложные продукты, нужно долго и вдумчиво готовиться и анализировать каждый шаг. Но как быть, если у заказчика мало ресурсов, нет собственных специалистов по качеству, сроки сжаты, а решение необходимо здесь и сейчас? Рассказываем, как нам удалось быстро протестировать федеральную платформу для подготовки к ЕГЭ, не потратить много ресурсов, а также с нуля выстроить процессы контроля качества для клиента.
О проекте
- Платформа оказалась способна обрабатывать меньше 2% от заявленного показателя в 4000 rps.
- Тест стабильности показал резкое снижение производительности, а затем остановку системы через час работы.
- Точечные тесты дали понять, что использование процессора в периоды пиковой нагрузки доходило до 100%.
- Инженеры провели дополнительную аналитику и нашли источник проблем — обращения к базе данных, влияние на производительность которых разработка не предусмотрела.
- Передали полную методику тестирования и рекомендации в Boomq (единственный в России Low-Code инструмент для нагрузочного тестирования) — она позволила клиенту сделать повторные проверки и устранить узкие места самостоятельно.
Исходные данные
В июле 2022 года к «Перфоманс Лаб» обратилась компания-разработчик программного обеспечения. Запросом было нагрузочное тестирование федеральной онлайн-платформы для подготовки к ЕГЭ. Эта платформа помогает проходить курсы по любым школьным предметам: смотреть вебинары, выполнять тесты и загружать задания в виде файлов.
К моменту тестирования релиз уже состоялся, и платформу какое-то время использовали реальные преподаватели и ученики. Заказчик лишь хотел убедиться в том, что продукт полностью готов к новому учебному году. По прогнозам аналитиков, совокупный объем абитуриентов в 2023 году должен создать нагрузку на систему равную 4 000 запросов в секунду (RPS, requests per second).
«Пиковая нагрузка на платформу приходится на конец весны — начало лета. Во время сезонной активности мы не успели обсудить все детали с заказчиком — первый признак того, что проект будет непростым.
В команде клиента отсутствовали эксперты по качеству. Было принято решение провести тестирование и использовать результаты для обеспечения стабильной работы в 2023 году.»
руководитель проекта
Платформа предусматривает две пользовательские роли с разным функционалом: для ученика и для преподавателя. Этот фактор, совокупно с географическим распределением пользователей и разными периодами активности, усложнил задачу по формированию профиля нагрузки.
Команда тестирования приступила к разработке методики. В итоге было решено описать три пользовательских сценария.
- проходит тесты с чек-боксами
- загружает творческое задание в виде файла
- проверяет домашнее задание
Однако описать эти скрипты недостаточно — нужно было решить, с помощью каких ресурсов нагрузка будет подана на платформу.
«Стандартное решение в таких случаях — развернуть тестовые среды и генераторы нагрузки, используя ресурсы заказчика. Это можно делать на его серверах или закупив мощности виртуального хостинга.
Какое-то время мы склонялись ко второму варианту, но в итоге решили сэкономить — среды на внешних хостингах обходятся очень дорого, нужно оплачивать их работу 24 на 7, независимо от того, сколько часов реально длилось тестирование».
менеджер проекта
На сцену выходит Boomq
Решение должно было быть максимально удобным и понятным как заказчику, так и самому владельцу платформы. Оценив все «за» и «против», команда выбрала разработанный силами «Перфоманс Лаб» Boomq.
Boomq — единственный в России Low-Code инструмент для нагрузочного тестирования. Такой подход позволяет ему оставаться быстрым, понятным и максимально адаптивным. Прямо внутри платформы можно собирать команды, включая в состав представителей заказчика: сразу показывать промежуточные результаты, анализировать и искать решения, не дожидаясь сдачи проекта. Кроме того, Boomq обеспечивает прозрачность процесса нагрузочного тестирования, заказчик может обучиться и проводить нагрузочное тестирование на других продуктах (или в других итерациях этого же) сам.
«В Boomq есть компоненты, которые сильно ускоряют процесс тестирования. Делать все то же самое на open-source инструментах дольше и сложнее для заказчика. Boomq — это как готовый чемоданчик, открывай и пользуйся. Значительно проще, чем когда мы из разных карманов пытаемся достать отвертки, молоточки, где-то докупить винтики и всё это между собой „подружить“».
владелец продукта BOOMQ,
независимый эксперт
Но главное — у продукта есть две версии:
Команда использовала именно облачный Boomq: его удобство в том, что не нужно выделять ресурс на нагрузочные станции, оплачивать и постоянно держать машины в рабочем состоянии.
Генераторы нагрузки разворачиваются автоматически на время работы — колоссальная экономия и удобство.
98% отклоняемых запросов
Вначале необходимо было дать начальный уровень нагрузки с постепенным увеличением — чтобы найти точку, в которой платформа станет неработоспособной. Максимальной производительностью команда считала момент, в котором количество ошибок по операциям и расхождение с профилем не превышает 10%. Отклик системы при этом не должен превышать 10 секунд.
Как правильно рассчитать шаг нагрузки, можно прочитать здесь.
Теста стабильности платформа не выдержала: через час показатели резко ухудшались и увеличивалось время отклика. Причины таких отклонений нашлись быстро и на первый взгляд казались очевидными.
«Boomq помогает быстро просмотреть графики и сопоставить, что происходит в разных частях системы. Максимально упрощая, мы сопоставили метрики обработки данным с графиками производительности. Выяснилось, что во время активности виртуальных пользователей, загрузка процессора достигала почти 100% — что, собственно, и вызывало падение платформы».
ведущий инженер на проекте
Решение
Качественное тестирование не только указывает на проблему, но и находит ее источник. Обсудив результаты с заказчиком, команда «Перфоманс Лаб» предложила сделать дополнительные точечные тесты. Они могли выявить причину аномальной загрузки процессора, которая вызывала проблемы производительности.
С помощью корреляционного анализа удалось выяснить, что загрузку процессора вплоть до 100% вызывали обращения к базе данных. Иными словами, разработчики платформы предусмотрели обращения к протоколу http, но не учли то, как запросы к базе данных влияют на производительность.
Проблема была найдена и локализована. Благодаря точечным тестам стало ясно, что владельцу платформы необязательно наращивать мощности и менять железо — достаточно внести изменения в код и оптимизировать логику обращений к базе данных. Этим предстояло заняться команде разработки, которая получила все данные о результатах тестирования.
Итоги
«Не скажу, что работа шла легко, но в итоге мы уложились в 31 рабочий день, включая все уточнения. Кроме того, мы сами презентовали результаты тестирования владельцу продукта и объяснили суть проблемы».
менеджер проекта
Вся документация по проекту была передана 5 сентября. Разумеется, заявлять, что в итоге продукт был готов к использованию к началу сезона, нельзя — все-таки проблемы, которые выявило тестирование, были слишком серьезными. Однако у разработчиков появилось понимание, что именно нужно исправлять, и вся информация, чтобы сделать это в кратчайшие сроки.
Более того: тестировщики решили сэкономить ресурсы заказчика еще раз и передали всю теоретическую базу вместе с доступом к тестовым средам.
«Boomq использует концепцию „тестирование как сервис“. Это значит, что мы полностью оказываем услугу с помощью нашего же продукта, после чего обучаем заказчика.
Инструмент настроен, механизмы описаны, и в следующий раз клиент сможет сам провести нагрузочное тестирование без глубокого погружения в тему. Это очень важно для нас: проект не просто выполнен и закрыт — мы продолжаем присутствовать в жизни заказчика и готовы оказать поддержку там, где нужно».
владелец продукта BOOMQ,
независимый эксперт
Инструмент можно встроить в пайплайн CI/CD и анализировать, как меняются метрики системы для каждого релиза. Это позволяет избежать ситуации, когда после доработок производительность резко ухудшилась, и это ощутили на себе реальные пользователи.
До этого проекта Boomq редко использовался как решение «под ключ». Комбинация, которую разработали инженеры «Перфоманс Лаб», может широко применяться на рынке. Помимо всего прочего, Boomq — серьезный инструмент импортозамещения. Он позволяет проводить весь процесс контроля качества, не прибегая ни к каким зарубежным аналогам: от разработки методики до удобной интерпретации данных. В платформе присутствуют автоматизированные тренд-отчеты: это значит, что можно настроить шаблон всего один раз, и платформа будет сама заполнять нужные данные с любой периодичностью.
Почему это важно
После 24 февраля объем EdTech ожидаемо пошел на спад. О ситуации в марте подробно рассказывает, к примеру, гендиректор платформы «Нетология» Марианна Снегирева. Однако уже к осени рынок образовательных продуктов не только выровнялся, но и обнаружил тенденцию к росту. Согласно исследованию «Коммерсанта», российский EdTech по итогам 2022 года вырастет минимум на 10–15%, а сегмент дополнительного профессионального образования — на 25–30%.
«Спрос на образование растет в любой кризисный период, так люди реагируют на неопределенность. Мы это видели и в 2014–2015 годах, и в пандемию, и сейчас», — комментирует управляющий партнер Skyeng Александр Ларьяновский.
Стабильнее всего растут продукты, связанные с образованием детей: онлайн-школы, курсы, развивающие активности. Главная тенденция среди взрослых студентов — повышенный интерес к освоению новых профессий, особенно в сфере IT. Хуже всего ситуация обстоит с корпоративным обучением, что объяснимо — в условиях кризиса далеко не каждая компания готова вкладываться в обучение сотрудников.
Новый сегмент заинтересованных в продуктах EdTech — люди, уехавшие из России. С большой долей вероятности можно сказать, что нас ожидает новый виток интереса к обучению для детей, а также языковым и профессиональным курсам.
В этих условиях можно предсказать появление огромного количества новых онлайн-школ и других инфопродуктов — конкуренцию преподавателям и компаниям также могут составить курсы, построенные на личном бренде (продукты блогеров, знаменитостей, публичных людей). Завоевать симпатии клиентов в этом поле будет не так просто – и здесь как никогда важным становится качество услуг, удобство пользования платформой.
Ситуация, описанная в кейсе, была довольно опасной для бизнеса: если бы разработчикам не удалось вовремя оптимизировать логику обращений к базе данных, платформа потеряла бы большую часть клиентов. Масштабируя бизнес и рассчитывая бюджет на маркетинговые активности, особенно важно просчитывать нагрузку на платформу и постоянно проверять собственные гипотезы.