Tester une application macOS : créer des tests de bout en bout pour les applications Mac et Safari depuis Windows

Tester une application macOS depuis Windows : créez des tests de bout en bout et fonctionnels d'une application Mac ou de Safari par bureau à distance, et exécutez-les à chaque build.

Par Ait Nohaila, Chargée de développement commercial 13 min de lecture

Pour tester une application macOS de bout en bout depuis Windows, connectez-vous à un vrai Mac avec une visionneuse de bureau à distance, enregistrez un parcours dans cette fenêtre avec GUI Test Studio, ajoutez des vérifications de ce qu'affiche l'application, et exécutez le test à chaque build.

Qu'est-ce qu'un test de bout en bout d'une application macOS ?

Définition

Un test de bout en bout d'une application macOS déroule un vrai parcours comme le fait un utilisateur, du premier écran jusqu'au résultat, et vérifie ce que l'application affiche à chaque étape.

  • Un test fonctionnel vérifie une fonctionnalité de la même façon : le bouton marche, la fiche est enregistrée, le total est juste.

Beaucoup d'équipes QA travaillent sous Windows et ont pourtant une version Mac de leur application à vérifier, ou un site web dont les visiteurs utilisent Safari.Elles les testent d'habitude à la main sur le seul Mac du bureau, si bien que le test des applications macOS arrive tard, et rarement à chaque build.

Ce guide montre comment les testeurs et les ingénieurs logiciel créent des tests fonctionnels et de bout en bout d'une application Mac, ou d'un site web dans Safari, depuis l'ordinateur Windows qu'ils utilisent déjà.Chaque test est enregistré une fois et s'exécute à chaque build, sans écrire de code.

Pourquoi on ne peut pas tester Safari directement sous Windows

Apple a cessé de produire Safari pour Windows en 2012, et sa dernière version est bien trop ancienne pour afficher un site web moderne.Safari, et les applications écrites pour macOS, ne fonctionnent que sur un Mac.

Les contournements habituels laissent chacun quelque chose de côté.

  • Un navigateur construit sur WebKit, le moteur de Safari, n'est pas Safari : il n'a pas les formulaires, les polices, les barres de défilement ni les réglages propres à Safari.
  • Un Mac qu'une personne vérifie à la main est réel, mais c'est lent, et personne ne vérifie chaque build.
  • Un Mac atteint depuis Windows et testé par un logiciel est réel et reproductible.

Outils de test d'interface macOS : XCUITest, Appium Mac2 et un test enregistré

La voie d'Apple est XCUITest, la partie de XCTest consacrée aux tests d'interface : les tests s'écrivent en Swift ou en Objective-C, dans Xcode, sur un Mac.Le pilote Appium Mac2 pilote les applications macOS par ce même framework XCTest, si bien que les tests peuvent s'écrire dans d'autres langages, et il lui faut un Mac avec Xcode, comme le dit son guide de démarrage.

Ce que vous comparezXCUITestPilote Appium Mac2GUI Test Studio
Comment un test est crééÉcrit en Swift ou en Objective-CÉcrit en code, en Java, Python, JavaScript ou un autre langageEnregistré, puis modifié sur une timeline, sans code
Ce qu'il lui fautUn Mac avec XcodeUn Mac sous macOS 11.3 ou ultérieur, Xcode 13 ou ultérieur et un serveur AppiumUn PC Windows avec une visionneuse de bureau à distance, et un Mac auquel se connecter
Comment il trouve les élémentsPar les informations d'accessibilité de l'applicationPar les informations d'accessibilité de l'application, avec XCTestÀ vue, sur l'image de l'écran du Mac
À qui il convientAux développeurs qui maîtrisent le code de l'applicationAux équipes qui écrivent déjà des tests AppiumAux équipes QA sous Windows qui testent l'application telle que ses utilisateurs la voient

