Практика тестирования стабильности Android
Практика тестирования стабильности Android

фон

Зачем необходимо тестирование стабильности клиента?

Тестирование стабильности — это обязательный компонент тестирования, обеспечивающий полноту и правильность функций. Посредством тестирования стабильности программного обеспечения мы можем наблюдать частоту ошибок и снижение производительности программного обеспечения в течение рабочего цикла и в определенных условиях нагрузки. Тенденции и т. д. Это значительно снижает количество сбоев и зависаний после запуска программного обеспечения, обеспечивая направление и проверку для постепенной оптимизации программного обеспечения.

Каковы опасности, вызванные проблемами стабильности?

  • Влияние на репутацию бренда
  • Снижение удержания пользователей
  • Влияние на пользовательский опыт

Что касается видеобизнеса, в определенной версии базовая техническая архитектура была итерирована для оптимизации потребностей нескольких игроков. Пользователи впервые наблюдали сбой видео после обновления до новой версии с общим объемом сбоев 39 КБ. На этапе функционального тестирования вероятность возникновения с функционального уровня крайне мала, но она сработает при большом количестве пользователей.

Цель

  • Сбои стабильности клиента уменьшены на 20%
  • Коэффициент замыкания цикла для проблем со стабильностью на этапе оттенков серого версии составляет 100 %.
  • Инструмент ежедневного тестирования стабильности работы, перехват ошибок интеграции и оттенков серого.
  • Создание унифицированных возможностей тестирования стабильности

Проект технического решения

Программа исследований

1、Google Monkey

Во-первых, давайте посмотрим на инструмент, который ранее использовался в отрасли и о котором часто слышали, — Monkey. Это инструмент, официально предоставляемый Android. Изначально Google разработал этот инструмент для стресс-тестирования приложений.

Когда Google разрабатывал Android на заре, Android должен был реагировать на такие события, как скольжение, ввод, громкость, телефонные звонки и т. д. Когда ранний дизайн Activity был несовершенным, Google хотел проверить производительность действия.

Выводите все данные в Activity в пакетном режиме и смотрите, какой объем данных Activity может обработать за одну секунду. Итак, на первых порах Monkey использовался как инструмент стресс-тестирования Android.

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

Невозможно гибко управлять, часто нажимая на внешние приложения и не имея возможности вернуться к исходному тестовому приложению или нажимая кнопку выхода и выхода, что делает невозможным продолжение последующих тестов;

Поэтому после исследования и понимания обезьяна не стала нашим первым выбором для тестирования стабильности.

2、AppCrawler

Официальное объяснение этого инструмента на GitHub от AppCrawler: инструмент для сканирования приложений, основанный на автоматическом обходе. Поддерживает Android и iOS, поддерживает реальные устройства и эмуляторы. Самая большая особенность — это гибкость, а правила обхода можно установить посредством конфигурации.

преимущество:

  • Кроссплатформенность: AppCrawler разработан на основе Appium, поэтому поддерживает Android, iOS и Интернет.
  • Гибкая настройка: Вы можете свободно управлять просматриваемыми страницами, элементами управления, событиями, глубиной и т. д.

недостаток:

  • Медленная скорость работы: разработка на основе Appium имеет преимущество кроссплатформенности, но также из-за этого уровня инкапсуляции скорость работы относительно низкая, плюс в процессе запуска добавляются скриншоты (можно отменить в конфигурации, но отменить пользы это не принесет) Просматривая результаты), операция естественно будет медленной;
  • Высокий порог использования: из-за гибкости использования также был повышен порог использования. Конфигурация в основном основана на соответствующих технических знаниях по использованию Appium в файлах YAML, что налагает на пользователей определенные технические требования;

3. Максим автоматизированный обход

Maxim также является инструментом автоматического обхода. Он был разработан Чжанчжао, местным студентом. Официальное определение: эффективный тестер Android Monkey, доступный для эмуляторов и реальных устройств. Высокопроизводительный Android Monkey, основанный на правилах обхода, подходящий для реальных устройств. машины/эмуляторы. Стресс-тест пользовательского интерфейса приложения.

преимущество:

  • Основан на вторичной разработке Monkey, работает очень быстро.
  • Для улучшения покрытия предусмотрены различные алгоритмы обхода.
  • Предоставляет настраиваемые функции для управления процессом.

недостаток:

  • Поскольку он основан на Monkey, он не является кроссплатформенным и может тестировать только Android, но не iOS и Интернет;

Это отличный инструмент, который можно в определенной степени настроить. Если вы тестируете только системы Android, вы можете рассмотреть возможность использования Maxim для автоматического обхода.

