Lorsqu'il s'agit de tests automatisés, une bonne structure est la clé de leur efficacité et de leur viabilité.
Historique de la question
Auparavant, les tests automatisés étaient souvent créés sous forme de scripts monolithiques étroitement liés. Cela les rendait difficiles à maintenir et à étendre. L'augmentation du nombre de tests a révélé l'importance d'une architecture bien définie.
Problème
Sans structure claire, on rencontre:
Solution
Utilisez des niveaux d'abstraction clairs pour vos tests:
Une bonne pratique consiste à utiliser:
# Exemple de structure /tests /features test_order_creation.py /steps order_steps.py /pages order_page.py
Caractéristiques clés :
Qu'est-ce qui est mieux : écrire de longs tests end-to-end ou de courts tests automatisés unitaires ?
On choisit souvent uniquement les tests end-to-end, mais il est important de combiner différents types de tests selon les objectifs : tous les niveaux (Unit, API, UI) sont importants pour une vérification de qualité.
Peut-on utiliser à la fois la vérification UI par texte et par localisateurs dans les tests ?
Ce n'est pas toujours correct : il est possible d'utiliser simultanément les deux méthodes, mais seulement si la variabilité de l'UI et la logique du test le justifient. Souvent, cela est redondant et complique la maintenance.
Faut-il copier entièrement la structure du système du logiciel testé lors de la création des tests automatisés ?
Non, la structure des tests automatisés doit être orientée vers la commodité des tests, plutôt que vers une duplication exacte de l'architecture de l'application.
Dans l'équipe, les tests automatisés étaient écrits par une seule personne, les tests étaient dans un seul fichier, chaque test copiait les étapes du précédent. Lors de la mise à jour de l'interface, le bogue était corrigé manuellement dans tous les tests.
Avantages :
Inconvénients :
Dans une autre équipe, un modèle architectural a été introduit (séparation des étapes, des pages, des tests). Les nouveaux employés comprenaient rapidement et implémenteaient de nouveaux tests rapidement, les mises à jour étaient effectuées à un seul endroit.
Avantages :
Inconvénients :