Un test codé lit la structure de l'application, donc il continue de marcher quand l'apparence change, et il faut un Mac à chaque développeur qui en écrit un.Un test enregistré voit l'écran comme un utilisateur, donc il repère aussi ce qui s'affiche mal, et n'importe qui dans l'équipe peut en créer un depuis Windows.

Comment ça marche : la visionneuse n'est qu'une fenêtre

Une visionneuse de bureau à distance affiche l'écran du Mac dans une fenêtre sous Windows, et envoie votre souris et votre clavier au Mac.Pour GUI Test Studio, cette fenêtre est une application comme une autre.

Votre PC Windows

GUI Test Studio

Enregistre la fenêtre de la visionneuse, y rejoue la souris et le clavier, et vérifie ce qu'elle affiche.

Visionneuse de bureau à distance
Vraie souris et vrai clavierL'écran du Mac, sous forme d'image

Le Mac

Sur un bureau, dans une baie ou dans le cloud

Exécute votre application Mac ou Safari, avec un utilisateur connecté.

La visionneuse est une fenêtre du PC Windows.GUI Test Studio y envoie de vraies saisies et vérifie l'image de l'écran du Mac qu'elle affiche.
  1. Se connecter

    Ouvrir la visionneuse sur le Mac

  2. Enregistrer

    Choisir la fenêtre de la visionneuse

  3. Vérifier

    Ce que montre le Mac

  4. Rapport

    Attendu et obtenu, côte à côte

GUI Test Runner-Recorder enregistre la fenêtre de la visionneuse, avec Une application dans sa question Que voulez-vous tester ?, ou une partie de l'écran avec Une zone de l'écran.Pendant l'exécution du test, il déplace la vraie souris et appuie sur les vraies touches dans cette fenêtre, et la visionneuse les transmet au Mac.Le fonctionnement d'un enregistrement est expliqué dans Enregistrer un test.

Quelle visionneuse de bureau à distance utiliser

Visionneuse sous WindowsCe qui tourne sur le Mac
Une visionneuse VNC, comme RealVNC Viewer ou TightVNCLe Partage d'écran propre au Mac, activé dans Réglages Système.Rien à installer sur le Mac.
NoMachineLe programme NoMachine, installé sur le Mac.
ParsecL'application Parsec, installée sur le Mac.
Jump DesktopJump Desktop Connect, installé sur le Mac.
Chrome Remote DesktopL'hôte de Chrome Remote Desktop, installé sur le Mac.

N'importe laquelle convient, car GUI Test Studio n'a besoin que de ce que donne toute visionneuse : une fenêtre qui affiche l'écran du Mac et reçoit la souris et le clavier.Choisissez celle que votre équipe utilise déjà, ou le Partage d'écran propre au Mac avec une visionneuse VNC gratuite.

D'où vient le Mac : un bureau, une baie ou un Mac dans le cloud pour les tests

Trois endroits peuvent accueillir le Mac, et peu importe lequel pour le test.

Un Mac sur un bureau est le départ le plus simple : le Mac qu'ont déjà vos designers ou vos développeurs, laissé allumé avec une session ouverte.

Un Mac mini dans une baie sert toute l'équipe depuis une salle serveur, souvent sans écran branché.

Un Mac dans le cloud, comme une instance Mac Amazon EC2 ou un Mac de MacinCloud ou de MacStadium, est un vrai Mac que vous louez et que vous atteignez par Internet.

Un Mac dans le cloud n'est souvent fourni qu'avec une ligne de commande.Suivez le guide de son fournisseur pour activer un bureau visible, ouvrir une session utilisateur et autoriser le partage d'écran, puis connectez-vous-y comme à un Mac sur votre bureau.

Préparer un test fonctionnel d'une application Mac

Un bon test de bout en bout suit un parcours qui compte pour vos utilisateurs, et prouve son résultat.Notez-le en quelques lignes avant d'enregistrer : où il commence, ce que fait l'utilisateur et ce que l'écran doit montrer à la fin.

