La stratégie gagnante consiste à ne pas bloquer toutes les tâches dès qu’un test d’interface signale un plantage : définissez une règle distincte pour les demandes de fusion, les régressions et les publications, puis vérifiez son effet réel dans votre CI. Cette approche convient si les responsables du projet peuvent associer chaque résultat à un niveau de risque et à une personne chargée du suivi.
Cet article s’adresse aux ingénieurs CI qui doivent traduire les résultats de Xcode en statuts de tâche compréhensibles.
Il concerne aussi les responsables QA qui distinguent un incident à examiner d’un défaut bloquant pour une publication.
Les responsables techniques y trouveront un cadre d’approbation et des preuves à conserver avant de généraliser une règle.
Mis à jour le 2 novembre 2026 ; les informations produit ont été vérifiées à partir des notes de publication Xcode 27 et Xcode 27.2 ainsi que de la page des exigences système d’Apple.
Cadrer d’abord la barrière CI selon le risque
La gravité d’un plantage réglée dans un plan de test et la décision de bloquer une étape de livraison sont deux choses différentes. Apple documente des options de gravité pour les plantages de l’application dans les tests d’interface ; c’est à l’équipe de décider ensuite comment ces résultats agissent sur chaque tâche CI.
Les notes de publication d’Xcode 27 recensent cette possibilité. Pour un environnement utilisant les notes de publication d’Xcode 27.2, vérifiez que la fonction et ses libellés correspondent bien à la version effectivement installée. La page Apple des exigences système d’Xcode permet également de contrôler le contexte de version et de système.
Le principe opérationnel est simple : séparez la classification produite par le plan de test de la règle d’acceptation de la CI. La première décrit comment le test signale l’événement ; la seconde décide si une branche peut être fusionnée, si une investigation est requise ou si une publication doit attendre.
Une politique uniforme crée plusieurs difficultés :
- Un blocage partout ralentit les tâches sans distinguer leur enjeu. Un test exécuté pour recueillir des diagnostics n’a pas nécessairement le même rôle qu’un contrôle obligatoire avant publication.
- Une alerte partout peut masquer un défaut grave. Si le statut reste vert alors qu’un parcours critique ne fonctionne plus, le signal ne protège pas le processus de livraison.
- Une configuration ne prouve pas le comportement de l’orchestrateur. Une tâche CI peut transformer, ignorer ou regrouper des résultats selon ses propres règles.
- Une responsabilité imprécise prolonge les incidents. Sans propriétaire et procédure de suivi, une alerte devient un élément de rapport que personne ne traite.
- Un essai non représentatif donne une fausse assurance. Un test sans plantage observable ne permet pas de conclure que le cas de plantage est bien classé et transmis.
Pour l’ingénieur CI : inspecter le plan et isoler le statut
Dans l’éditeur du Xcode Test Plan, repérez les réglages consacrés aux tests d’interface et aux plantages de l’application. Les intitulés exacts doivent être confirmés dans l’éditeur utilisé par l’équipe : il est préférable de relever leur formulation, leur valeur sélectionnée et la cible à laquelle le plan s’applique, plutôt que de reprendre une procédure fondée sur une interface différente.
La documentation Apple sur la modification d’un Test Plan décrit l’édition de ces plans. La documentation des outils en ligne de commande Xcode sert de référence pour les commandes de construction et de test. Ces pages expliquent les possibilités de l’outil ; elles ne définissent pas le statut que l’entreprise doit exiger avant une fusion ou une publication.
Pour rendre le comportement vérifiable, séparez les informations suivantes dans votre configuration et vos rapports :
- le résultat du test d’interface ;
- la gravité attribuée au plantage par le plan de test ;
- le code de sortie ou l’état renvoyé par la commande de test ;
- la règle d’interprétation de la tâche CI ;
- le statut final présenté aux personnes qui approuvent le changement.
Une commande de test peut être lancée avec xcodebuild, un schéma et un plan explicitement sélectionnés. Les valeurs ci-dessous sont des emplacements à remplacer par celles du projet ; elles ne constituent pas une configuration universelle.
xcodebuild test \
-scheme "$SCHEME" \
-testPlan "$TEST_PLAN" \
-destination "$DESTINATION" \
-resultBundlePath "$RESULT_BUNDLE"
Dans la tâche, consignez séparément le code de retour et le chemin du fichier de résultats. Évitez de remplacer le statut de la commande par celui d’une étape de journalisation ou d’un filtre de sortie : un traitement de texte inséré dans un pipeline peut modifier le code observé si la tâche ne préserve pas explicitement celui de la commande de test. Ce point mérite un essai dans l’orchestrateur réellement utilisé, et non une déduction à partir d’un fichier de configuration isolé.
La documentation Apple sur l’exécution des tests et l’interprétation des résultats aide à identifier les rapports à examiner. Conservez le résultat complet, car un statut synthétique ne suffit pas toujours à départager le plantage de l’application, l’échec d’une assertion ou un problème survenu pendant l’exécution du test.
Pour l’équipe application : caractériser le plantage avant de le classer
Un test d’interface peut rencontrer un plantage attendu, un plantage inattendu ou une anomalie de son propre déroulement. Ces catégories sont un outil de triage de l’équipe, pas un diagnostic automatique fourni par le seul intitulé du résultat. Le responsable du test doit confirmer l’attendu à partir de son objectif, de son implémentation et des éléments enregistrés.
Pour chaque cas candidat, consignez le parcours visé, l’écran ou l’action précédant l’événement, les conditions de lancement et la raison pour laquelle le plantage est considéré comme attendu ou non. Si la raison n’est pas établie, classez le résultat comme non caractérisé et exigez une investigation ; ne le transformez pas en exception permanente simplement parce qu’il survient de façon répétée.
Les références Apple sur XCUIAutomation et sur la gestion des interruptions dans l’interface fournissent le contexte technique pour examiner les interactions automatisées et les interruptions. Elles ne prouvent pas la cause d’un échec particulier : cette conclusion doit venir du rapport de test et des traces correspondant à l’exécution concernée.
Un inventaire maintenu par l’équipe peut contenir :
- l’identifiant du test et le parcours produit couvert ;
- le résultat attendu, avec son responsable et sa justification ;
- la gravité sélectionnée dans le Test Plan ;
- les conditions qui font passer le résultat de l’observation à l’échec ;
- les éléments que le responsable doit examiner avant de lever une alerte.
Cette traçabilité est particulièrement importante lorsque plusieurs équipes modifient le même plan de test. Sans propriétaire désigné, un changement de classification peut modifier le signal reçu par la CI sans que les responsables de la livraison comprennent pourquoi.
Pour la QA : décrire les règles par étape de livraison
La QA ne devrait pas choisir entre « tout bloquer » et « tout laisser passer ». Elle doit préciser quelles classes de tests sont exigées à chaque étape, comment traiter les résultats incomplets et à qui transmettre les cas ambigus. Les règles restent explicites même si un même plan de test est utilisé dans plusieurs tâches.
Pour une demande de fusion, l’équipe peut réserver le blocage aux tests dont le résultat est directement pertinent pour accepter la modification, tandis que les cas diagnostiques produisent une alerte assignée. Pour une régression planifiée, un résultat non caractérisé peut ouvrir une investigation sans bloquer automatiquement une autre étape, si le processus de livraison prévoit une vérification différée. Pour une publication, les tests de parcours essentiels et les anomalies confirmées peuvent être soumis à une approbation stricte.
Ce sont des choix de gouvernance, pas des recommandations de statut édictées par Apple. Pour chaque règle, nommez le responsable de la décision, la personne qui peut lever le blocage et les preuves exigées. Une exception doit préciser son motif et son échéance de réexamen ; sans ces conditions, elle risque de devenir une règle implicite.
Questions fréquentes sur le réglage et les décisions CI
Où régler la gravité d’un plantage d’application dans un plan de test Xcode ?
Recherchez le réglage dans l’éditeur du plan associé à la cible de tests d’interface et vérifiez sa portée sur les configurations concernées. Les options visibles doivent être relevées dans votre version de Xcode, puis comparées à la documentation Apple. Ne déduisez pas la politique de fusion de ce seul réglage : elle doit être définie dans les règles de la CI.
Un plantage signalé par XCTest doit-il faire échouer la tâche CI ?
Pas systématiquement. Un événement à analyser peut produire une alerte si un responsable est désigné et si la tâche reste identifiable comme non validée. Un plantage confirmé sur un parcours essentiel peut, au contraire, justifier un échec ou un blocage. La différence dépend de l’étape, de l’impact et des exigences du projet, pas du seul nom XCTest UI.
Les tâches de demande de fusion et de publication peuvent-elles appliquer des règles différentes ?
Oui. L’équipe peut définir des critères de réussite différents pour une vérification de changement, une régression et une validation de publication. Pour éviter des interprétations contradictoires, consignez ces critères dans la configuration CI et la procédure de livraison. La classification du plan de test reste un signal d’entrée, auquel chaque étape applique sa règle documentée.
Comment vérifier que le réglage du Test Plan change le résultat de la CI ?
Lancez une tâche isolée avec un test représentatif dont le résultat est préalablement caractérisé. Archivez la configuration du plan, la version de Xcode, la destination, le rapport de test et le statut final transmis par la CI. Vérifiez chaque maillon séparément ; un réglage visible dans l’éditeur ne démontre pas à lui seul que la tâche applique le comportement attendu.
Pour l’ingénieur Mac CI : éprouver un cas représentatif
L’essai doit se dérouler dans une tâche séparée des branches de livraison et avec un test que l’équipe sait interpréter. Son objectif est de vérifier une chaîne complète : le test produit un résultat identifiable, le plan le classe comme prévu, la commande renvoie un état observable, puis l’orchestrateur traduit cet état selon la politique choisie.
Avant l’exécution, préparez un dossier de preuve comportant la version de Xcode, le nom du schéma et du plan, la destination retenue, la configuration de la tâche et l’identifiant du test. Après l’exécution, ajoutez le rapport de résultats, les journaux utiles, le code de retour et le statut que la plateforme CI a affiché. La documentation Xcode sur les résultats de test constitue une référence pour interpréter les éléments produits par l’exécution.
N’attribuez pas une différence de statut à la gravité du plantage tant que les autres causes plausibles n’ont pas été examinées. Vérifiez notamment que la tâche a réellement utilisé le plan attendu, qu’elle n’a pas lancé une autre cible et qu’une étape ultérieure n’a pas remplacé son résultat. Les systèmes de compilation et d’intégration peuvent agréger plusieurs commandes ; la preuve utile est donc le lien entre le cas de test et le statut final, pas seulement une capture de l’éditeur.
Sur un Mac CI, le contrôle porte aussi sur la reproductibilité de l’environnement. Notez les informations nécessaires pour refaire l’essai, et vérifiez que la version de Xcode retenue respecte les exigences système publiées par Apple. Il ne faut pas confondre cette vérification avec une garantie de stabilité : un passage concluant démontre le comportement observé dans ces conditions, pas la qualité générale de l’application.
Pour la publication : formaliser les blocages et les réexamens
Avant d’autoriser une publication, distinguez les résultats qui peuvent automatiquement interrompre le processus de ceux qui exigent une revue humaine. Une anomalie confirmée sur un parcours que l’équipe a défini comme essentiel peut relever du blocage ; un résultat ambigu demande d’abord le rapport complet, une analyse et une décision enregistrée. Dans les deux cas, l’équipe doit éviter qu’un statut techniquement « réussi » soit interprété comme une certification générale de l’application.
La procédure de revue devrait prévoir les actions suivantes :
- préserver le rapport de résultats et les journaux de la tâche concernée ;
- nommer le responsable de l’analyse et celui qui peut autoriser la reprise ;
- préciser quelles preuves justifient la levée d’un blocage ;
- consigner les exceptions, leur motif et leur date de réexamen ;
- faire approuver tout changement de règle par les responsables de la CI, de la QA et de la publication.
Si les résultats sont incomplets ou si le test représentatif ne permet pas de distinguer la gravité configurée du statut final, suspendez la généralisation de la règle. Une politique provisoire peut maintenir une alerte et une revue obligatoire, mais elle ne doit pas être présentée comme une validation automatique.
Pour le responsable technique : décider avec les preuves réunies
Le responsable technique arbitre la portée de la politique et son niveau de preuve. Il ne suffit pas que le réglage soit documenté : les équipes concernées doivent s’accorder sur les catégories de plantage, les étapes auxquelles elles s’appliquent, les responsables du traitement et les conditions d’approbation.
La décision de déployer la règle dans d’autres tâches peut s’appuyer sur des critères vérifiables : le test représentatif est correctement identifié, le plan sélectionné correspond à la configuration prévue, le rapport est conservé, le statut final est conforme à la règle écrite et le chemin d’escalade est connu. Si l’un de ces éléments manque, corrigez d’abord la chaîne de validation ou limitez la règle au périmètre qui a été effectivement testé.
| Étape CI | Usage du signal de plantage | Conséquence à définir | Responsable de traitement |
|---|---|---|---|
| Demande de fusion | Vérifier les parcours pertinents pour le changement | Blocage si un critère obligatoire échoue ; sinon alerte assignée selon la règle du projet | Équipe application et responsable CI |
| Régression planifiée | Repérer les changements de comportement à analyser | Échec ou alerte selon la criticité et la procédure de suivi | QA et propriétaire du test |
| Validation de publication | Évaluer les parcours exigés avant livraison | Blocage pour les résultats explicitement définis comme non acceptables ; revue humaine pour les cas ambigus | Responsable de publication et responsable QA |
Ce tableau est un cadre de décision, pas une configuration intégrée à Xcode. Chaque ligne doit être adaptée aux règles de validation du produit, puis testée dans la tâche réelle. Si la plateforme CI ne permet pas de distinguer les résultats attendus, l’équipe doit d’abord clarifier l’orchestration plutôt que d’élargir les exceptions dans le Test Plan.
Pour disposer d’un environnement de test Mac, les équipes peuvent consulter les options Mac présentées par ViewMini et évaluer elles-mêmes si elles répondent à leurs besoins de CI. Une location peut convenir lorsqu’il faut préparer un environnement temporaire de reproduction ou de validation sans acheter immédiatement une machine dédiée ; elle ne remplace pas un Mac détenu par l’entreprise lorsque le besoin est durable, fortement sollicité ou dépend d’un accès physique précis.
La prochaine étape est de rejouer un cas représentatif, d’archiver la chaîne de preuve et de faire approuver la règle par les responsables concernés. Si un environnement Mac temporaire est utile pour cette vérification, ViewMini peut être étudié comme une option à comparer avec l’achat et l’infrastructure déjà en place ; ses résultats de compatibilité et de test doivent être validés par l’équipe, sans être présumés. Les modalités peuvent être examinées auprès de l’équipe ViewMini.
Questions fréquentes
Où régler la gravité d’un plantage d’application dans un plan de test Xcode ?
Le réglage se cherche dans l’éditeur du Xcode Test Plan utilisé par la cible de test, dans les options consacrées aux tests d’interface et aux plantages de l’application. Vérifiez les libellés et le comportement affichés par votre version de Xcode : les notes de publication décrivent la fonction, mais la politique de blocage reste un choix propre à l’équipe.
Un plantage détecté par XCTest doit-il toujours faire échouer la CI ?
Non. Une anomalie observée pendant un test exploratoire ou une tâche de diagnostic peut d’abord générer une alerte, à condition qu’un responsable analyse le résultat. En revanche, un plantage confirmé dans un parcours essentiel peut justifier l’échec d’une vérification de fusion ou le blocage d’une publication. La règle doit être définie par étape et documentée.
Peut-on appliquer des règles différentes aux demandes de fusion et aux publications ?
Oui. La politique de l’équipe peut différencier les tâches rapides de vérification, les régressions exécutées en arrière-plan et les contrôles de publication. Ces règles ne sont pas imposées par le réglage du plan de test : elles se traduisent dans l’orchestrateur CI et dans les critères de validation du projet, après vérification du comportement réel.
Comment prouver que le réglage du plan de test modifie réellement le résultat CI ?
Exécutez un test représentatif dans une tâche isolée, conservez le plan de test et le rapport de résultats, puis comparez la classification du plantage au statut final remonté par l’intégration continue. Consignez la version de Xcode, la destination d’exécution et les règles de la tâche. Répétez le contrôle après toute modification de configuration.
Pour aller plus loin
Préparez vos tests CI sur un Mac dédié avec ViewMini
Louez un Mac Apple Silicon physique dédié pour exécuter vos builds et vos tests d’interface dans un environnement macOS distant.
