Conditions d'arrêt de l'automatisation Android : Réessayer, arrêter ou revoir ?

BeePOS LLC  |   |  11 min read

Un flux de travail Android sécurisé ne continue pas à taper jusqu'à ce qu'il se produise quelque chose. Il identifie l'écran actuel, limite les retries, vérifie l'état suivant et s'arrête avec des preuves lorsque le résultat est incertain.

Conditions d'arrêt de l'automatisation Android : Réessayer, arrêter ou revoir ?
Conditions d'arrêt de l'automatisation Android : Réessayer, arrêter ou revoir ?

La réponse courte : arrêtez quand la prochaine action n'est plus justifiée.

Une condition d'arrêt d'automatisation Android est une règle qui empêche le flux de travail de se poursuivre lorsque l'écran actuel, le résultat ou le temps ne prennent plus en charge la prochaine action. Elle peut mettre fin à l'exécution, renvoyer un résultat contrôlé, recueillir des preuves ou envoyer l'affaire à une personne. Le but n'est pas de s'arrêter à chaque surprise. Le but est d'éviter de transformer l'incertitude en un autre clic.

Les flux de travail fiables répondent à quatre questions avant chaque action importante : quel état doit être dans le téléphone ? Quelle observation prouve cet état ? Combien d'essais de récupération sont acceptables ? Quelles preuves doivent être conservées si l'état ne s'affiche jamais ? Android UI Automator comprend des attentes conditionnelles et des contrôles de stabilité, tandis que WorkManager documente la gestion de l'annulation et du travail arrêté. La leçon de conception commune est simple : l'attente, le redémarrage et l'arrêt nécessitent des limites explicites.

  • Continuez seulement lorsque l'état attendu est identifié positivement.
  • Réessayer uniquement lorsque l'échec est temporaire et que le réessai a une limite claire.
  • Arrêtez ou demandez une révision lorsque l'écran est inconnu, qu'une action est sensible ou que la post-condition échoue.

Continuer, attendre, réessayer, arrêter ou revoir ?

décisionUtilisez-le quandLimite requisePreuve à conserver
continuerL'état actuel et la prochaine action sont tous deux attendus.Une transition réviséeÉtat observé et post-condition
attendreL'application est toujours en train de se charger ou de se stabiliser.Délai d'attente ou condition de préparation nomméeTemps écoulé et dernier écran
juger à nouveauUne condition temporaire peut se résoudre sans modifier le sens commercial.Nombre maximum d'essais plus intervalleCompte des tentatives et résultat de chaque observation
arrêterL'état est inconnu, invalide, dangereux ou en dehors du chemin approuvé.Résiliation immédiateArrêtez la raison, capture d'écran, résultat structuré
Révision humaineLe flux de travail ne peut pas décider de manière sûre ou la prochaine action a des conséquences matérielles.Définir clairement la date limite de transfert et le propriétaireBundle complet de preuves et prochaine étape proposée

Ces choix ne sont pas interchangeables. Un délai donne au même état le temps de s'établir. Une réessai répète une observation ou une action de récupération limitée. Une branche sélectionne entre des résultats connus. Une arrêt met fin au chemin examiné. La révision humaine est appropriée lorsque l'automatisation manque d'informations suffisantes pour choisir en toute sécurité.

Étape 1 : nommez les États avant de choisir les actions.

À la fin de cette étape, chaque écran important a un nom et un petit ensemble de faits observables. Commencez par un flux de travail restreint tel que l'ouverture d'une construction de test, la navigation vers une page de paramètres, le changement d'une option non sensible et la confirmation de l'état nouveau. Ne commencez pas par une longue séquence de coordonnées.

  1. Écrivez l'état de départ, l'état suivant attendu et les états alternatifs acceptables.
  2. Pour chaque état, choisissez le signal utile le plus étroit : propriété de l'interface utilisateur, texte visible, image connue, objet détecté ou capture d'écran mise au point.
  3. Marquez n'importe quel écran qui ne doit jamais recevoir une action automatique, comme un compte inattendu, une autorisation, un achat, une suppression ou un écran de données de production.

La vérification est simple : un autre réviseur devrait être en mesure d'examiner la définition de l'état et d'expliquer pourquoi l'action suivante est autorisée. leGuide de clic automatique de reconnaissance d'imagesMontre pourquoi trouver une cible visuelle n'est pas suffisant. Le flux de travail a toujours besoin d'une condition préalable avant le clic et d'une condition postérieure après.

Étape 2 : choisissez une observation qui prouve chaque état.

