ОПИСАНИЕ ПРОДУКТА

Заказчик — известный разработчик «социальных игр», которые включают в себя спектр увлекательных онлайн-игр для мобильных устройств. Они стали очень популярными среди конечных пользователей за счет их доступности, удобного дизайна и яркой анимации.

ОПИСАНИЕ ПРОЕКТА

Заказчик приступил к разработке своего первого мобильного продукта, стремясь создать высококачественное, удобное для пользователя игровое приложение. Для обеспечения успеха проекта к нему присоединились опытные специалисты 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%
    соблюдение сроков и бюджета