- Qu’est-ce que le Test d’automatisation?
- Pourquoi les tests d’automatisation sont-ils critiques dans le cycle de vie d’un logiciel ?
- Un logiciel peut-il tester un autre logiciel?
- Quels tests doivent être automatisés ?
- Mise en route des tests d’automatisation
- Exemple d’automatisation de test
- Comment passer des tests manuels aux tests d’automatisation
- Que Faut-Il Automatiser ?
- Comment Automatiser?
- Maintenance de l’automatisation des tests
Qu’est-ce que le Test d’automatisation?
Comme son nom l’indique. les tests d’automatisation prennent des activités de test de logiciels et les exécutent via un ensemble d’outils ou un framework d’automatisation. En termes simples, il s’agit d’un type de test dans lequel un outil exécute automatiquement un ensemble de tâches dans un modèle défini.
Il enlève la pression sur les testeurs manuels et leur permet de se concentrer sur des tâches de plus grande valeur – tests exploratoires, examen des résultats des tests, etc. Essentiellement, une machine prend le relais et met en œuvre des tâches banales, répétitives et déroutantes dans le temps telles que des tests de régression. Les tests d’automatisation sont essentiels pour obtenir une plus grande couverture des tests dans des délais plus courts, ainsi qu’une plus grande précision des résultats.
Pourquoi les tests d’automatisation sont-ils critiques dans le cycle de vie d’un logiciel ?
Imaginez ceci.
Lors de votre premier jour d’assurance qualité, vous devez tester une application comprenant environ 100 champs nécessitant une saisie. Lorsque vous effectuez des tests exploratoires, vous devez insérer une entrée manuellement dans chaque champ. Cela prend environ 10 minutes si vous êtes vraiment rapide.
Vous appuyez sur Soumettre. Un message d’erreur apparaît. Cela ressemble à une exception non gérée. Vous signalez le bug et vous vous sentez vraiment bien dans un travail bien fait. Vous répétez le processus, trouvez quelques bugs supplémentaires et passez un premier jour généralement productif.
Le lendemain, le développeur corrige les problèmes et vous devez tester la nouvelle version du logiciel en répétant les mêmes étapes que la veille. Bug corrigé. Travail bien fait. Une bonne expérience utilisateur assurée, grâce à vos efforts.
Le troisième jour, les développeurs ont publié une version plus récente avec des fonctionnalités plus récentes. Mais pour vous assurer que les nouvelles fonctionnalités n’ont pas cassé les anciennes fonctionnalités de travail, vous devez répéter le processus à nouveau. Aucun problème trouvé.
Un mois plus tard, les développeurs publient de nouvelles versions en continu, ce qui signifie que vous devez continuer à tester le logiciel, en répétant le même processus (insertion de champs) à chaque fois. Vous vous ennuyez et vous êtes fatigué. Votre précision commence à vaciller, à la suite de quoi vous finissez par manquer un bug – peut-être plutôt évident.
Croyez-le ou non, il s’agit d’un scénario assez courant pour la plupart des QA. Il n’est pas possible de faire la même chose encore et encore et d’être parfait à chaque fois. C’est là que les tests d’automatisation entrent en jeu.
Un logiciel peut-il tester un autre logiciel?
Oui. C’est tout l’intérêt des tests d’automatisation. En ce qui concerne les tests de régression, investir un effort manuel est vain et inutile. Au lieu de s’attendre à ce que les humains répètent les mêmes étapes avec la même vitesse, la même précision et la même énergie, il est beaucoup plus logique de programmer une machine pour faire de même.
Quels tests doivent être automatisés ?
Avant de créer une stratégie d’automatisation des tests, examinons quels tests sont les plus réalisables pour l’automatisation:
- Tests de régression : Les suites de régression sont de plus en plus nombreuses et nécessitent que les mêmes variables soient remplies plusieurs fois pour s’assurer que les nouvelles fonctionnalités n’altèrent pas les fonctions plus anciennes. Cela peut facilement être automatisé.
- Test de fonctionnalités complexes : Automatisez tous les tests nécessitant des calculs complexes, sujets aux erreurs humaines.
- Essais de fumée: Exécutez des suites automatisées pour vérifier la qualité des principales fonctionnalités. Cela permet de gagner du temps en offrant une analyse rapide pour savoir si une version nécessite des tests plus approfondis.
- Tests pilotés par les données : Automatisez les tests pour valider les fonctionnalités qui doivent être testées à plusieurs reprises avec de nombreux ensembles de données.
- Tests de performance: Automatisez les tests qui surveillent les performances des logiciels dans différentes circonstances. Faire cela manuellement serait extrêmement laborieux et prendrait beaucoup de temps.
- Tests fonctionnels: Chaque fois qu’un développeur soumet un PR, les tests fonctionnels doivent être exécutés rapidement et fournir un retour immédiat. Cela est impossible à réaliser sans automatisation, d’autant plus que les organisations se développent.
Mise en route des tests d’automatisation
Lors de la transition des tests manuels aux tests d’automatisation, gardez à l’esprit les points suivants:
- Ne visez pas l’automatisation des tests à 100%. Tous les tests ne peuvent pas être automatisés. Même parmi les tests qui peuvent être automatisés, ne fixez pas d’objectif initial d’automatisation complète.
- Fixez un objectif réaliste. Par exemple, commencez par déplacer quelques tests vers l’automatisation. Écrivez des cas de test plus petits qui peuvent être facilement réutilisés dans de futurs tests du même logiciel. Cartographiez les cas de test avec les fonctions correspondantes pour fournir une meilleure couverture de test. Étiquetez les cas de test afin que les équipes puissent avoir plus de clarté sur ce qu’il faut automatiser et produire des rapports plus efficacement.
- Explorez de nouveaux domaines de l’application avec l’automatisation. Lorsque vous élaborez des stratégies d’automatisation, assurez-vous que les exigences métier sont prises aussi au sérieux que les considérations techniques.
- Sachez quoi ne pas automatiser. Cela aide à décider de la portée de l’automatisation au début du processus d’idéation. Les tests suivants sont mieux laissés à la couverture manuelle:
- Test de l’expérience utilisateur : Les outils ne peuvent pas reproduire tout parcours utilisateur dans son intégralité. Il est impossible pour un algorithme de prédire comment les utilisateurs individuels interagiront avec une application. Afin de juger réellement de la qualité de l’expérience utilisateur, respectez les testeurs humains. Essayez d’utiliser des outils de test interactifs manuels tels que BrowserStack Live.
- Tests d’accessibilité: Lors du test de l’accessibilité d’une application, il n’y a pas de substitut à l’utilisation humaine. Un outil ne peut pas mesurer l’accessibilité parce que les gens ont souvent des opinions différentes sur ce qui compte comme accessible. Il n’est pas possible pour un outil de reconnaître si le flux de travail logiciel fournit un accès facile aux humains réels.
- Sélectionnez les bons outilsles tests d’automatisation dépendent entièrement des outils. Voici ce qu’il faut considérer lors du choix du bon outil:
- La nature du logiciel : L’application testée est-elle basée sur le Web ou sur le mobile ?
Pour tester le premier, utilisez un outil comme Selenium pour automatiser vos tests. Pour ce dernier, Appium est l’un des meilleurs outils d’automatisation possibles. - Expérience du programmeur : Choisissez des frameworks, des langages et des outils qui correspondent au confort et à l’expérience des testeurs. Parmi les langages les plus utilisés pour les tests d’automatisation, citons Java, JavaScript, Ruby, C#, etc.
- Open Source ou non : Selon les contraintes budgétaires, on peut choisir d’utiliser des outils open source tels que Selenium ou Appium à des fins d’automatisation. Cependant, il est important de se rappeler que tous les outils open source ne sont pas inférieurs à leurs homologues disponibles dans le commerce. Par exemple, Selenium Webdriver est un outil open source qui est le plus apprécié des testeurs automatisés du monde entier.
- Sélectionnez la bonne grille de test
La grille de test fait référence à l’infrastructure sur laquelle tous les tests automatisés s’exécuteront. Il comprend une série d’appareils, de navigateurs et de systèmes d’exploitation (plusieurs versions) sur lesquels le logiciel doit être testé. Il est toujours préférable d’automatiser les tests sur de vrais appareils et navigateurs. Cela garantira que le logiciel est testé dans des conditions réelles d’utilisation.
De plus, la grille de test idéale devrait permettre des tests parallèles. Cela signifie que les testeurs doivent pouvoir exécuter plusieurs tests sur plusieurs appareils simultanément. Cela réduit le temps de test, accélère les résultats et offre des résultats dans des délais plus courts.
Autre chose à décider : si la grille de test doit être hébergée sur site ou sur le cloud. Gardez à l’esprit que l’infrastructure sur site est presque toujours coûteuse à installer et à entretenir. Cela nécessite de suivre les nouveaux appareils, navigateurs et systèmes d’exploitation, de les mettre à jour et de les maintenir en conséquence. C’est un défi car plusieurs versions de chacune sont publiées chaque mois.
Inversement, les tests sur une grille basée sur le cloud sont plus faciles, car la mise à jour et la maintenance seraient prises en charge par l’organisation proposant la grille. Par exemple, BrowserStack propose une grille de sélénium cloud connectée à plus de 2000 appareils et navigateurs réels pour les tester. Les utilisateurs doivent simplement s’inscrire et commencer à tester sur une grille de sélénium robuste qui est constamment mise à jour pour obtenir les meilleurs résultats possibles.
Le real device cloud de BrowserStack fournit plus de 2000 navigateurs et appareils réels pour des tests instantanés à la demande. Le cloud fournit également des intégrations avec des outils CI / CD populaires tels que Jira, Jenkins, TeamCity, Travis CI et bien plus encore. De plus, il existe des outils de débogage intégrés qui permettent aux testeurs d’identifier et de résoudre immédiatement les bogues. BrowserStack facilite également les tests de Cypress sur plus de 30 versions de navigateurs avec une parallélisation instantanée et sans tracas.
Essayez le test d’automatisation gratuitement
Exemple d’automatisation de test
Lors du test manuel d’un logiciel, le testeur utilise un support et un clavier pour interagir avec celui-ci. Les scripts et outils d’automatisation reproduisent cette interaction, étape par étape.
Dans cet exemple, une calculatrice est en cours de test pour voir si elle peut ajouter deux nombres et afficher le résultat. Manuellement, les étapes pour le faire seraient les suivantes:
Étape 1: Lancer la calculatrice
Étape 2: Appuyez sur 2
Étape 3: Appuyez sur +
Étape 4: Appuyez sur 3
Étape 5: Appuyez sur =
Étape 6: L’écran affiche 5
Étape 7: Fermer Calculatrice
Un outil d’automatisation peut effectuer les mêmes étapes avec le script suivant:
//the example is written in MS Coded UI using c# language.public void TestCalculator(){//launch the applicationvar app = ApplicationUnderTest.Launch("C:\Windows\System32\calc.exe");//do all the operationsMouse.Click(button2);Mouse.Click(buttonAdd);Mouse.Click(button3);Mouse.Click(buttonEqual); //evaluate the resultsAssert.AreEqual("5", txtResult.DisplayText,"Calculator is not showing 5");//close the applicationapp.Close();}
Lors de l’exécution du script ci-dessus, le même résultat (5) est affiché. Au lieu d’avoir à suivre les étapes manuelles, écrivez simplement le script et laissez l’outil s’occuper du reste.
Comment passer des tests manuels aux tests d’automatisation
Pour commencer : posez deux questions.
- Que faut-il automatiser ?
- Comment automatiser ?
Que Faut-Il Automatiser ?
- Automatiser les tests nécessaires pour un cycle de libération fréquent. Cela peut inclure des tests de fumée, des tests de régression, etc. En gros, automatisez les tests qui accélèrent l’ensemble du cycle de test. N’oubliez pas qu’une intervention manuelle plus faible équivaut à des résultats plus rapides.
- Automatisez les tests en fonction de la priorité technique et commerciale. Pensez comme ceci: l’automatisation de ce test aiderait-elle l’entreprise? Automatiser ce test permettrait-il de simplifier les complexités techniques ? Si la réponse est oui à l’une ou l’autre des questions, automatisez.
- Automatiser en fonction de la convivialité. Certains tests, tels que les tests de compatibilité entre navigateurs, fonctionnent tout simplement mieux lorsqu’ils sont effectués manuellement. La dépendance à l’outil peut également limiter le potentiel d’automatisation d’une certaine équipe ou organisation de test.
En savoir plus: 10 Bonnes pratiques d’automatisation des tests à suivre
Comment Automatiser?
Pour commencer, gardez à l’esprit que tous les tests ne peuvent pas être automatisés. En adhérant aux trois stratégies de la section précédente, il devient plus facile d’initier des tests automatisés de manière pratique.
- Commencez petit. L’automatisation à 100% n’est pas l’objectif et n’est pas non plus possible. Écrivez des cas de test plus petits car ils sont plus faciles à entretenir et à réutiliser. Déplacez un petit nombre de tests vers une plate-forme d’automatisation, exécutez les tests, analysez les résultats et décidez si le processus s’est avéré bénéfique pour le processus de développement logiciel.
- Si l’opération présente des avantages significatifs, passez davantage de tests à l’automatisation. Commencez à déplacer les tests non seulement en volume, mais augmentez également le type de tests automatisés. Rappelez-vous que c’est encore une étape expérimentale. Il est possible que certains tests se révèlent inefficaces en matière d’automatisation et doivent être renvoyés à des tests manuels.
- Cartographiez les cas de test avec chaque méthode ou fonction afin d’obtenir une meilleure couverture de test. Étiquetez vos cas de test pour une identification plus facile, afin que l’équipe puisse rapidement savoir quels tests automatiser. Cela permet également de mettre en œuvre de meilleurs rapports.
- Au démarrage des tests d’automatisation, commencez par explorer manuellement de nouveaux domaines de l’application. Ensuite, créez un plan de risque qui détaille ce qui doit être automatisé, en fonction des priorités commerciales et techniques.
- Utilisez analytics pour déterminer les préférences de l’utilisateur final. Créez une liste de navigateurs et d’appareils avec lesquels les utilisateurs sont les plus susceptibles d’accéder au logiciel. Cela permet aux tests d’automatisation de couvrir les bonnes interfaces et d’optimiser les performances du logiciel sur les bonnes voies utilisateur.
Essayez les Tests automatisés sur le Cloud de l’appareil réel
Maintenance de l’automatisation des tests
Une fois conçues, les suites de tests d’automatisation doivent être maintenues. Au fur et à mesure que le logiciel évolue et que la base de code se développe, les scripts d’automatisation doivent être modifiés et mis à jour pour intégrer de nouvelles fonctionnalités et fonctions. Même de minuscules changements dans l’interface utilisateur peuvent perturber les tests et les faire échouer. Lors de la conception de scénarios de test, les testeurs d’automatisation doivent tenir compte des efforts et des coûts de maintenance.
L’approche de maintenance de l’automatisation des tests fonctionne sous deux perspectives principales:
- Échec du test : Lors du débogage des tests ayant échoué, recherche d’éventuels problèmes de maintenance. Le script de test n’a-t-il pas été correctement mis à jour ? Un changement de code logiciel a-t-il interféré avec le script de test? C’est un moyen facile d’identifier les zones nécessitant des efforts de maintenance.
- Modification des dépendances ou des outils: L’équipe ou l’organisation a-t-elle modifié les API, les outils de reporting, les bases de données, etc.? Si c’est le cas, les tests devront peut-être être modifiés ou mis à jour pour s’aligner sur de nouveaux ensembles d’outils. Pour ce faire, les développeurs et les testeurs devront évidemment être formés à la nouvelle infrastructure afin de pouvoir suivre les efforts de maintenance à l’avenir.
Quels sont les éléments clés d’une stratégie efficace d’automatisation des tests ?
Les tests d’automatisation font partie intégrante de tout écosystème de test. Sans passer à une configuration d’automatisation, les tests complets deviennent difficiles, tout comme le respect de délais toujours plus courts. Par conséquent, il est important d’initier les protocoles de test d’automatisation le plus tôt possible de manière à équilibrer et à compléter les tests manuels.
Essayez les étapes décrites ci-dessus et expérimentez suffisamment pour savoir quelles approches donnent des résultats optimaux. Ne craignez pas d’échouer plusieurs fois avant de trouver le bon endroit qui permet une automatisation efficace sans compromettre la validation humaine.