Résumé
Dans le contexte en constante évolution du développement de logiciels, les outils de test automatisés sont essentiels au maintien de la qualité et du bon fonctionnement des applications.
Ce livre blanc propose une comparaison complète entre les outils de test automatisés basés sur les objets et ceux basés sur les enregistrements. Il explore les avantages et les inconvénients de chaque approche, et donne des éléments d'information sur la stabilité des tests, la gestion de la complexité, la maintenance et l'intégration dans les pipelines CI/CD.
Cet article a pour objet d'aider les testeurs professionnels à choisir l'outil d'automatisation des tests adapté à leurs besoins afin de garantir l'efficacité et la robustesse de leurs processus de test.
Découvrez comment le choix du meilleur outil de test peut améliorer votre stratégie de test et la qualité de vos logiciels..
Contenu de ce livre blanc
- Comparaison des outils : basés sur l'objet vs. basés sur l'enregistremen : Quelles sont les principales différences ?
- Critères de choix : principaux facteurs à prendre en compte pour le choix d'un outil.
- Scénarios de préférence : cas d'utilisation spécifiques dans lesquels chaque type d'outil excelle.
- Coût et ressources : temps, ressources et formation nécessaires à la mise en œuvre de chaque outil.
- Intégration CI/CD : Comment chaque outil s'intègre dans les processus d'intégration et de déploiement continus ?
- Conclusion et recommandations
Comparaison des outils de tests automatisés
Maintenance des tests
Outils Basés sur les objets
Les outils basés sur les objets définissent des tests basés sur les objets de l'interface utilisateur créés par les développeurs. Ces outils utilisent la reconnaissance d'objets pour identifier les composants de l'interface utilisateur, ce qui rend les tests très stables, même en cas de changements mineurs dans l'application.
Par exemple, si un bouton est légèrement déplacé ou si un libellé est mis à jour, le test reconnaîtra toujours le bouton ou le libellé sur la base de ses attributs et non de sa position exacte.
Cela réduit considérablement le poids de la maintenance, car les tests ne sont pas affectés par les modifications mineures de l'interface utilisateur.
Outils d'enregistrement
Les outils d'enregistrement créent des tests en enregistrant les manipulations de l'interface utilisateur pendant l'utilisation de l'application.
Toute modification de l'interface utilisateur, telle que le texte d'un libellé ou la position d'un contrôle, nécessite de réenregistrer les tests concernés.
Ce processus répétitif peut prendre du temps et être contre-productif, ce qui nuit à l'objectif des tests automatisés.
Points clés :
Outils Basés sur les objets
Stabilité : Les tests restent valables malgré des modifications mineures de l'interface utilisateur.
Maintenance réduite : La nécessité de mettre à jour les tests moins souvent permet d'économiser du temps et des ressources.
Exemples d'outils : Des outils comme AscentialTest, TestComplete et UFT (Unified Functional Testing).
Points clés :
Outils d'enregistrement
Fragilité : Les tests sont impactés par toute modification de l'interface utilisateur, même mineure.
Besoin de Maintenance élevé : Le réenregistrement fréquent des tests augmente la charge de travail.
Exemples d'outils : Outils tels que Ranorex, TestProject ou Eggplant.
Création et réutilisation des tests
Outils Basés sur les objets
Les outils basés sur les objets permettent aux testeurs de définir et de réutiliser efficacement les actions de test.
Les tests sont créés en spécifiant des actions sur les objets de l'interface utilisateur, qui peuvent être réutilisées dans plusieurs tests. Cette approche modulaire simplifie la création et la maintenance des tests.
En outre, dans des outils comme AscentialTest, les actions communes peuvent être regroupées en blocs réutilisables appelés " steps ", permettant ainsi d'améliorer considérablement la réutilisation et la maintenance des tests..
Outils d'enregistrement
Les outils d'enregistrement obligent souvent les testeurs à enregistrer des manipulations courantes de façon répétée pour différents tests.
L'absence de réutilisation entraîne un surcroît d'efforts et de temps pour la création et la mise à jour des tests.
Points clés :
Outils Basés sur les objets
Modularité : Les actions peuvent être réutilisées, ce qui renforce l'efficacité.
Maintenance simplifiée : Toute mise à jour d'une action se propage à tous les tests qui l'utilisent.
Fonctionnalité exclusive : Les « steps » d'AscentialTest pour des actions réutilisables.
Points clés :
Outils d'enregistrement
Redondance : Les actions courantes doivent être enregistrées plusieurs fois.
Manque d’efficacité : Surcroît d'effort pour la création et la maintenance des tests.
Reconnaissance des objets
Outils basés sur les objets :
Ces outils utilisent les attributs des objets pour identifier les composants de l'interface utilisateur, sans tenir compte de la hiérarchie des objets.
Cette méthode rend les tests moins vulnérables aux changements de structure de l'application. Lorsqu'un objet est introuvable, l'outil met en évidence le problème, ce qui permet aux utilisateurs de mettre facilement à jour les attributs de l'objet.
Outils d'enregistrement
Les outils d'enregistrement s'appuient sur des méthodes telles que XPath pour localiser les éléments de l'interface utilisateur.
Des changements dans la hiérarchie des pages de l'application peuvent perturber les définitions d'objets, entraînant l'échec des tests et nécessitant un réenregistrement.
Points clés :
Outils Basés sur les objets
Robustesse : Less affected by changes in UI hierarchy.
Facilité de mise à jour : Simple adjustments when objects change.
Visuel : Diagramme illustrant la reconnaissance d'objets basée sur les attributs.
Points clés :
Outils d'enregistrement
Vulnérabilité : Susceptible to UI hierarchy changes.
Besoin de maintenance important : Réenregistrement fréquent en raison des difficultés à reconnaître les objets.
Support des composants
Outils Basés sur les objets
En général, les outils basés sur l'objet supportent un large éventail de composants d'application, assurant ainsi une couverture complète des tests. Cela inclut non seulement les éléments standard de l'interface utilisateur, mais aussi les contrôles personnalisés et les composants non-visuels de l'interface utilisateur.
AscentialTest peut, par exemple, se connecter à votre base de données pour valider les opérations de lecture ou de mise à jour à effectuer par l'application, vérifier que les documents pdf sont générés correctement et que leur contenu est conforme aux attentes, etc.
Outils d'enregistrement
Ces outils sont capables de valider des objets standard, mais ne supporte pas toujours les composants personnalisés, à base d'images ou non-visuel, ce qui limite leur efficacité.
Points clés :
Outils Basés sur les objets
Couverture complète : Supportent de nombreux composants d'application.
Flexibilité : s'adaptent à différents types d'applications.
Points clés :
Outils d'enregistrement
Couverture limitée : Difficultés liées aux composants non standard.
Utilisation limitée : Capacité d'adaptation limitée aux applications complexes.
Les outils basés sur les objets offrent une meilleure couverture que les outils d'enregistrement.
Choisir le bon outil pour votre projet :
un guide comparatif pour les testeurs professionnels
Critères clés pour faire votre choix
Pour choisir entre les outils de test automatisé basés sur l'objet et ceux basés sur l'enregistrement, vous devez tenir compte de plusieurs critères :
1. Stabilité et maintenance des applications
- Basés sur les objets : ces outils sont avantageux si l'interface utilisateur de votre application subit des changements fréquents, car ils s'appuient sur les attributs des objets plutôt que sur des structures hiérarchiques. Ils sont donc plus stables et moins susceptibles de ne plus fonctionner en cas d'ajustements mineurs de l'interface utilisateur.
- Basé sur l'enregistrement : mieux adapté aux applications dont l'interface utilisateur est stable et où les changements sont rares. Ces outils peuvent être moins efficaces si l'interface utilisateur fait l'objet de mises à jour régulières, car il est alors nécessaire de réenregistrer les tests.
2. Complexité des cas de test
- Basés sur les objets : idéal pour les scénarios de test complexes impliquant des contrôles personnalisés, des composants non-GUI et des interactions avec des bases de données ou des fichiers externes. Leur capacité à gérer un large éventail de composants les rend polyvalents.
- Basé sur l'enregistrement : conviennent aux cas de test plus simples axés sur les éléments standard de l'interface utilisateur. Ils peuvent rencontrer des difficultés avec des scénarios complexes impliquant des composants personnalisés ou non standard. Supporter de tels scénarios impliquerait d'écrire des scripts, ce qui nécessite des compétences en développement, ainsi qu'un temps et des coûts supplémentaires significatifs.
3. Maintenance et réutilisation des tests
- Basés sur les objets : ils permettent la réutilisation de composants de test modulaires tels que les "Steps" d'AscentialTest. Ces outils limitent les tâches de maintenance en permettant la mise à jour d'étapes ou de composants individuels, qui se propagent à l'ensemble des tests.
- Basé sur l'enregistrement : la maintenance nécessite généralement plus d'efforts, car les actions courantes doivent être réenregistrées pour chaque test. Cela augmente la redondance et le temps nécessaire aux mises à jour.
4. Disponibilité des ressources et expertise
- Basés sur les objets : Elles nécessitent généralement une configuration initiale plus importante et une compréhension plus approfondie des capacités de l'outil. Ils peuvent nécessiter une formation, mais offrent des avantages considérables à long terme en termes de maintenance et de flexibilité.
- Basé sur l'enregistrement : Prise en main rapide pour les débutants ayant peu de connaissances techniques. Ils permettent de créer rapidement des tests grâce à l'enregistrement, mais peuvent rapidement devenir coûteux si les tests deviennent complexes et nécessitent le développement de scripts. La maintenance des tests affecte également la rentabilité en cas de changements fréquents de l'interface utilisateur.
Scénarios dans lesquels chaque approche est préférable
1. Basés sur les objets
- Applications dynamiques et en constante évolution : les applications dont l'interface utilisateur est régulièrement modifiée, en raison d'un développement itératif ou de mises à jour fréquentes, bénéficient de la stabilité des outils basés sur les objets.
- Applications d'entreprise complexes : Les applications qui comportent de nombreux contrôles personnalisés, des intégrations avec des bases de données et des composants non graphiques sont plus adaptées aux outils à base d'objets du fait de leur couverture étendue et de leur flexibilité.
2. Basé sur l'enregistrement
- Applications Stables : Les applications dont l'interface utilisateur est stable et qui ne subissent pas de changements fréquents sont les candidats idéaux pour les outils basés sur l'enregistrement. La facilité d'utilisation initiale et la création rapide de tests sont des avantages significatifs.
- Applications Simples : Les applications dont les interactions avec l'utilisateur sont simples et les éléments de l'interface utilisateur standard peuvent être testées efficacement à l'aide d'outils basés sur l'enregistrement, réduisant ainsi le besoin de configurations complexes.
Coûts liés à la mise en œuvre
1. Basés sur les objets
- Temps : La configuration initiale peut être plus longue puisqu'il est nécessaire de définir les objets et de configurer les tests. En revanche, le temps consacré à la maintenance est considérablement réduit sur le long terme.
- Ressources : Nécessite des testeurs qualifiés ayant une bonne compréhension de la reconnaissance d'objets et des fonctionnalités de l'outil. Une formation peut être nécessaire pour maximiser le potentiel de l'outil.
2. Basé sur l'enregistrement
- Temps : Rapide à mettre en place et à utiliser, car les tests sont créés par l'enregistrement des interactions des utilisateurs. Cependant, les fréquents réenregistrements augmentent le temps passé à maintenir les tests en place.
- Ressources : Plus facile à utiliser pour les testeurs moins expérimentés, avec une formation initiale minimale. Convient aux équipes disposant de ressources et d'une expertise technique limitées, mais uniquement si l'application et les tests sont simples. Dans le cas contraire, il faudra écrire des scripts, ce qui impliquera des compétences en développement et des coûts élevés de création et de maintenance des tests.
Intégration dans les pipelines CI/CD
1. Basés sur les objets
- Intégration : Ces outils s'intègrent généralement bien dans les pipelines CI/CD en raison de leur robustesse et de leur capacité à gérer les changements. Ils peuvent être configurés pour exécuter des tests automatiquement à chaque version, ce qui assure un feedback et un contrôle de la qualité continus.
- Évolutivité : Les outils basés sur les objets sont évolutifs et capables de gérer efficacement un grand nombre de tests. Leur modularité permet d'effectuer facilement des mises à jour et d'ajouter des tests à mesure que l'application évolue. Pour faciliter l'évolutivité, AscentialTest peut distribuer un grand nombre de tests sur plusieurs machines pour une exécution plus rapide. Il assemble ensuite automatiquement les résultats et génère un rapport de test global.
2. Basé sur l'enregistrement
- Intégration : Ces outils peuvent être intégrés dans des pipelines CI/CD, mais leur fragilité peut poser des problèmes. Les changements fréquents de l'interface utilisateur peuvent entraîner l'interruption des tests, ce qui nécessite un réenregistrement et une intervention manuelle.
- Évolutivité : Bien qu'ils soient rapides à mettre en place, l'évolutivité des outils basés sur l'enregistrement est limitée par les surcoûts liés à la maintenance. Plus le nombre de tests augmente, plus leur maintenance peut s'avérer fastidieuse.
Avantages Spécifiques d’AscentialTest
Le concept de « Step » (étape)
L'une des fonctionnalités les plus intéressantes d'AscentialTest est son concept unique de "Step".
Les steps sont des blocs d'actions réutilisables qui peuvent être assemblés pour créer des tests. Cette fonctionnalité est peu courante parmi les outils basés sur l'objet. Les steps permettent de :
- Composants de test réutilisables : Les actions courantes (par exemple, l'ouverture d'une session dans une application) peuvent être définies une seule fois et réutilisées dans plusieurs tests.
- Maintenance efficiente : Lorsque l'application est modifiée, la mise à jour de quelques « étapes » entraîne automatiquement la mise à jour de tous les tests connexes. Il en résulte un gain de temps et d'efforts considérable.
Support étendu de composants
AscentialTest supporte un large éventail de composants d'application, y compris les objets personnalisés, les images et le texte rendu. Il gère également divers formats tels que les bases de données ODBC, XML, les fichiers texte, les fichiers .ini et les PDF. Cette prise en charge complète garantit que tous les aspects de l'application peuvent être testés de manière approfondie.
Points clés :
Large compatibilité : Assure une couverture complète des tests.
Adaptabilité : Supporte de nombreux formats de données et composants.
AscentialTest : un support étendu de composants.
Interface Drag & Drop
AscentialTest est convivial, grâce à une interface de type « drag-and-drop » qui évite d'avoir à écrire beaucoup de code. Il construit progressivement le projet de test au fur et à mesure que les utilisateurs capturent des objets et créent des étapes.
L'un des principaux avantages d'AscentialTest est le « snapshot » : vous pouvez capturer automatiquement tous les éléments composant un écran, puis définir des objets par glisser-déposer. Vous pouvez également créer des étapes et des tests par drag and drop.
AscentialTest génère également des tables de données de test et les relie aux paramètres de test de façon automatique, ce qui simplifie encore plus le processus de test.
Points clés :
Interface conviviale : Simplifie la création et la maintenance des tests.
Snapshots : Simplifie la création et la maintenance des tests.
Automatisation du traitement des données : Génération et liaison des données de test automatique.
Conclusion et Recommandations
Leur grande stabilité, la possibilité de réutiliser les tests et leur flexibilité font des outils basés sur les objets le meilleur choix pour l’automatisation des tests.
Parmi ces outils, AscentialTest se distingue par ses fonctionnalités uniques, telles que son concept "étape par étape", le support étendu des composants et sa facilité de mise en œuvre. Il répond particulièrement bien aux besoins des testeurs professionnels qui exigent de l'efficacité, de la robustesse et une couverture complète des tests.
La simplicité de la maintenance des tests et la possibilité de les réutiliser font d'AscentialTest un outil incontournable dans le domaine de l'automatisation des tests.

