Comment améliorer un framework de test automatisé ?
Qu’est-ce qu’un framework d’automatisation de test ?
Un framework définit un ensemble de règles ou de bonnes pratiques que nous pouvons suivre de manière systématique pour atteindre les résultats souhaités.
Un framework d’automatisation de test est un ensemble d’outils et de directives travaillant ensemble pour prendre en charge les tests automatisés de toute application. Ces directives pourraient inclure des normes de codage, des méthodes de traitement des données de test, des référentiels d’objets, la gestion de différentes propriétés, la génération de rapports ou des informations sur la manière d’accéder aux ressources externes.
1. Pourquoi avons-nous besoin d’un framework de test d’automatisation?
Il est important d’utiliser un framework pour les tests automatisés car il améliore l’efficacité de l’équipe de test d’automatisation et la vitesse de développement des tests. Certains des avantages de l’utilisation du framework d’automatisation sont les suivants :
- Format standard pour tous les tests
- Amélioration de l’efficacité des tests
- Réduction des coûts de maintenance des scripts
- Couverture de test maximale
- Réutilisabilité du code
- Gestion efficace des données de test
2. Quels sont les différents types de frameworks d’automatisation dans Selenium ?
Il existe trois principaux types de frameworks que nous pouvons utiliser pour créer des tests automatisés pour n’importe quelle application Web
Frameworks d’automatisation dans Selenium
- Framework de test basé sur les données.
- Framework de test piloté par mots-clés.
- Framework de test hybride.
Chacun de ces frameworks a sa propre architecture, avec différents avantages et inconvénients. Lors de l’élaboration d’un plan de test, il est important de choisir le framework qui vous convient.
2.1 Framework de test basé sur les données
Il est utilisé pour séparer le script de test des données de test. Vous pouvez tester le même script avec plusieurs ensembles de données.
2.2 Framework de test piloté par mots-clés
C’est une extension du framework piloté par les données. Il permet de stocker un ensemble de code appelé « mots-clés » dans un fichier de code distinct, en externe à partir du script de test. Nous pouvons réutiliser ces mots-clés dans plusieurs scripts de test.
2.3 Framework de test hybride
C’est une combinaison du framework Data-Driven et Keyword-Driven. Ici, les mots-clés, ainsi que les données de test, sont externes. Nous conservons les mots-clés dans un fichier séparé et testons les données dans un fichier Excel ou des fichiers CSV ou une base de données.
3. Framework d’automatisation des tests: Bonnes pratiques
Avant de commencer à créer un framework d’automatisation, il existe un ensemble de directives à suivre pour créer un framework hautement fiable, évolutif et maintenable.
Certaines des meilleures pratiques sont répertoriées ci-dessous :
3.1 Définition de “Scope” de l’automatisation
Il est impossible de parvenir à une automatisation des tests à 100%, il est donc important de déterminer quels cas de test peuvent être automatisés et lesquels ne peuvent pas l’être. Les cas de test ci-dessous doivent être pris en compte pour l’automatisation :
- Tests qui doivent être exécutés à plusieurs reprises pour chaque build
- Des tests qui prennent beaucoup de temps s’ils sont effectués manuellement
- Tests pouvant provoquer une erreur humaine
- Tests nécessitant plusieurs ensembles de données de test
- Tests qui doivent être exécutés sur différentes plates-formes comme les systèmes d’exploitation ou les navigateurs
3.2 Construire un framework indépendant
Le framework :
- ne doit pas dépendre d’un test ou d’une application en particulier
- doit être capable de gérer tout type d’application ou de test
- peut être réutilisé pour plusieurs applications avec des modifications minimes
3.3 Utiliser des modèles et des principes de conception de test
Les principes de conception vous fournissent des lignes directrices ou des règles que vous devez suivre pour créer un logiciel bien conçu et maintenable.
- Le modèle d’objet de page peut être utilisé pour maintenir efficacement vos objets / éléments dans votre application lorsque vous travaillez avec des outils d’automatisation comme Selenium (qui ne fournit pas de référentiel d’objets)
- Les modèles de conception Java tels que le modèle Singleton peuvent être utilisés dans les frameworks d’automatisation Selenium où vous devez vous assurer qu’une seule instance d’un objet de navigateur existe à la fois
3.4 Effectuer l’exécution parallèle et le multithreading
Utilisez n’importe quel framework de test comme TestNG pour permettre l’exécution de plusieurs tests en parallèle avec plusieurs threads. Ceci est particulièrement utile lorsque la suite de tests contient des milliers de tests et prend beaucoup de temps pour terminer l’exécution.
3.5 Effectuer l’exécution automatique
- Intégrez votre framework avec différents outils CI (comme Maven et Jenkins) pour déclencher automatiquement votre exécution de test à un calendrier donné
- Utilisez le planificateur Windows pour déclencher automatiquement l’exécution du test
3.6 Suivre les meilleures pratiques de codage
Suivez toujours les meilleures pratiques de codage et les conventions de dénomination standard pour vos classes / méthodes, quel que soit le langage de codage.
3.7 Rapports et journalisation
- Utilisez différents plug-ins de création de rapports pour créer automatiquement des rapports de test dans différents formats
- Utilisez différentes méthodes d’outils d’automatisation pour permettre au framework de prendre automatiquement des captures d’écran lors des échecs de test
- Utilisez des frameworks de journalisation tels que log4j pour fournir une journalisation au moment de l’exécution, ce qui facilitera le débogage
3.8 Configurez toutes vos propriétés
- Configurez toutes les propriétés du framework dans le fichier de propriétés qui sera extrait et fourni au framework au moment de l’exécution
- Configurez toutes les propriétés de l’application dans le fichier de propriétés qui sera extrait et fourni au framework au moment de l’exécution
- Configurez toutes les propriétés utilisateur telles que les noms d’utilisateur, les mots de passe, les connexions à la base de données dans le fichier de propriétés qui sera extrait et fourni au framework au moment de l’exécution
- Les mots de passe doivent être stockées dans un format crypté et ces fichiers ne doivent pas être archivés dans un référentiel de code
4. Framework d’automatisation des tests: Amélioration
Afin de profiter au mieux de l’automatisation des tests, voici des conseils destinés à aider l’amélioration du retour sur investissement en automatisation de tests et à améliorer la qualité logicielle.
4.1 Choisissez bien ce que vous devez automatiser
Utilisez cet arbre décisionnel en neuf points (voir ci-dessous) afin de vous guider dans le choix des meilleurs candidats à l’automatisation, en fonction des critères suivants :
- La faisabilité technique
- La fréquence d’exécution des tests
- Le degré de réutilisabilité des composants de test
- Le nombre total de ressources nécessaires
- La complexité des cas de test
- La possibilité d’utiliser les mêmes cas de test pour de multiples navigateurs ou environnements
- Le temps nécessaire à l’exécution des tests
Arbre décisionnel en neuf points
4.2 Sélectionnez le bon outil d’automatisation de test
Il est important de sélectionner le bon outil pour votre automatisation de test, car il existe de nombreux outils disponibles sur le marché qui peuvent convenir à différents types d’applications. Voici quelques recommandations pour choisir le bon outil :
- Budget : pensez au montant du budget alloué à votre projet avant de choisir votre outil. Il existe de nombreux outils d’automatisation open source populaires tels que Selenium qui peuvent être utilisés pour l’automatisation de l’interface utilisateur
- Faisabilité : vérifiez si les exigences système de l’outil d’automatisation correspondent à celles de l’application
- Preuve de concept : Déterminez les capacités de l’outil d’automatisation en effectuant un POC sur les fonctionnalités fréquemment utilisées
- Identification : déterminez si l’outil est capable d’identifier tous les éléments de l’interface utilisateur de l’application
- Facilité d’utilisation : Déterminez la complexité de l’outil, s’il est facile à apprendre et à mettre en œuvre sans formation approfondie
- Framework : déterminez si l’outil dispose déjà d’un framework intégré qui peut être utilisé par l’équipe lors du développement des tests automatisés
Choix des outils
4.3 Veillez à la qualité de vos scripts
Respecter les normes est particulièrement important dans le cas de :
- La gestion des exceptions, qui permet de déterminer si le script de test peut opérer (et dans quelle mesure) une reprise après défaillance de l’application en cours de test ou après comportement inattendu tel que l’affichage d’une fenêtre contextuelle ;
- L’enregistrement des erreurs, où l’utilisation de normes aide les équipes de développeurs et de testeurs multiples à analyser les résultats de test et à influer sur ces derniers;
- La documentation, par exemple, pour la mise en commentaire ou la mise en retrait, aide les développeurs à créer des scripts uniformes et à comprendre le code de script créé par d’autres.
Des scripts gagnants
4.4 Identifiez le responsable de l’exécution des tests
Il est important de déterminer, dès le début, la personne « propriétaire » chargée d’exécuter l’ensemble des processus liés à l’automatisation concrète des tests.
Affectation de ressources à la fonction d’automatisation des tests
- Les testeurs fonctionnels sont déjà affectés à des tests manuels
- Les ingénieurs en automatisation, malgré leurs compétences en exécution de tests, ne maîtrisent pas suffisamment les exigences fonctionnelles pour pouvoir analyser les scénarios non réussis. Ils sont par ailleurs trop occupés au développement et à la maintenance des tests pour prendre en charge l’exécution des tests et le suivi des anomalies
- Sans une planification rigoureuse du nombre requis de ressources qualifiées, tout programme de test automatisé échouera, victime d’interruptions de service inattendues, de retards et de dépassements de coûts. L’entreprise ne sera pas en mesure d’exécuter un nombre de tests suffisants, à un rythme suffisamment soutenu, pour pouvoir justifier l’investissement en automatisation de tests
Pour en savoir plus sur les frameworks d’automatisation des tests téléchargez notre livre blanc !
Vous souhaitez plus d’informations sur les frameworks et les bonnes pratiques ? Vous avez un projet d’automatisation de test ?