Un test fonctionnel d'une application Mac

  1. 1Ouvrir l'application et se connecterAssertion visuelle : le bouton Se connecter est là et a le bon aspect
  2. 2Cliquer sur Nouveau client et taper le nom du clientAssertion visuelle : le bouton et le champ sont trouvés avant chaque action
  3. 3Cliquer sur EnregistrerAssertion de texte : le message indique Client enregistré
  4. 4Ouvrir la nouvelle factureAssertion de texte dynamique : le numéro de facture a le bon format, quelle que soit sa valeur
  5. 5Vérifier la liste des clientsAssertion de texte : le nom du nouveau client figure dans la liste
Chaque étape est une action sur le Mac, et chaque vérification prouve ce que l'application affiche ensuite.Tout le parcours réussit, ou le rapport dit quelle étape a cassé.
  • Commencez chaque exécution sur le même écran, comme la première fenêtre de l'application à son ouverture.
  • Gardez un seul parcours par test, pour qu'un échec désigne une seule fonctionnalité.
  • Vérifiez le résultat, pas seulement les clics : un message d'enregistrement, une nouvelle ligne dans une liste, un total.
  • Utilisez des données de test qui ne changent pas d'une exécution à l'autre, comme le même nom de client.

Quelle vérification convient à quel élément est expliqué dans Choisir la bonne vérification.

Créer un test automatisé de votre application Mac, étape par étape

La connexion au Mac se configure une fois.Ensuite, créer un test Mac revient à créer n'importe quel test.

  1. 1

    Procurez-vous un Mac avec un utilisateur connecté

    Utilisez un Mac sur votre bureau, un Mac mini dans une baie ou un Mac dans le cloud.Un utilisateur doit avoir ouvert une session, avec un bureau à l'écran, car une connexion qui n'ouvre qu'une ligne de commande n'affiche rien à tester.

    Empêchez le Mac de se mettre en veille, et désactivez l'économiseur d'écran et le verrouillage de l'écran, pour que le bureau soit là au début d'une exécution.

  2. 2

    Activez l'accès à distance sur le Mac

    Dans Réglages Système, sous Général puis Partage, activez Partage d'écran, ou Gestion à distance.Dans ses options, autorisez les visionneuses VNC à contrôler l'écran avec un mot de passe.Avec un autre outil de bureau à distance, installez plutôt son hôte sur le Mac.

  3. 3

    Connectez-vous depuis Windows à une taille fixe

    Ouvrez la visionneuse sur l'ordinateur Windows, connectez-vous au Mac, et gardez sa fenêtre à la même taille à chaque exécution, avec l'écran du Mac affiché à 100 %.Désactivez toute mise à l'échelle automatique qui modifie l'image quand la fenêtre change.

    Donnez au Mac une résolution d'affichage fixe.Réglez la qualité d'image de la visionneuse sur haute, ou sans perte quand elle propose ce réglage, pour que les contours et les lettres restent nets.

  4. 4

    Enregistrer le parcours à travers la visionneuse

    Dans GUI Test Runner-Recorder, cliquez sur Enregistrer, choisissez Une application et sélectionnez la visionneuse.Faites le parcours sur le Mac à travers la visionneuse, du premier écran jusqu'au résultat, puis appuyez sur la touche d'arrêt.

    Pour que chaque exécution démarre de la même façon, cochez Lancer l'application au début du test et la fermer à la fin.Une étape Lancer une application peut aussi démarrer la visionneuse avec l'adresse du Mac, quand la visionneuse l'accepte sur sa ligne de commande, et l'ouvrir agrandie.

  5. 5

    Choisir ce que le test vérifie

    À la fin de l'enregistrement, laissez Vérifier les éléments visuels activé, et activez Vérifier le texte quand les mots à l'écran comptent.Laissez Vérifier ce qui apparaît activé, pour qu'une boîte de dialogue ou un message de confirmation ait ses propres vérifications.

    Chaque carte de cette question est expliquée dans Choisir ce que vérifie un test.

  6. 6

    Ajouter les vérifications qui prouvent le résultat

    Ouvrez le test dans GUI Test Studio et ajoutez une assertion de texte pour le message qui prouve que le parcours a fonctionné, et une assertion de texte dynamique pour une valeur qui change à chaque exécution, comme un numéro de commande ou une date.

    Regroupez les étapes en scénarios, comme Connexion et Création d'un client, pour qu'un échec dise quelle partie du parcours a cassé.

  7. 7

    L'exécuter et lire le rapport de confiance

    Cliquez sur Exécuter le test dans GUI Test Runner-Recorder.Le rapport de confiance montre chaque étape et, pour chaque vérification, ce qui était attendu et ce que le Mac a affiché.

  8. 8

    Exécutez-le à chaque build

    Exécutez le test avec gtr-cli sur un agent de build Windows qui a un bureau avec une session ouverte et la visionneuse connectée au Mac.

