Зачем необходимо тестирование стабильности клиента?
Тестирование стабильности — это обязательный компонент тестирования, обеспечивающий полноту и правильность функций. Посредством тестирования стабильности программного обеспечения мы можем наблюдать частоту ошибок и снижение производительности программного обеспечения в течение рабочего цикла и в определенных условиях нагрузки. Тенденции и т. д. Это значительно снижает количество сбоев и зависаний после запуска программного обеспечения, обеспечивая направление и проверку для постепенной оптимизации программного обеспечения.
Каковы опасности, вызванные проблемами стабильности?
Что касается видеобизнеса, в определенной версии базовая техническая архитектура была итерирована для оптимизации потребностей нескольких игроков. Пользователи впервые наблюдали сбой видео после обновления до новой версии с общим объемом сбоев 39 КБ. На этапе функционального тестирования вероятность возникновения с функционального уровня крайне мала, но она сработает при большом количестве пользователей.
Программа исследований
1、Google Monkey
Во-первых, давайте посмотрим на инструмент, который ранее использовался в отрасли и о котором часто слышали, — Monkey. Это инструмент, официально предоставляемый Android. Изначально Google разработал этот инструмент для стресс-тестирования приложений.
Когда Google разрабатывал Android на заре, Android должен был реагировать на такие события, как скольжение, ввод, громкость, телефонные звонки и т. д. Когда ранний дизайн Activity был несовершенным, Google хотел проверить производительность действия.
Выводите все данные в Activity в пакетном режиме и смотрите, какой объем данных Activity может обработать за одну секунду. Итак, на первых порах Monkey использовался как инструмент стресс-тестирования Android.
Из-за «случайности» Monkey в процессе тестирования его можно использовать для автоматического обходного тестирования. Однако Monkey имеет очевидные недостатки.
Невозможно гибко управлять, часто нажимая на внешние приложения и не имея возможности вернуться к исходному тестовому приложению или нажимая кнопку выхода и выхода, что делает невозможным продолжение последующих тестов;
Поэтому после исследования и понимания обезьяна не стала нашим первым выбором для тестирования стабильности.
2、AppCrawler
Официальное объяснение этого инструмента на GitHub от AppCrawler: инструмент для сканирования приложений, основанный на автоматическом обходе. Поддерживает Android и iOS, поддерживает реальные устройства и эмуляторы. Самая большая особенность — это гибкость, а правила обхода можно установить посредством конфигурации.
преимущество:
недостаток:
3. Максим автоматизированный обход
Maxim также является инструментом автоматического обхода. Он был разработан Чжанчжао, местным студентом. Официальное определение: эффективный тестер Android Monkey, доступный для эмуляторов и реальных устройств. Высокопроизводительный Android Monkey, основанный на правилах обхода, подходящий для реальных устройств. машины/эмуляторы. Стресс-тест пользовательского интерфейса приложения.
преимущество:
недостаток:
Это отличный инструмент, который можно в определенной степени настроить. Если вы тестируете только системы 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.
Преимущества
Совместимость с Android 5-11 одновременно, совместимость с системами Android, настроенными отечественными производителями, и собственными системами Android.
Наследовать родной Monkey Преимущества, быстрый клик, может отправлять до секунды 12 события
Различные направления бизнеса удовлетворяют разные персонализированные потребности, а бизнес глубоко индивидуализирован.
На основе моделирования на основе моделей во время перемещения с использованием таких алгоритмов, как обучение с подкреплением, для принятия высокопроизводительных решений.
Поддержка нестандартизированных элементов управления, YOLOv3, ocr, сегментации CV и других возможностей распознавания изображений пользовательского интерфейса.
Поддерживает повторное использование модели. Файл модели будет автоматически сохранен в /sdcard/fastbot_[имя пакета].fbm. Если этот файл существует при запуске fastbot, модель будет загружаться по умолчанию. Во время работы модель будет перезаписываться каждые десять минут. Пользователи могут настроить файл в соответствии со своими потребностями. Удалить или скопировать этот файл.
После всестороннего сравнения преимуществ и недостатков вышеупомянутых технических фреймворков Fastbot был окончательно выбран в качестве механизма выполнения для тестирования стабильности Android.
В основном это три направления:
В основном он разделен на четыре ключевых узла:
Архитектура инструментаследующее: В основном разделен на уровень инструментов и уровень обслуживания.
Наряду с ритмом выпуска клиента, задачи тестирования стабильности запускаются автоматически с момента загрузки требований до завершения пакета интеграции. Обнаружены проблемы со стабильностью
Ошибки будут автоматически отправляться и назначаться студентам, занимающимся исследованиями и разработками, а данные индикаторов, такие как тенденции версий и время выполнения, можно будет анализировать глобально через панель управления качеством.
На этапе интеграции версий и этапе оттенков серого мы продолжаем отслеживать и продвигать замкнутый цикл проблем, чтобы достичь уровня замкнутого цикла 100%, а индекс замкнутого цикла индекса стабильности используется в качестве индекса оценки доступа к качеству версии.
Опираясь на Jenkins с открытым исходным кодом, непрерывная инструмент интеграции для планирования задач и узлов выполнения устройств. Дженкинс Экземпляр устанавливается на другое независимое устройство, обычно называемое Jenkins Controller。
Сам агент Jenkins представляет собой просто среду для компиляции, упаковки и выполнения кода и не включает экземпляр Jenkins. Каждый агент Jenkins может быть подключен к нескольким устройствам Android.
Создавайте задачи тестирования стабильности, пишите сценарии сборки и реализуйте стратегии тестирования в Jenkins.
Данные процесса:
Данные результата:
Тенденции ошибок обнаружения версий
Доля ошибок, обнаруженных на этапе интеграции клиента/в оттенках серого