Официальный адрес GitHub: https://github.com/zhangzhao4444/Maxim.

4. Инструмент тестирования надежности Bytedance Fastbot

Fastbot — это инструмент тестирования на основе моделей, разработанный командой лаборатории качества ByteDance и сочетающий в себе машинное обучение и обучение с подкреплением.

Fastbot можно понимать как обновленную версию MaxIM. Для расширения охвата он включает в себя различные алгоритмы машинного обучения, обучения с подкреплением и другие связанные алгоритмы. Он выполняется быстро и значительно улучшает тестовое покрытие. Эффект применения также очень хорош.

В настоящее время Fastbot широко используется для тестирования стабильности и совместимости продуктов байтовых клиентов. Количество запускаемых ежедневно задач превышает 300 раз, ежедневно обнаруживается в среднем более 5000 сбоев, а также более 100 вновь зафиксированных сбоев. С помощью возможностей Fastbot мы можем исправить большинство сбоев еще до выпуска версии.

Обеспечьте онлайн-пользовательский опыт. В то же время Fastbot играет важную базовую сервисную роль во всем процессе DevOps. Мы считаем, что все больше и больше интеллектуальных инструментов тестирования значительно улучшат отечественную индустрию традиционного тестирования.

Официальный адрес GitHub: https://github.com/bytedance/Fastbot_Android.

Преимущества

  • 1. Совместимость с несколькими ОС Android

Совместимость с Android 5-11 одновременно, совместимость с системами Android, настроенными отечественными производителями, и собственными системами Android.

  • 2. Быстрое введение событий

Наследовать родной Monkey Преимущества, быстрый клик, может отправлять до секунды 12 события

  • 3. Экспертная система

Различные направления бизнеса удовлетворяют разные персонализированные потребности, а бизнес глубоко индивидуализирован.

  • 4. Интеллектуальное тестирование

На основе моделирования на основе моделей во время перемещения с использованием таких алгоритмов, как обучение с подкреплением, для принятия высокопроизводительных решений.

  • 5. Кроссплатформенность

Поддержка нестандартизированных элементов управления, YOLOv3, ocr, сегментации CV и других возможностей распознавания изображений пользовательского интерфейса.

  • 6. Повторное использование модели

Поддерживает повторное использование модели. Файл модели будет автоматически сохранен в /sdcard/fastbot_[имя пакета].fbm. Если этот файл существует при запуске fastbot, модель будет загружаться по умолчанию. Во время работы модель будет перезаписываться каждые десять минут. Пользователи могут настроить файл в соответствии со своими потребностями. Удалить или скопировать этот файл.

После всестороннего сравнения преимуществ и недостатков вышеупомянутых технических фреймворков Fastbot был окончательно выбран в качестве механизма выполнения для тестирования стабильности Android.

Наращивание потенциала

В основном это три направления:

  • Анализ данных: анализируйте классификацию проблем на каждом этапе детализации, коэффициент возникновения, скорость ремонта и другие показатели.
  • Спецификация процесса: Разработайте процесс восстановления после сбоев, чтобы снизить риск появления оттенков серого и полной громкости.
  • Возможности инструмента: Конструкция каркаса, ошибки Отчет、непрерывная интеграция, улучшение охвата, точность bug Распространение и продвижение инструмента.

веха

В основном он разделен на четыре ключевых узла:

  • Исследование спроса
  • Технические исследования
  • Бизнес-пилот
  • оперативный анализ

Архитектура инструмента

Архитектура инструментаследующее: В основном разделен на уровень инструментов и уровень обслуживания.

  • Уровень инструментов в основном предоставляет базовые возможности для выполнения инструментов тестирования.
  • Уровень сервисов в основном предоставляет сервисные возможности уровню инструментов, такие как: установка данных пакета, создание сервисов ошибок, сохранение сервисов отчетов и т. д.

Процесс выпуска

Наряду с ритмом выпуска клиента, задачи тестирования стабильности запускаются автоматически с момента загрузки требований до завершения пакета интеграции. Обнаружены проблемы со стабильностью

Ошибки будут автоматически отправляться и назначаться студентам, занимающимся исследованиями и разработками, а данные индикаторов, такие как тенденции версий и время выполнения, можно будет анализировать глобально через панель управления качеством.

На этапе интеграции версий и этапе оттенков серого мы продолжаем отслеживать и продвигать замкнутый цикл проблем, чтобы достичь уровня замкнутого цикла 100%, а индекс замкнутого цикла индекса стабильности используется в качестве индекса оценки доступа к качеству версии.