Les vérifications d'un test d'interface macOS, trouvées à vue

Sur une application Windows, le GTS Engine demande d'abord à l'application où se trouve un élément, grâce aux informations d'accessibilité que donnent les applications Windows, et le trouve à vue quand l'application ne le dit pas.À travers une visionneuse, l'écran du Mac arrive sous forme d'image : il n'y a rien à demander, donc chaque élément est trouvé à vue.

VérifierCe qu'elle prouve sur le MacExemple
Assertion visuelleUn élément est à l'écran et a l'aspect enregistré.Elle indique aussi au clic suivant où se trouve l'élément maintenant.Le bouton Enregistrer, une icône de barre d'outils, un graphique
Assertion de texteUn texte se lit comme prévu, quelles que soient sa police ou sa couleur.Client enregistré, un titre de fenêtre, un total
Assertion de texte dynamiqueUne valeur a le bon format, quelle qu'elle soit.Un numéro de facture, la date du jour, un prix
Assertion d'absence de texteUn texte a disparu, ou ne s'affiche jamais.Un message d'erreur après une connexion correcte
Assertion de groupeTout ce qui est apparu sur un écran est là, ensemble.Une boîte de dialogue avec son titre, ses champs et ses boutons

Chaque vérification attend ce qu'elle cherche jusqu'à son délai, donc un Mac qui répond un peu tard n'est pas un échec.Pourquoi trouver à vue est fiable, et comment cela distingue les éléments qui se ressemblent, est expliqué dans comment GUI Test Studio trouve les éléments.

Automatiser les tests sur Safari : un test de bout en bout dans le vrai Safari

Un test de bout en bout d'une application web dans Safari se crée exactement de la même façon.Ouvrez Safari sur le Mac, allez sur la page, et enregistrez la fenêtre de la visionneuse pendant que vous suivez le parcours : vous inscrire, ajouter un produit au panier, payer avec une carte de test et vérifier la confirmation.

  • Le test s'exécute dans Safari lui-même, avec son propre moteur, ses propres éléments de formulaire et ses propres polices.
  • Une mise en page qui ne casse que dans Safari casse aussi dans le test.
  • Une assertion de texte lit ce que Safari affiche vraiment, et une assertion visuelle compare ce que Safari dessine à ce qu'il dessinait lors de l'enregistrement du test.

Commencez chaque test Safari sur une page connue, comme la page de connexion dans une fenêtre de navigation privée, pour qu'aucune session précédente ne change ce que voit le test.

Comment les autres navigateurs et les appareils émulés sont couverts, et quels navigateurs tester en premier, est expliqué dans notre guide du test multi-navigateurs.

Lire le résultat d'une exécution

Après chaque exécution, le rapport de confiance s'ouvre avec le verdict en haut et chaque étape en dessous.Une vérification en échec montre ce qui était attendu à côté de ce que le Mac a affiché, avec la différence mise en évidence, pour que vous voyiez tout de suite si l'application se trompe ou si l'écran a seulement bougé.

Chaque partie du rapport est expliquée dans Lire le rapport de confiance.

Conseils pour des tests fiables par bureau à distance

