Индикатор покрытия в тесте повлияет на результаты теста. Тот же принцип действует и в тесте Android Monkey. Из-за высокой случайности выполнения Android Monkey основная страница может быть не покрыта или результатом теста будет меньшее покрытие, сбой невозможен. быть перехвачен и обнаружен. В этой статье рассказывается, как улучшить покрытие Android Monkey.
Давайте сначала разберемся с несколькими методами расчета покрытия, используемыми в отрасли:
1. Рассчитайте покрытие на основе активности.
FastBot основан на активности/всех выполненных действиях. Получено из службы packagemanager. Полученная деятельность обязательно останется без входа.
Введение в модель Fastbot:
Мы абстрагируем информацию графического интерфейса страницы в состояние в модели и абстрагируем выполняемые действия в действие в модели. Состояние используется в качестве узла графа, а действие используется в качестве края графа. и они связаны, образуя модель ориентированного циклического графа. На рисунке показан частичный пример ориентированного циклического графа, в котором пунктирные линии со стрелками представляют действия выполнения и соединяют различные узлы.
Логическая схема выполнения:
Преимущества: Самый простой и быстрый способ расчета коэффициента покрытия.
недостаток:
(1) Активность не может представлять страницу. Активность – это грубый метод расчета. Возможно, активность была удалена и имеет недостаточную точность. (2) Некорректно смотреть на охват через активность, т.к. Активность не может представлять собой функциональную страницу.
2. Как посчитать покрытие кода
Для статистики покрытия уровня Java используется Jacoco, а для покрытия кода уровня C++ используется gcov. gcov — это инструмент анализа покрытия кода C/C++, который поставляется с GCC под Linux. Я не буду подробно рассказывать о Jacoco и gcov. Просто поищите его сами.
Поэтому нам необходимо использовать статистическую структуру покрытия интеграционными тестами, аналогичную jacoco, чтобы измерить, является ли область регрессии тестера точной и не пропущены ли тестовые сценарии;
Код, гарантированно выходящий в сеть, проверен тестировщиками. В ответ на это мы предложили инструмент статистики тестового покрытия Android, чтобы улучшить способность тестировщиков точно тестировать и использовать данные о покрытии для дополнения тестовых случаев, пропущенных при тестировании.
Основным языком разработки приложений для Android является язык Java, а наиболее распространенными инструментами покрытия Java являются Jacoco, Emma и Cobertura.
Преимущества: способ расчета покрытия является более детальным и точным вплоть до уровня метода и функции.
недостаток: Внедрение структуры покрытия и анализ для создания отчетов о покрытии во время упаковки имеют определенный порог в технологии тестирования и требуют сотрудничества в области исследований и разработок.
3. Скрытые данные
Я слышал об этом раньше, но не смог найти примеров в Интернете. Общая идея: тестирование обезьян также будет генерировать скрытые поведенческие данные, такие как PageShow, Click и другие события.
Затем мы можем сначала использовать PageShow для подсчета охвата на уровне страницы и комбинировать его только с платформой отслеживания, чтобы получить данные отслеживания в течение периода Monkey.
Используйте скрытые точкирасчет покрытиячиновник: Monkey's PageShow (числитель) / Наибольшее освещение последних онлайн-версий (знаменатель)
Преимущества: Статистический охват ближе к пользовательскому измерению,
недостаток: Использование внутренних скрытых данных компании при строительстве
1. Увеличить охват тестирования на обезьянах
После регулярного тестирования и стресс-тестирования базовой версии уже невозможно обнаружить проблемы с помощью обычного тестирования на этапе выпуска. Лучше всего использовать псевдослучайное тестирование для создания некоторых сценариев, которые могут вызвать проблемы со временем.
2. Используйте автоматический обход интерфейса + adb.
Метод Monkey используется для улучшения покрытия тестов Monkey. Поскольку тесты Monkey являются высокослучайными, некоторые интерфейсы могут быть недоступны во время тестирования. Автоматический интерфейс переходит к указанному интерфейсу перед запуском теста Monkey, чтобы обеспечить тестовое покрытие.
3. Перейти через маршрутизацию
На некоторых страницах с относительно глубокими путями и основными функциями вы можете использовать маршрутизацию для прямого перехода.
Маршрутизация Android в основном сопоставляет отношения перехода между страницами и распределяет запросы страниц на указанные страницы в соответствии с таблицей маршрутизации.
Сценарии использования маршрутизации Android:
Вы можете использовать команду adb, чтобы перейти к маршруту
adb shell am start -a android.intent.action.VIEW -d "custom-scheme://custom-host?itemId=17331" com.foreverstar.test
4. Улучшите время выполнения
По статистике, если время выполнения каждый раз увеличивать с 60 минут до 120 минут, показатель покрытия увеличится на несколько процентных пунктов, но есть верхний предел для улучшения.
Чем больше охват Android Monkey, тем лучше, но не стремитесь к 100%. Вообще говоря, достаточно 30–40 %. Вы можете быстро перейти на определенную страницу через клиентские бэкдоры и маршрутизацию клиентов.