À la fin de cette étape, chaque état a une observation primaire et une source d'éléments de preuve de secours. Utilisez la structure de l'interface utilisateur pour les faits sémantiques tels qu'une étiquette, un état sélectionné, un contrôle activé ou le nombre d'éléments. Utilisez l'OCR lorsque le texte visible est important, mais que l'arbre de l'interface utilisateur ne le expose pas de manière fiable. Utilisez la correspondance des modèles pour une cible visuelle connue et la détection d'objets pour une classe validée dont la position ou la taille varient.

Évitez de superposer plusieurs signaux faibles et d'appeler la certitude de la combinaison. Une capture d'écran large, un modèle non validé et un résultat OCR partiel ne permettent pas automatiquement de prendre une décision fiable. Au lieu de cela, définissez une observation portante et enregistrez les autres signaux comme preuves de soutien. leComparaison des tests visuels Androidexplique où l'état de l'interface utilisateur, l'OCR, les captures d'écran, les modèles et la détection s'inscrivent.

La vérification signifie tester à la fois des échantillons positifs et négatifs. La condition doit passer sur l'écran prévu et échouer sur un écran visuellement similaire mais incorrect. Si elle ne peut pas distinguer ces états, restreignez la région, modifiez le signal ou arrêtez le flux de travail avant l'action.

Étape 3 : établissez un budget pour chaque attente et réessai.

À la fin de cette étape, aucun boucle ne peut fonctionner indéfiniment. Chaque attente nécessite soit un délai d'attente, soit une condition de préparation nommée. Chaque réessai nécessite un nombre maximum d'essais, un intervalle raisonnable et une raison pour laquelle réessayer pourrait réussir sans aggraver la situation.

Modèle d'échecPourquoi une autre tentative peut aiderLimite sécuriséeArrêtez la raison
L'écran se charge toujours.Le même état peut devenir prêtAttendez jusqu'à ce que soit stable ou jusqu'à échéLa condition prête n'a pas été atteinte.
L'élément est temporairement absentLe contenu peut arriver après un court délai.Observez à nouveau pendant un nombre fixe d'essais.L'élément attendu n'est jamais apparu
Le clic n'a produit aucune transitionL'entrée a peut-être été manquée une foisUn a réitéré après avoir vérifié l'écran.La post-condition est toujours absente.
Un dialogue ou un compte inconnu apparaîtUne autre tentative ne réduit pas l'incertitude.Pas de réessaiL'état inattendu nécessite une révision.
L'action pourrait supprimer, acheter, envoyer ou publier.La répétition aveugle peut duplicer les conséquences.Pas de réessai automatique à moins que l'idempotence ne soit prouvée.Le résultat de l'action sensible est incertain.

Les questions de la communauté concernant l'automatisation Android décrivent souvent des boucles qui attendent pour toujours ou des tâches qui semblent coincées. Une règle de nombre maximum d'essais est utile, mais le nombre doit suivre l'opération. Un contrôle en lecture seule peut tolérer plus d'essais qu'une action qui change d'état. Le nombre correct est le plus petit budget examiné qui couvre la latence normale.

Étape 4 : vérifier la post-condition avant de déclarer le succès.

À la fin de cette étape, une touche livrée n'est plus traitée comme une tâche terminée. Après chaque action de changement d'état, attendez que l'interface se stabilise et observez le résultat attendu. Si la post-condition est manquante, le flux de travail ne doit pas continuer silencieusement vers l'action suivante.

  1. Notez l'état qui a autorisé l'action.
  2. Effectuez la seule action approuvée.
  3. Attendez un postcondition nommé ou une limite de temps d'attente.
  4. Succès de la route vers l'état suivant et échec de la capture des preuves, une récupération révisée ou arrêt.

Cela protège contre les superpositions, la navigation retardée, les entrées manquées, les coordonnées obsolètes et les écrans similaires. Il produit également un meilleur rapport d'échec : le réviseur voit ce qui était attendu, quelle action s'est produite et quel état suivant n'est pas apparu.

Étape 5 : préserver suffisamment de preuves pour qu'une personne puisse décider.

À la fin de cette étape, chaque arrêt produit un ensemble d'evidences compactes au lieu d'une étiquette d'échec vague. Capturez les preuves avant que la récupération ne modifie l'écran. Gardez uniquement ce qui est nécessaire pour le diagnostic, et gérez les captures d'écran ou les journaux selon la politique de données de l'application qui est testée.

  • Flux de travail et nom de l'étape, construction de l'application, appareil, version Android, localisation et orientation.
  • État attendu, état observé, résultat de la condition, nombre d'essais et temps écoulé.
  • Une capture d'écran ou un recadrage ciblé, ainsi que du texte OCR, du score de correspondance, des propriétés de l'interface utilisateur ou du résultat de détection lorsque cela est pertinent.
  • Le dernier état réussi, l'action tentée, le post-condition manquant et la raison explicite d'arrêt.
  • Un choix de critique suggéré : réessayer après une correction connue, mettre à jour l'état accepté ou enquêter sur le produit.