Un test par une visionneuse réussit à chaque fois quand l'image et le rythme sont les mêmes à chaque exécution.Ces habitudes vous y mènent.

SujetQue faire
LatenceChaque assertion attend ce qu'elle cherche jusqu'à son délai d'attente, 5 secondes par défaut, donc un Mac qui répond un peu en retard n'est pas un échec.Là où le Mac est lent, par exemple après le démarrage d'une application, augmentez le délai d'attente de cette assertion ou ajoutez une attente.
La touche CommandeBeaucoup de visionneuses envoient la touche Windows comme Commande et Alt comme Option, mais Windows peut intercepter lui-même certains raccourcis de la touche Windows.Activez l'option de la visionneuse qui envoie les touches système à l'ordinateur distant, et essayez chaque raccourci une fois pendant l'enregistrement.
Qualité d'imageUne visionneuse qui compresse l'image floute les contours un peu différemment à chaque exécution.Réglez sa qualité sur haute ou sans perte, et utilisez la rigueur de vérification Souple sur une connexion que vous ne pouvez pas changer.
Taille de fenêtre et mise à l'échelleGardez la fenêtre de la visionneuse à une seule taille et l'écran du Mac à 100 % dedans.Une image mise à l'échelle pour tenir dans une autre fenêtre est une autre image.
Retina et résolutionDonnez au Mac une seule résolution fixe.Un Mac mini sans écran peut en choisir une petite de lui-même : réglez-la, ou branchez un émulateur d'écran.
Notifications et fenêtres surgissantesActivez Ne pas déranger sur le Mac, pour qu'une notification ne recouvre jamais ce que cherche le test.
Le point de départAvant une exécution, remettez le Mac sur l'écran où l'enregistrement a commencé.GUI Test Runner-Recorder le vérifie et vous prévient quand l'écran n'est pas là où le test commence.

Un profil de référence par Mac conserve une image attendue distincte pour chacun, quand deux Mac dessinent la même fenêtre un peu différemment, comme deux versions de macOS.

Exécuter vos tests Mac en CI/CD depuis un agent Windows

Vos agents de build restent sous Windows.Un seul Mac suffit, atteint par la visionneuse, et gtr-cli, l'exécuteur en ligne de commande, exécute les tests Mac comme n'importe quel autre test.

Sur l'agent de build
gtr-cli run tests\mac --countdown 0 --junit results\junit.xml --artifacts results\artifacts

La préparation de la machine de build, les codes de sortie et les résultats JUnit sont expliqués dans Exécuter des tests en CI/CD.

Ce qu'il faut savoir avant de commencer

LimiteCe que cela signifie
Un Mac est nécessaireL'application ou Safari tourne sur un vrai Mac, sur un bureau, dans une baie ou dans le cloud.GUI Test Studio lui-même fonctionne sous Windows.
Seulement ce qu'affiche la visionneuseLe test voit et contrôle ce qu'affiche la fenêtre de la visionneuse.Gardez à l'intérieur la partie de l'écran du Mac que vous testez.
Pas d'informations d'accessibilitéUne visionneuse transmet une image de l'écran du Mac, donc chaque élément est trouvé à vue et chaque texte lu sur l'image.
Safari sur Mac uniquementSafari sur un iPhone ou un iPad tourne sur l'appareil, que cette configuration n'atteint pas.

Points clés

  • 1Un test de bout en bout suit tout un parcours sur le Mac, comme se connecter, créer, enregistrer, et vérifie le résultat à chaque étape.
  • 2Un vrai Mac est nécessaire, car il n'existe pas de Safari actuel pour Windows et les applications Mac ne tournent que sur un Mac.
  • 3Le Mac peut être n'importe où : sur un bureau, dans une baie ou dans le cloud, atteint par une visionneuse de bureau à distance.
  • 4La visionneuse est une fenêtre, donc GUI Test Studio l'enregistre, y rejoue de vraies saisies et vérifie ce qu'elle affiche avec des assertions visuelles et des assertions de texte.
  • 5Gardez l'image stable : une taille de fenêtre fixe, une mise à l'échelle à 100 %, une résolution fixe et une haute qualité d'image, puis exécutez le test avec gtr-cli à chaque build.

