Условия остановки автоматизации Android: повторить, остановить или проверить?

BeePOS LLC  |   |  11 мин чтения

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

Условия остановки автоматизации Android: повторить, остановить или проверить?
Условия остановки автоматизации Android: повторить, остановить или проверить?

Короткий ответ: остановитесь, когда следующее действие больше не оправдано.

Условие остановки автоматизации Android - это правило, которое предотвращает продолжение рабочего процесса, когда текущий экран, результат или время больше не поддерживают следующее действие. Это может закончить бег, вернуть контролируемый результат, собрать доказательства или отправить дело человеку. Главное не останавливаться на каждом сюрпризе. Суть в том, чтобы избежать превращения неопределенности в еще один кран.

Надежные рабочие процессы отвечают на четыре вопроса перед каждым важным действием: в каком состоянии должен быть телефон? Какое наблюдение доказывает это состояние? Сколько попыток восстановления приемлемо? Какие доказательства должны быть сохранены, если государство никогда не появится? Android UI Automator включает в себя условное ожидание и проверку стабильности, а WorkManager отменяет документы и прекращает работу. Общий урок дизайна прост: ожидание, повторная попытка и остановка требуют четких ограничений.

  • Продолжать только тогда, когда ожидаемое состояние определено положительно.
  • Повторяйте только тогда, когда сбой является временным, и повторный запуск имеет четкий предел.
  • Остановите или запросите просмотр, когда экран неизвестен, действие чувствительно или условие не работает.

Продолжать, ждать, повторять, останавливать или пересматривать?

РешениеИспользуйте, когдаТребуемый лимитДоказательства для сохранения
ПродолжатьТекущее состояние и следующие действия ожидаются.Пересмотренный переходНаблюдаемое состояние и состояние
Подожди.Приложение все еще загружается или осваиваетсяТайм-аут или названное готовое состояниеВремя и последний экран
повторятьВременное условие может быть решено без изменения бизнес-смысла.Максимальные попытки плюс интервалПодсчет и результат каждого наблюдения
Стоп!Государство неизвестно, недействительно, небезопасно или вне утвержденного пути.Немедленное прекращениеStop Reason, скриншот, структурированный результат
Человеческий обзорРабочий процесс не может решить безопасно или следующее действие имеет материальные последствия.Четкий срок передачи и владелецПолный пакет доказательств и предлагаемый следующий шаг

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

Шаг 1: Назовите государства перед выбором действий

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

  1. Напишите начальное состояние, ожидаемое следующее состояние и приемлемые альтернативные состояния.
  2. Для каждого состояния выберите самый узкий полезный сигнал: свойство пользовательского интерфейса, видимый текст, известное изображение, обнаруженный объект или сфокусированный скриншот.
  3. Отметьте любой экран, который никогда не должен получать автоматические действия, такие как неожиданный аккаунт, разрешение, покупка, удаление или экран производственных данных.

Проверка проста: другой рецензент должен иметь возможность взглянуть на определение состояния и объяснить, почему допускается следующее действие. TheРуководство по распознаванию изображенийПочему найти визуальную цель недостаточно Рабочий процесс по-прежнему нуждается в предварительном условии перед краном и после него.

Шаг 2: выберите одно наблюдение, которое доказывает каждое состояние

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

Избегайте укладки нескольких слабых сигналов и вызова комбинации. Широкий скриншот, непроверенный шаблон и частичный результат OCR автоматически не принимают надежного решения. Вместо этого определите одно несущее наблюдение и запишите другие сигналы в качестве подтверждающих доказательств. TheAndroid визуальное тестирование сравнениеобъясняет, где состояние пользовательского интерфейса, OCR, скриншоты, шаблоны и обнаружение каждый подходит.

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

Шаг 3: настройте бюджет на каждое ожидание и повторную попытку

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

Модель провалаПочему может помочь другая попыткаБезопасная границаОстановить причину
Экран все еще загружаетсяГосударство может быть готовоДождитесь стабильного или тайм-аутаГотовое состояние не достигнуто
Элемент временно отсутствуетКонтент может появиться после короткой задержкиПовторите наблюдение за фиксированным числом попыток.Ожидаемый элемент так и не появился
Tap не производит переходовВвод может быть пропущен один разОдин просмотренный повтор после проверки экранаПост-условие все еще отсутствует
Неизвестный диалог или аккаунтЕще одна попытка не уменьшает неопределенностьБез повторенияНеожиданное государство требует пересмотра
Действие может удалять, покупать, отправлять или публиковатьСлепое повторение может дублировать последствияАвтоматическая повторная проверка не проводится, если не доказана идемпотенцияРезультаты чувствительных действий неопределенны

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

Шаг 4: проверьте состояние, прежде чем объявить об успехе

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

  1. Запишите государство, которое санкционировало действие.
  2. Выполняйте единое утвержденное действие.
  3. Дождитесь названного состояния или ограниченного тайм-аута.
  4. Путь к следующему состоянию и неспособность захватить доказательства, пересмотреть восстановление или остановить.

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

Шаг 5: Сохранить достаточно доказательств для принятия решения

К концу этого шага каждая остановка производит компактный пакет доказательств вместо расплывчатой неудачной этикетки. Захват доказательств перед восстановлением меняет экран. Храните только то, что необходимо для диагностики, и обрабатывайте скриншоты или журналы в соответствии с политикой данных для тестируемого приложения.

  • Рабочий процесс и название шага, сборка приложений, устройство, версия Android, локализация и ориентация.
  • Ожидаемое состояние, наблюдаемое состояние, результат состояния, попытка подсчета и прошедшее время.
  • Фокусированный скриншот или урожай, плюс текст OCR, счет матча, свойства пользовательского интерфейса или результат обнаружения, когда это уместно.
  • Последнее успешное состояние, попытка действий, упущенное условие и явная причина остановки.
  • Предлагаемый выбор рецензента: повторить после известного исправления, обновить принятое состояние или исследовать продукт.

Полезная передача позволяет кому-то принять следующее решение, не воспроизводя сначала весь пробег. TheАвтоматизация Android QA руководство по тестированию дымаПриведем более широкий пример сохранения узких и воспроизводимых проверок реальных устройств.

КакLaiCai FlowБезопасные границы

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

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

LaiCai Flow InsideМожно запустить совместимый профиль черезLaiCai Android AgentПо телефону после установки. Совместимость по-прежнему зависит от каждого узла, актива, модели и сетевой зависимости, используемой этим профилем. Работа на устройстве не устраняет необходимость в ограничениях, доказательствах или обзоре.

Контрольный список практических обзоров перед развертыванием

  • Каждое действие имеет предварительное условие и проверяемое условие.
  • Каждое ожидание имеет тайм-аут или готовое состояние, и каждая повторная попытка имеет максимальное количество попыток.
  • Неизвестные государства останавливаются или идут по пересмотренному пути восстановления.
  • Чувствительные действия никогда не повторяются вслепую, когда их результат неясен.
  • Доказательства неисправности фиксируются до того, как экран снова изменится.
  • Положительные, отрицательные, медленные, прерванные и неожиданные случаи были протестированы на авторизованных устройствах.

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

Автоматизация Android остановит состояние FAQ

Является ли фиксированная задержка условием остановки?

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

Должна ли каждая неудача остановить весь рабочий процесс?

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

Сколько повторов безопасно?

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

Устраняет ли ИИ необходимость в правилах остановки?

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

Сделайте неопределенность видимой вместо того, чтобы автоматизировать ее.

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

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

Скачать бесплатную версию

Предыдущая версия 4.0.2: macOSWindows EXE

Примечание: поддерживается только зеркалирование экрана Android.