Комплексное тестирование и обеспечение качества мобильных и веб-приложений социальных онлайн-игр
ОПИСАНИЕ ПРОДУКТА
Заказчик — известный разработчик «социальных игр», которые включают в себя спектр увлекательных онлайн-игр для мобильных устройств. Они стали очень популярными среди конечных пользователей за счет их доступности, удобного дизайна и яркой анимации.
ОПИСАНИЕ ПРОЕКТА
Заказчик приступил к разработке своего первого мобильного продукта, стремясь создать высококачественное, удобное для пользователя игровое приложение. Для обеспечения успеха проекта к нему присоединились опытные специалисты a1qa. В результате продукт был запущен и завоевал значительную популярность на рынке. После этого заказчик доверил компании контроль качества других iOS/Android-приложений.
Для проведения мероприятий по обеспечению качества a1qa изначально назначила 3-х инженеров по мобильному тестированию, которые проверяли ПО на 8-ми самых популярных мобильных устройствах. Со временем продуктов стало больше, и возникла очевидная необходимость в расширении команды.
Пошаговый процесс включал накопление и передачу знаний через индивидуальное обучение. Инженеры по контролю качества сдавали экзамен, чтобы плавно интегрироваться в инфраструктуру и рабочие процессы заказчика. В настоящее время 87 экспертов в 4-х специализированных командах по контролю качества проводят тестирование на более чем 150 внутренних устройствах. Каждый специалист фокусируется на определенной области проекта, например, на тестировании бэкэнда.
Заказчик придавал большое значение личным встречам с кандидатами. Это помогало установить контакт и убедиться, что специалисты полностью соответствуют требованиям проекта. a1qa успешно организовывали эти встречи благодаря налаженным связям и коммуникации.
В ходе проекта инженеры a1qa:
- Помогают заказчику настроить стратегию «сдвига влево» в тестировании, что позволяет проводить контроль качества уже на начальных этапах разработки и предотвращать возникновение дефектов в ПО.
- С помощью автоматизации тестирования оптимизируют трудоемкие и длительные регрессионные проверки, выполняемые в различных средах.
- Непрерывно поддерживают высокое качество всех мобильных продуктов и помогают в успешном выпуске новых версий ПО на рынок.
- Обеспечивают эффективную работу в среде со множеством поставщиков. В настоящее время процессы настроены и отрегулированы таким образом, что QA-лиды из команд a1qa и других вендоров могут получать задания и работать над ними параллельно. Кроме того, a1qa иногда назначает задания инженерам из команд других поставщиков.
ВЫПОЛНЕННЫЕ РАБОТЫ
После присоединения a1qa к проекту, команда оперативно выстроила удобный график, быстро подстроившись под рабочее время клиента, без труда интегрировалась в его инфраструктуру и немедленно приступила к выполнению первоочередных QA-активностей.
- Процессные и технические аудиты
Периодически a1qa проводит аудит процессов, чтобы определить возможные области для улучшения или выявить существующие узкие места, непрерывно повышать качество предоставляемых услуг и гарантировать, что все QA-команды работают в соответствии с поставленными бизнес-задачами.
Кроме того, каждые несколько лет a1qa проводит комплексный технический аудит для ликвидации технологических недочетов, оценки эффективности автоматизированного и нагрузочного тестирования, а также для предотвращения утечек информации.
Регулярное выполнение этих мероприятий помогает улучшить качество релизов и обеспечить стабильно высокое качество кода.
Задачи команд различаются в зависимости от цикла проекта. Инженеры начали с проведения фронтенд тестирования. Благодаря хорошим знаниям продукта, им поручили и проверку бэкенда.
a1qa начала с создания QA-стратегии, чтобы сформировать общий подход к обеспечению качества ПО. Они определили наиболее подходящий тип тестовой документации — тестовые случаи. Поскольку бэкенд содержит сложную программную логику, а заказчик планировал автоматизировать тестирование, было важно описать каждый шаг процесса тестирования. После подготовки и проверки тестовых моделей, прохождения тестовых случаев в TestRail, QA-инженеры приступили к тестированию.
Во-первых, инженеры a1qa после каждой полученной сборки ПО осуществляли базовые проверки, позволяющие убедиться в том, что основная заявленная функциональность в общих чертах соответствует ожиданиям. В случае сбоя сборки отклонялись, а узкие места должны были быть устранены перед передачей сборок QA-командам для проведения более детального тестирования. Поскольку за один день могло быть сделано 20 сборок, a1qa ввела правило для разработчиков выполнять проверки работоспособности самостоятельно, используя список проверок от a1qa, и только после этого передавать сборки на дальнейшее тестирование.
В дальнейшем a1qa планирует автоматизировать все проверки работоспособности, чтобы оптимизировать процессы обеспечения качества и освободить время инженеров для выполнения других приоритетных проектных задач.
Кроме того, инженеры a1qa провели дымовое тестирование, тестирование новых функций, регрессионное тестирование и валидацию дефектов.
Эти совместные усилия помогли выявить проблемы в программном обеспечении, убедиться в том, что новая функциональность не влияет на логику продукта, и обеспечить безупречную работу ранее разработанных модулей.
- Тестирование мобильных приложений
Специалисты провели тестирование на реальных устройствах, приобретенных a1qa специально для проекта, чтобы обеспечить максимально реалистичную среду, которая отражает пользовательский опыт и повышает точность тестирования. Инженеры выполнили полный список проверок, включая:
Менеджер по контролю качества постоянно анализирует покрытие, чтобы гарантировать его полноту. Благодаря этому он всегда располагает информацией о спектре устройств, требуемых для проведения соответствующих проверок. В случае ротации проектов или выпуска новых телефонов QA-менеджер занимается необходимыми закупками. После приобретения устройства распределяются по соответствующим командам. Для обеспечения бесперебойной работы устройства направляются по новым местам дислокации QA-инженеров.
- Тестирование совместимости
Чтобы помочь клиенту охватить целевую аудиторию, использующую различные устройства, эксперты по контролю качества провели проверки совместимости. Они помогли гарантировать бесперебойную работу ПО на платформах iOS/Android и их версиях с разными размерами и разрешениями экрана, различными параметрами центральных и графических процессоров, памятью и другими характеристиками. В обязанности команды также входит и выпуск обновлений для различных платформ распространения, включая Google Play, Apple App Store, Amazon App Store.
Во время тестирования a1qa использует данные клиента для определения 10-ти наиболее часто используемых устройств для платежей на каждой платформе. Эти списки обновляются каждые три месяца, чтобы обеспечить тщательное покрытие.
Поскольку устройства устаревают, а на рынке появляются новые с уникальными функциями, инженеры пересматривают списки и закупают свежие модели каждые полгода.
- Тестирование локализации
Стабильно высокий уровень пользовательского опыта для клиентов по всему миру — это ключевой фактор для расширения присутствия на рынке. Поэтому a1qa провела тестирование локализации. Заказчик успешно адаптировал программное обеспечение для выхода на международные рынки, включая ЕС, США, Канаду, Австралию и части Азии, благодаря тестированию важных элементов, включая правильные макеты данных, культурные аспекты и многие другие. Под контролем a1qa вся функциональность была спроектирована с учётом специфики целевых рынков.
- Автоматизация тестирования
Чтобы оптимизировать трудоемкие и времязатратные проверки, ускорить развертывание программного обеспечения и обеспечить регулярность релизов, a1qa автоматизировала часть операций по тестированию фронтенда и бэкенда.
Автоматизация фронтенд-части
Заказчик хотел автоматизировать тестирование 3-х мобильных приложений, созданных с использованием движка Unity, что накладывало ограничения на тестирование элементов пользовательского интерфейса, поскольку с ними было невозможно взаимодействовать.
Первоначально заказчик использовал инструмент тестирования AltUnity с открытым исходным кодом и Appium для автоматизации тестов путем отправки запросов в сборку приложения и получения данных об элементах пользовательского интерфейса. Однако позже компания разработала собственный инструмент на основе протокола WebSocket. Он установил безопасное соединение и обеспечил плавную передачу данных, встроив в сборку специальный плагин для доступа к требуемым элементам. Кроме того, инженеры заказчика создали решение для перечисления всех элементов на экране, что позволило тестировщикам выбирать конкретный элемент для взаимодействия.
В рамках этих мероприятий QA-инженеры по автоматизации со стороны a1qa сосредоточились на изучении возможностей решения для автоматизации тестирования с открытым исходным кодом. Их целью было предоставить всестороннее сравнение с внутренним инструментом, помогая в процессе принятия решений для выбора наиболее подходящего варианта.
Другие приоритетные обязанности a1qa включают:
- Разработку индивидуального решения во внутреннем R&D по автоматизации тестирования для ускорения получения результатов тестовых запусков втрое.
- Повышение стабильности автоматизированных тестов, чтобы тратить меньше времени на исправление проблем после каждого автоматизированного тестового запуска. Риски стабильности возникают из-за частых обновлений фреймворка.
- Автоматизацию отчетов и визуализацию показателей, обеспечивающие QA-лидам мониторинг текущего прогресса в режиме реального времени и определение шагов по улучшению.
- Поддержку CI-системы для автоматизированных тестовых прогонов, гарантирующую непрерывную оценку качества.
- Разработку новых автоматизированных тестов для постоянного расширения тестового покрытия.
- Обеспечение поддержки автоматизации тестирования для ряда других подпроектов (например, связанных с тестированием веб-форм).
Автоматизация бэкенд-части
Для проверки качества бэкэнда команда a1qa автоматизировала регрессионное тестирование API как для нового мобильного приложения, которое еще не было выпущено, так и для существующих решений, доступных в магазинах, все из которых имели один общий бэкэнд.
Новое приложение было разработано на основе микросервисной архитектуры. Чтобы подтвердить, что API правильно отправляют запросы и возвращают корректный ответ, специалисты подготовили автоматизированные скрипты на основе Java и написали кастомизированный фреймворк по автоматизации тестирования.
Что касается уже существующих мобильных приложений, то заказчик инициировал процесс их реинжиниринга с монолитной архитектуры на микросервисную.
Эта часть бэкенда была сложной и включала в себя разнообразные админ-панели и сервисы, предлагающие дополнительные функции, такие как объединение конечных пользователей в сегменты или управление учетными записями.
Чтобы сэкономить время и обеспечить дополнительную ценность с первых этапов реархитектурных преобразований, инженеры по автоматизации a1qa помогли заказчику определить объём работ. Они разработали автоматизированные тесты для обеспечения качества унаследованного бэкэнда и поддерживали эти тесты для предотвращения проблем со стабильностью, особенно когда тестирование включало элементы пользовательского интерфейса.
При тестировании новых и текущих приложений специалисты a1qa настроили интеграцию с Allure Report и TestRail для эффективного управления тест-кейсами, организации автоматизированного мониторинга результатов и получения информации о QA-процессе в режиме реального времени. Для обеспечения непрерывной оценки качества тесты проводились 4 раза в месяц.
Повышение эффективности автоматизации тестирования с помощью искусственного интеллекта (ИИ)
Чтобы повысить экономическую эффективность, инженеры по автоматизации контроля качества a1qa в сотрудничестве со специалистами заказчика изучили возможность использования ИИ-инструментов для автоматизации написания кода в процессе контроля качества как для фронтенда, так и для бэкенда.
Первое исследование касалось внедрения инструмента на основе ИИ для автоматической проверки кода в запросах на слияние. Используя ИИ, a1qa могла оптимизировать ее, быстрее предоставлять автоматизированные тесты и обновления программного обеспечения, а также высвободить время ведущих инженеров для выполнения других приоритетных задач.
После тщательного анализа a1qa и заказчик остановились на Code Rabbit, так как он может отслеживать историю всех коммитов по всей ветке кода до запроса на извлечение, тем самым предоставляя более точные, контекстно-зависимые технические комментарии по качеству кода после любых изменений.
Второе ключевое исследование касалось выбора ИИ-инструмента для сокращения времени разработки автоматизированных тестов, так как из-за высокой сложности программного обеспечения средний показатель составил 8 часов.
Особое внимание в процессе выбора a1qa уделила управлению рисками. Понимая внутренние требования проекта, а также опасения и ожидания заказчика, a1qa выявила проблемные области и отметила их для дальнейшего обсуждения с заказчиком и разрешения.
В частности, в приоритете у заказчика были вопросы безопасности при использовании ИИ. Специалисты a1qa проанализировали возможные узкие места и даже теоретические риски внедрения, разработав комплексные меры по их устранению.
После завершения исследования a1qa предложила использовать GitHub Copilot. Время разработки автоматизированного теста сократилось на 28%, а всего за девять месяцев QA-команда сэкономила 788 часов, что можно сравнить с реализацией дополнительных 225 автоматизированных тестов.
a1qa использует GitHub Copilot и в других мероприятиях по автоматизации тестирования и планирует собрать данные о его эффективности.
- Тестирование производительности
Желая улучшить качество обслуживания клиентов, оценить способность программного обеспечения справляться с большим потоком конечных пользователей и обеспечить его быструю работу, заказчик инициировал тестирование производительности как на стороне сервера, так и на стороне клиента.
С помощью клиентских проверок QA-инженеры оценили простоту использования приложений, соответствие установленным требованиям, определили проблемы, затрагивающие пользовательский опыт, и предложили комплекс мер по их оптимизации.
Что касается проверок на стороне сервера, то они включали все основные виды — от стрессового до объемного тестирования. Команда смогла гарантировать, что после переноса бэкенда мобильных приложений в облако он сможет выдерживать требуемую нагрузку без ущерба для качества.
Помимо тестирования, инженеры по контролю качества настроили систему мониторинга производительности (например, панели мониторинга в Grafana, New Relic) для:
- постоянного наблюдения и измерения выходных данных программного обеспечения в режиме реального времени,
- сбора показателей производительности для будущего использования,
- диагностики проблем производительности или узких мест,
- сравнения тестов (например, во время разных релизов),
- сбора исторических данных всех выполненных тестов.
Кроме того, за последний год команда a1qa полностью автоматизировала проверки производительности, что помогло ускорить процесс контроля качества и обеспечить раннее выявление проблем.
- Интеграционное тестирование
Для QA-команды было важно убедиться, что различные компоненты и модули остаются полностью совместимыми и не представляют никаких рисков для правильной работы программного обеспечения.
Специалисты провели интеграционное тестирование, удостоверившись в корректной работе ПО и отсутствии ошибок, что позволило в том числе легко входить в приложение через соцсети, например Facebook.
В ходе тестирования инженеры сохраняли каждую выявленную проблему в «журнале ошибок проекта». Не реже одного раза в месяц эксперты просматривают данные, обсуждают потенциальные проблемы, требующие решения, и результаты устранения любых предыдущих проблем.
ПРЕДОСТАВЛЕННЫЕ СЕРВИСЫ
- Функциональное тестирование
- Тестирование мобильных приложений
- Тестирование совместимости
- Тестирование локализации
- Автоматизация тестирования
- Интеграционное тестирование
- Тестирование производительности
- Процессные и технические аудиты
ТЕХНОЛОГИИ И ИНСТРУМЕНТЫ
- JDK
- Appium
- Allure Framework
- Android Studio
- MS Internet Explorer
- Atlassian JIRA
- EDGE
- Charles
- Gradle
- TestNG
- CI: Bamboo
- Xcode
- Google Chrome
- TestRail
- Postman
- Grafana
- GameBench
- BlazeMeter
- GitHub Copilot
- CodeRabbit
ЗАКЛЮЧЕНИЕ
За 9+ лет сотрудничества команда a1qa выполнила более 600 000 тестов.
Благодаря хорошо настроенным каналам связи между выделенными командами и отлаженным процессам взаимодействия с разработчиками заказчика инженеры по контролю качества с уверенностью гарантировали соблюдение всех сроков в установленном порядке. Все обнаруженные дефекты были исправлены до выпуска 600 обновлений программного обеспечения.
Работа над проектом ведётся и сейчас. Заказчик высоко оценил ответственный подход команды a1qa и с удовольствием продолжает сотрудничество.
РЕЗУЛЬТАТЫ
-
Обеспечена бесперебойная работа мобильных приложений социальных онлайн-игр за счет комплексного тестирования ПО.
-
Ускорено время развертывания за счет внедрения автоматизации тестирования на стороне клиента и сервера.
-
Значительно повышена эффективность процессов разработки ПО за счет внедрения тестирования со сдвигом влево.
В ЦИФРАХ
-
9лет продолжительность проекта
-
4платформы протестированы
-
150+устройств задействованы при тестировании
-
87инженеров по мобильному тестированию задействованы на проекте
-
788часов сэкономлено за 9 месяцев за счет ИИ
-
100%соблюдение сроков и бюджета