Questions

Comment créer des tests de bout en bout pour une application macOS ?

Enregistrez un vrai parcours sur le Mac, comme se connecter, créer une fiche et l'enregistrer, puis ajoutez des vérifications de ce qu'affiche l'application.Avec GUI Test Studio, vous le faites depuis Windows : une visionneuse de bureau à distance montre le Mac, et GUI Test Runner-Recorder enregistre cette fenêtre.Le test s'exécute ensuite à chaque build, avec de vraies saisies à la souris et au clavier.

Peut-on tester Safari sous Windows ?

Pas avec un Safari qui tourne sous Windows : Apple a cessé de produire Safari pour Windows en 2012.Vous pouvez tester le vrai Safari depuis Windows en atteignant un Mac par une visionneuse de bureau à distance et en enregistrant cette fenêtre avec GUI Test Studio.Le test s'exécute alors dans Safari lui-même, sur le Mac, avec de vraies saisies à la souris et au clavier.

Quelle alternative à XCUITest pour tester l'interface d'une application macOS ?

Les tests XCUITest s'écrivent en code, dans Xcode, sur un Mac.Le pilote Appium Mac2 permet de les écrire dans d'autres langages, et il lui faut toujours un Mac avec Xcode.GUI Test Studio enregistre plutôt le test, depuis un ordinateur Windows, et vérifie ce qu'affiche l'écran du Mac sans aucun code.

Faut-il un Mac pour tester une application Mac ?

Oui, quelque part.Le Mac peut être sur votre bureau, dans une baie ou dans le cloud, comme une instance Amazon EC2 Mac ou un Mac de MacinCloud ou de MacStadium, et personne n'a besoin d'être devant.Les tests sont enregistrés et exécutés depuis un ordinateur Windows, à travers une visionneuse de bureau à distance.

Peut-on exécuter macOS dans une machine virtuelle sous Windows pour tester ?

La licence d'Apple pour macOS n'autorise les machines virtuelles macOS que sur du matériel Apple, donc un PC Windows n'est pas l'endroit où en installer une.Exécutez la machine virtuelle sur un Mac, avec un outil comme Parallels Desktop, UTM ou VMware Fusion, et atteignez-la depuis Windows par une visionneuse de bureau à distance comme n'importe quel autre Mac.

Le test peut-il lire du texte sur l'écran du Mac ?

Oui.Les assertions de texte lisent ce qu'affiche le Mac avec la reconnaissance de texte propre à GUI Test Studio, comme sur n'importe quel écran.Gardez une qualité d'image élevée dans la visionneuse, pour que les lettres gardent des contours nets.

Comment le test appuie-t-il sur la touche Commande ?

Par la visionneuse, comme le fait votre propre clavier.Beaucoup de visionneuses envoient la touche Windows comme Commande et Alt comme Option, mais Windows peut garder pour lui certains raccourcis de la touche Windows.Activez l'option de la visionneuse qui envoie les touches système à l'ordinateur distant, et essayez chaque raccourci une fois pendant l'enregistrement.

Les tests Mac peuvent-ils s'exécuter dans un pipeline CI ?

Oui. gtr-cli exécute le test sur un agent de build Windows et donne à votre pipeline un code de sortie et des résultats JUnit.L'agent a besoin d'un vrai bureau Windows avec une session ouverte, car un service Windows n'a pas d'écran, et la visionneuse doit être connectée au Mac au début de l'exécution.

Mac, macOS, Mac mini, Safari, Xcode, XCTest, iPhone, iPad, Appium, Parallels Desktop, UTM, VMware Fusion, Amazon EC2, MacinCloud, MacStadium, RealVNC, TightVNC, NoMachine, Parsec, Jump Desktop, Chrome Remote Desktop et Windows sont des marques de leurs propriétaires respectifs.

Tous les articles