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.
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 comparez | XCUITest | Pilote Appium Mac2 | GUI Test Studio |
|---|---|---|---|
| Comment un test est créé | Écrit en Swift ou en Objective-C | Écrit en code, en Java, Python, JavaScript ou un autre langage | Enregistré, puis modifié sur une timeline, sans code |
| Ce qu'il lui faut | Un Mac avec Xcode | Un Mac sous macOS 11.3 ou ultérieur, Xcode 13 ou ultérieur et un serveur Appium | Un PC Windows avec une visionneuse de bureau à distance, et un Mac auquel se connecter |
| Comment il trouve les éléments | Par les informations d'accessibilité de l'application | Par les informations d'accessibilité de l'application, avec XCTest | À vue, sur l'image de l'écran du Mac |
| À qui il convient | Aux développeurs qui maîtrisent le code de l'application | Aux équipes qui écrivent déjà des tests Appium | Aux é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.
Le Mac
Sur un bureau, dans une baie ou dans le cloud
Exécute votre application Mac ou Safari, avec un utilisateur connecté.
Se connecter
Ouvrir la visionneuse sur le Mac
Enregistrer
Choisir la fenêtre de la visionneuse
Vérifier
Ce que montre le Mac
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 Windows | Ce qui tourne sur le Mac |
|---|---|
| Une visionneuse VNC, comme RealVNC Viewer ou TightVNC | Le Partage d'écran propre au Mac, activé dans Réglages Système.Rien à installer sur le Mac. |
| NoMachine | Le programme NoMachine, installé sur le Mac. |
| Parsec | L'application Parsec, installée sur le Mac. |
| Jump Desktop | Jump Desktop Connect, installé sur le Mac. |
| Chrome Remote Desktop | L'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
- 1Ouvrir l'application et se connecterAssertion visuelle : le bouton Se connecter est là et a le bon aspect
- 2Cliquer sur Nouveau client et taper le nom du clientAssertion visuelle : le bouton et le champ sont trouvés avant chaque action
- 3Cliquer sur EnregistrerAssertion de texte : le message indique Client enregistré
- 4Ouvrir la nouvelle factureAssertion de texte dynamique : le numéro de facture a le bon format, quelle que soit sa valeur
- 5Vérifier la liste des clientsAssertion de texte : le nom du nouveau client figure dans la liste
- 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
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
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
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
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
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
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
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
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érifier | Ce qu'elle prouve sur le Mac | Exemple |
|---|---|---|
| Assertion visuelle | Un é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 texte | Un 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 dynamique | Une valeur a le bon format, quelle qu'elle soit. | Un numéro de facture, la date du jour, un prix |
| Assertion d'absence de texte | Un texte a disparu, ou ne s'affiche jamais. | Un message d'erreur après une connexion correcte |
| Assertion de groupe | Tout 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.
| Sujet | Que faire |
|---|---|
| Latence | Chaque 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 Commande | Beaucoup 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'image | Une 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'échelle | Gardez 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ésolution | Donnez 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 surgissantes | Activez Ne pas déranger sur le Mac, pour qu'une notification ne recouvre jamais ce que cherche le test. |
| Le point de départ | Avant 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.
gtr-cli run tests\mac --countdown 0 --junit results\junit.xml --artifacts results\artifactsLa 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
| Limite | Ce que cela signifie |
|---|---|
| Un Mac est nécessaire | L'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 visionneuse | Le 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 uniquement | Safari 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.
À lire aussi
Tous les articles
Tests visuels
Test de captures d'écran au pixel près : pourquoi il échoue, et ce qui détecte les vrais bugs visuels
12 min de lecture

Automatisation des tests
Tests manuels ou tests automatisés : pourquoi les tests manuels ne suffisent pas pour les tests de bout en bout
15 min de lecture

Tests visuels
Tester le mode sombre, d'autres langues, d'autres écrans : un seul test pour toutes les variantes
10 min de lecture