непрерывная интеграция

Опираясь на Jenkins с открытым исходным кодом, непрерывная инструмент интеграции для планирования задач и узлов выполнения устройств. Дженкинс Экземпляр устанавливается на другое независимое устройство, обычно называемое Jenkins Controller。

Сам агент Jenkins представляет собой просто среду для компиляции, упаковки и выполнения кода и не включает экземпляр Jenkins. Каждый агент Jenkins может быть подключен к нескольким устройствам Android.

Создавайте задачи тестирования стабильности, пишите сценарии сборки и реализуйте стратегии тестирования в Jenkins.

Эффект пола

Данные процесса:

  • Количество казней: Android 3500+
  • Исполнительная машина: несколько устройств (Xiaomi, Huawei, Hongmeng, Redmi) * по расписанию три раза в день
  • Время выполнения: совокупное время выполнения: Android 20+ минут, каждое выполнение — 60 минут.

Данные результата:

  • Совокупно найдено более 75 ошибок.

Тенденции ошибок обнаружения версий

Доля ошибок, обнаруженных на этапе интеграции клиента/в оттенках серого

boy illustration
Корпоративная практика Traefik: внедрение Traefik на производственном уровне
boy illustration
Каковы основные модели обслуживания облачных вычислений? Каковы их характеристики?
boy illustration
Уведомление о выпуске COS нового доменного имени tencentcos.cn
boy illustration
Дополнительные правила поощрения Роспотребнадзора на 22 марта
boy illustration
Анализ и лечение причин вирусов-вымогателей и майнинга на серверах
boy illustration
Hexo -26- Бесплатное ускорение CDN CloudFlare
boy illustration
Разница между традиционным хранилищем и объектным хранилищем
boy illustration
Использование хост-порта и хост-сети в Kubernetes
boy illustration
Учебное пособие о том, как создать частный сервер Palworld одним щелчком мыши
boy illustration
[Зона легкого облачного игрового сервера] Как продлить срок действия игрового сервера и вернуть деньги за него?
boy illustration
Исследование и практика реального бизнес-производства и применения GBI (генеративная бизнес-аналитика)
boy illustration
Перейти в облако государственных активов или облако по делам правительства? Безопасное облако зависит от оценки облака
boy illustration
Поговорим о ситуационной осведомленности с нуля
boy illustration
Внедрение промежуточного программного обеспечения универсального хранилища файлов через протокол S3.
boy illustration
Поймите управление продукцией в одной статье: от теоретических норм, практического применения до безопасности цепочки поставок.
boy illustration
Feiniu fnos использует Docker для развертывания учебника по iptv-источникам
boy illustration
RDMA — принцип проектирования подкачки по требованию ODP, преимущества и анализ исходного кода
boy illustration
Этот вычислительный кластер, выпущенный Goose Factory, может обучать большие модели с триллионами параметров за самые быстрые 4 дня.
boy illustration
[Техническая посадка] Дабл Одиннадцать! Приближается большая волна скидок на создание веб-сайтов, почему бы не прийти сюда, чтобы создать веб-сайт?
boy illustration
[Представление сообщества] Реализация шлюза k8s на основе Pingora, практика кода (1)
boy illustration
Стратегия создания веб-сайтов IIS на облачном сервере Сколько веб-сайтов может создать облачный сервер?
boy illustration
Cloud Native использует Docker для развертывания личной навигационной страницы на домашней странице.
boy illustration
Разработка приложения HarmonyOS | HarmonyOS Next-анализ всего процесса от разработки приложения до запуска
boy illustration
Поделитесь хорошим местом для загрузки оригинального iso-файла server2025 от Microsoft.
boy illustration
Feiniu fnos использует Docker для развертывания онлайн-офисного пакета для совместной работы с открытым исходным кодом onlyoffice
boy illustration
Комплексная оценка мощного и простого в использовании программного обеспечения для офлайн-заметок: преимущества, недостатки, сравнение
boy illustration
[Новогоднее специальное предложение] Скидка 50% на удивительную цену TPNS через мобильную распродажу горячих продуктов всего за 9,8 юаней, новые и старые клиенты приходят быстро!
boy illustration
CentOS Linux солнце Устройство eth0, похоже, не присутствует
boy illustration
Список замены CentOS, какой из них лучше выбрать?
boy illustration
Автоматический выключатель, изоляция, повторная попытка, понижение версии, тайм-аут, ограничение тока — все основные стратегии управления трафиком архитектуры высокой доступности полностью освоены.