Un transfert utile permet à quelqu'un de prendre la prochaine décision sans reproduire toute la course d'abord. leGuide de test de fumée de la validation de l'automatisation AndroidDonne un exemple plus large de la manière de garder les vérifications des appareils réels étroites et reproductibles.

CommentLaiCai FlowModèles de limites sûres

LaiCai Flowest une fonctionnalité d'automatisation à l'intérieurLaiCai Screen Mirroring. Un Flux peut observer la structure de l'interface utilisateur ou l'état visuel, bifurquer entre des résultats connus, attendre visiblement, répéter un nombre limité de fois, appeler un Flux enfant jusqu'à la réussite ou à une limite, et s'arrêter par un retour explicite ou un comportement d'arrêt. Ces blocs de construction rendent la décision de sécurité visible à un réviseur.

Dans un schéma typique, une interface utilisateur, un OCR, un modèle ou un nœud de détection observe le téléphone une seule fois. Une branche route un succès ou une erreur connu. Un délai représente un véritable retard commercial. Un boucle borné gère une condition temporaire. Une observation échouée sans bord de récupération peut mettre fin au flux actuel au lieu de nourrir la même action pour toujours.

LaiCai Flow InsidePeut exécuter un profil compatible viaLaiCai Android AgentAu téléphone après le déploiement. La compatibilité dépend toujours de chaque nœud, actif, modèle et dépendance réseau utilisé par ce profil. Le fait de fonctionner sur l'appareil ne supprime pas le besoin de limites, de preuves ou de vérification.

Une liste de contrôle pratique de révision avant le déploiement

  • Chaque action a une condition préalable nommée et une condition postérieure vérifiable.
  • Chaque attente a une limite de temps d'attente ou une condition de préparation, et chaque réessai a un nombre maximum d'essais.
  • Les états inconnus arrêtent ou vont vers un chemin de récupération examiné.
  • Les actions sensibles ne sont jamais répétées aveuglément lorsqu'ils résultat est incertain.
  • Les preuves de défaillance sont enregistrées avant que l'écran ne change à nouveau.
  • Des cas d'écran positifs, négatifs, lents, interrompus et inattendus ont été testés sur des appareils autorisés.

Si l'une de ces déclarations est fausse, le flux de travail n'est pas prêt à fonctionner sans surveillance. Il peut encore être utile en mode supervisé viaAutomatisation Android IA, où une personne peut surveiller l'appareil, affiner les conditions de l'état et examiner les preuves de défaillance.

FAQ sur les conditions d'arrêt de l'automatisation Android

Un retard fixe est-il une condition d'arrêt ?

Non. Un délai fixe ne met que en pause le flux de travail. Il ne prouve pas que l'application a atteint l'état attendu. Associez tout délai à une observation d'état et à un temps d'attente écoulé.

Chaque échec devrait-il arrêter l'ensemble du flux de travail ?

Non. Une défaillance connue et temporaire peut suivre un chemin de récupération examiné et limité. Un état inconnu, une post-condition manquante ou une action sensible incertaine devraient normalement arrêter ou demander une révision.

Combien de réessais sont sûrs ?

Il n'y a pas de nombre universel. Utilisez la limite la plus petite qui couvre la latence normale mesurée, et réduisez la limite pour les actions qui changent d'état. Si la répétition de l'action peut duplicer une conséquence, vérifiez l'idempotence ou ne la réessayez pas automatiquement.

L'IA élimine-t-elle le besoin de règles d'arrêt ?

Non. L'IA peut aider à interpréter un écran ou à proposer un flux de travail, mais l'exécution nécessite toujours des états autorisés explicites, des budgets, des post-conditions et des limites de révision. L'incertitude est une raison de recueillir des preuves, pas une autorisation de continuer.

Rendre l'incertitude visible au lieu d'y automatiser.

Un flux de travail Android fiable n'est pas celui qui fonctionne le plus longtemps. C'est celui qui peut expliquer pourquoi chaque action a été autorisée, quel résultat elle attendait et pourquoi elle s'est arrêtée lorsque les preuves ont changé.

Nommez les États, choisissez une observation portante, limitez chaque attente et redémarrage, vérifiez chaque post-condition et préservez un transfert utile. Ce design transforme les conditions d'arrêt du code défensif en la politique de fonctionnement du flux de travail.

Télécharger la version gratuite

Version précédente 4.0.2: macOSWindows EXE

Remarque: mise en miroir d'écran Android uniquement.