Fermer

mai 18, 2021

5 façons d'accélérer vos tests de bout en bout


Les tests de bout en bout sont un excellent moyen de fournir des applications Web de haute qualité. Malheureusement, ces tests ont tendance à être plus lents que les autres tests, ce qui entraîne des retards dans le processus de développement. Voici cinq conseils que vous pouvez utiliser pour que vos tests continuent de fonctionner efficacement.

Les applications Web d'aujourd'hui sont plus complexes que jamais. Les utilisateurs de votre application attendent plus que du texte et des images, ils exigent également plus d'interactivité et une expérience fluide et transparente comme ils le feraient avec une application de bureau traditionnelle. Étant donné la complexité accrue de la création de sites Web riches et interactifs, s'assurer qu'ils fonctionnent comme prévu nécessite également beaucoup plus d'efforts de la part des équipes de test du monde entier. Des tests approfondis sont nécessaires pour garantir que votre application Web fonctionne de manière optimale pour les clients existants et potentiels.

De nombreuses entreprises disposent d'équipes d'assurance qualité qui parcourent manuellement leurs sites pour rechercher d'éventuels défauts. Cependant, cette pratique est inefficace et sujette à l'erreur humaine, en particulier pour les grands sites avec des tonnes de fonctionnalités. De nos jours, la plupart des entreprises de développement d'applications font la transition vers l'automatisation des tests. En automatisant une grande partie des tâches de test répétitives, ces équipes d'assurance qualité peuvent se concentrer sur d'autres travaux de grande valeur, tels que les tests exploratoires. Les tests automatisés ne remplaceront pas les tests manuels, mais ils sont nécessaires compte tenu des exigences et des attentes du développement logiciel moderne.

Qu'est-ce que les tests de bout en bout?

Une forme courante de test automatisé pour s'assurer que vos sites Web fonctionnent correctement écrit et exécute des tests de bout en bout (parfois appelés tests e2e). Ces tests simulent les actions qu'un utilisateur typique effectuerait lors de la visite de votre application sur un navigateur Web. Au lieu de demander à quelqu'un de cliquer sur des liens, de remplir des formulaires et d'observer les résultats, un test de bout en bout peut le faire automatiquement en une fraction du temps.

Alors que les tests de bout en bout sont excellents pour éliminer le besoin de travail répétitif et fastidieux, ils comportent également de nombreux compromis. Principalement, les tests de bout en bout sont lents par rapport à d'autres formes de tests, comme les tests unitaires et les tests fonctionnels. Souvent, ils entraînent des retards dans le processus de développement et de déploiement, car l'équipe doit attendre la fin d'une suite de tests, parfois pendant des heures. Le manque de rétroaction rapide et fiable est l’une des principales raisons pour lesquelles les entreprises abandonnent leurs efforts d’automatisation des tests.

Si votre équipe ne fait pas attention, elle peut se retrouver avec une suite de tests lents obstruant le pipeline de développement. Mais il ne doit pas toujours en être ainsi. Vous pouvez prendre quelques mesures pour accélérer vos tests – beaucoup plus rapidement, dans certains cas. Cet article présente cinq façons d'améliorer la vitesse de vos tests de bout en bout afin de profiter des avantages de l'automatisation des tests sans sacrifier le temps de développement ou de déploiement.

1. Appels réseau asynchrones simulés

Les applications Web modernes effectuent de nombreux travaux d'arrière-plan sur une seule page, communiquant souvent avec plusieurs services à travers le monde. Par exemple, lorsqu'un utilisateur visite un site Web, le site extrait des données de services tiers de manière asynchrone pour disposer des informations nécessaires pour afficher une page donnée. Un autre exemple est la soumission d'un formulaire sur un site Web, qui envoie les données à une base de données externe vivant dans un autre réseau.

Ces actions asynchrones offrent une expérience fluide aux utilisateurs d'un site Web, ne transmettant ou ne récupérant que les données nécessaires et évitant de la page se recharge. Mais lors de l'exécution de tests de bout en bout, toutes ces connexions réseau prennent un temps de test précieux. Vos tests devront attendre que plusieurs requêtes réseau répondent. Étant donné que vous n’avez généralement aucun contrôle sur les performances de ces appels, vos tests peuvent connaître de graves retards ou échecs, vous obligeant à réexécuter votre suite de tests.

Au lieu d’exécuter ces requêtes réseau coûteuses et d’attendre leur réponse, la plupart des outils et frameworks de test de bout en bout vous permettent de vous moquer de tout appel réseau effectué pendant les tests. Dans le monde des tests logiciels, une maquette est un objet qui simule le comportement réel d'une implémentation existante. Dans ce cas, vous pouvez simuler la connexion réseau sans faire la demande réelle. Les simulacres aident à éviter les retards de la demande et vous permettent également de définir sa réponse. Ils sont pratiques pour garantir que vos tests ne sont pas affectés par un service externe que vous ne pouvez pas gérer.

Cependant, les simulacres ne sont pas une solution à toutes les requêtes réseau lentes. Lors de l'exécution de tests de bout en bout, vous devez toujours vous efforcer de tester le comportement réel dans la mesure du possible. Mais étant donné les problèmes potentiels liés à l'utilisation de services tiers qui ne sont pas sous votre contrôle, il est plus pratique de se moquer de ces connexions. De cette façon, vous contrôlez les réponses que vous souhaitez valider dans vos tests et accélérez leur exécution tout en évitant les échecs intermittents.

2. Gérez efficacement la configuration et le démontage des tests

En fonction de votre application, vous devrez peut-être commencer ou terminer avec une table rase avant d'exécuter votre suite de tests de bout en bout. Souvent, cela signifie configurer la base de données de votre application et d’autres magasins de données avec les informations nécessaires pour exécuter tous les tests de manière cohérente et procéder au nettoyage par la suite. De cette façon, vous pouvez vous assurer que vos tests de bout en bout fonctionnent de la même manière chaque fois que votre équipe ou vos systèmes d'intégration continue les exécutent.

Presque tous les outils de test de bout en bout comportent des étapes spéciales pour faciliter la tâche. gérer la configuration initiale de vos tests, ainsi que les actions nécessaires pour nettoyer à la fin de votre test. Ces étapes sont souvent appelées setup et démontage . Les étapes de configuration et de démontage aident à maintenir la cohérence entre les exécutions de tests, mais elles constituent également l'un des principaux problèmes des suites de tests à exécution lente lorsqu'elles sont mal utilisées.

La plupart des frameworks autorisent différentes méthodes pour exécuter une étape de configuration ou de démontage. Vous ne pouvez effectuer vos actions qu'une seule fois au début ou à la fin de l'exécution du test, ou vous pouvez exécuter ces étapes avant et après chaque scénario de test. Vous pouvez utiliser les deux dans votre suite de tests de bout en bout, mais savoir lequel utiliser à un moment donné peut avoir un impact considérable sur les performances. Pour améliorer l'efficacité de l'installation et du démontage et éviter les problèmes de maintenabilité à long terme, vous devrez déterminer les étapes appropriées requises pour vos scénarios de test.

Par exemple, si vous devez insérer des milliers d'enregistrements dans une base de données, vous devez le faire. cela une seule fois à une étape de configuration, car cela prendra probablement un certain temps. De même, si vous avez besoin de réinitialiser certaines données après les tests, envisagez de les placer comme une étape de démontage pour les scénarios qui en ont besoin plutôt qu'après chacun. La définition de la quantité correcte de fonctionnalités de configuration et de démontage demande un peu de planification et de travail. Mais lorsque cela est fait correctement, cela peut considérablement accélérer vos tests.

3. Exécution simultanée de vos tests

La plupart des outils de test de bout en bout exécutent vos tests de manière séquentielle par défaut. Votre outil de test logiciel parcourt chaque scénario de test défini, un par un, en exécutant chaque étape du processus. Une fois que le test se termine avec un résultat réussi ou échoué, il passe au test suivant. Si vous avez des douzaines de tests de bout en bout, chacun prenant un temps considérable, l'ensemble de votre cycle de test peut retarder le travail de votre équipe pendant qu'elle attend les résultats des tests automatisés.

Pour accélérer l'exécution de vos tests , regardez si votre outil de test préféré vous permet d'exécuter vos tests simultanément ou en parallèle. S'il est disponible, ce mode vous permettra d'exécuter plusieurs tests à la fois. Au lieu d'exécuter chaque test un par un, vous pouvez exécuter simultanément deux ou trois scénarios de test, ce qui raccourcit considérablement le temps nécessaire à l'ensemble de la suite de tests.

Gardez à l'esprit que plus vous exécutez de tests simultanément, plus il y a de tests. les ressources dont vous aurez besoin pour les exécuter efficacement. Par exemple, certaines organisations utilisent des serveurs moins puissants à des fins de test, qui peuvent ne pas traiter autant de demandes que vos tests ont besoin. En outre, vous pouvez exécuter vos tests sur un ordinateur de faible puissance qui a du mal à exécuter plus d'une poignée d'instances de votre application sans vous enliser. Vous devrez expérimenter avec ce dont vous disposez pour savoir combien de tests simultanés fonctionnent pour votre situation.

De plus, vous devrez être conscient que si vos tests nécessitent un ordre spécifique pour s'exécuter avec succès, exécutez les tests simultanément ne fonctionnera pas car vous ne pouvez pas contrôler l'ordre de vos tests. En règle générale, vos tests de bout en bout doivent s'exécuter indépendamment les uns des autres sans compter sur différents scénarios pour réussir. Si ce n'est pas une option pour votre suite de tests, vous ne pouvez pas profiter de l'exécution de plus d'un test à la fois.

4. Exécutez vos tests sur du matériel plus puissant

De manière générale, les tests de bout en bout sont des processus lourds qui nécessitent une puissance de calcul considérable. Ces tests jonglent simultanément avec plusieurs opérations: gestion des instances de navigateur, rendu de votre application Web, exécution des étapes de vos scénarios, etc. Si vous êtes développeur, vous pouvez également disposer de l'ensemble de la pile technologique de l'application s'exécutant sur le même système. Si vous avez un ordinateur bas de gamme exécutant vos tests, tout ajustement n'aura pas beaucoup d'effet positif, et il sera toujours douloureux d'attendre que votre suite de tests s'exécute.

Le moyen le plus rapide de résoudre ce problème est pour mettre à niveau les systèmes exécutant votre suite de tests. De nos jours, la plupart des systèmes informatiques et des pièces sont plus puissants pour moins d'argent. Investir dans une mise à niveau peut être un investissement rentable pour les gains de temps dont vous bénéficierez lors de l'exécution de tests de bout en bout ou d'autres tâches de travail. Pour être un testeur d'automatisation efficace, vous devez garder vos boucles de rétroaction aussi courtes que possible, et souvent un meilleur matériel est un excellent moyen d'atteindre ce résultat.

Vous n'êtes peut-être pas en mesure de mettre à niveau vos ordinateurs ou non. avez le désir de remplacer un système fonctionnel juste pour exécuter vos tests plus rapidement. Heureusement, ces jours-ci, vous pouvez tirer parti de la puissance du cloud computing pour décharger ce travail lorsque vous en avez besoin. Les services cloud peuvent fournir un moyen d'exécuter vos tests automatisés sur du matériel puissant à une fraction du prix. Dans certains cas, vous n'aurez à payer que pour le temps de calcul que vous utilisez.

Si le déchargement de vos tests sur un serveur distant permet de réduire au minimum l'utilisation de votre système, cela peut également ne pas vous aider à améliorer vos temps de test. . Étant donné que vous transférez votre travail vers un service externe sur Internet, vous devrez gérer la latence du réseau. En outre, la plupart de ces services cloud exécutent vos tests dans des environnements virtualisés, qui ne sont souvent pas aussi performants que le matériel réel. Mais la flexibilité qu'il offre fait du cloud une excellente alternative pour vos tests de bout en bout.

5. Vérifier les performances de l'application testée

Une erreur courante qui se produit dans les équipes de test qui passent du temps à se concentrer sur la façon d'accélérer une suite de tests est de négliger les performances de l'application testée. Si l'application que vous testez ne se charge pas ou ne s'affiche pas dans un laps de temps suffisant, aucun ajustement ou aucune modification ne vous aidera à accélérer vos tests de bout en bout.

De bonnes performances de votre application Web sont indispensables. dans le monde d'aujourd'hui. Les visiteurs de votre site Web ne resteront pas dans les parages s’il faut plus de quelques secondes pour qu’un élément s’affiche à l’écran. Les sites avec des interactions retardées ou des animations lentes apparaîtront peu fiables et peu fiables aux yeux des clients potentiels. Inévitablement, votre entreprise perdra des affaires et de l’argent à long terme parce qu’elle offre une expérience médiocre.

Malheureusement, la plupart des développeurs de nos jours ne conçoivent pas de logiciels en ayant à l’esprit les performances. Soucieuses de se développer et de livrer le plus rapidement possible, les organisations considèrent souvent la performance comme une réflexion après coup. Ce n’est que lorsque les clients commencent à se plaindre et que l’entreprise ne se convertit pas comme prévu que l’équipe commence à prêter attention aux performances. Mais au moment où ils arrivent à ce stade, il est peut-être trop tard pour réparer les dommages.

Si vous êtes un testeur, vous n'aurez peut-être pas la possibilité de résoudre directement les problèmes de performances. Cependant, vous avez la possibilité de garantir que les performances constituent une partie vitale de votre flux de travail de test en ajoutant des tests de performances à votre pipeline. Attraper des actions lentes et un comportement inefficace pour alerter l'équipe de développement au début du processus de développement aidera à éliminer les problèmes potentiels avant que vos clients ne le fassent. Cela aidera également à la testabilité, car vos tests de bout en bout n'auront pas à lutter avec une application lente.

Résumé

Dans le marché actuel, il est essentiel de garantir que vos applications fonctionnent correctement et se comportent comme vos clients attendre. Pour suivre le rythme attendu de fourniture d'applications de haute qualité, vous pouvez tirer parti de la puissance de l'automatisation des tests et des tests de bout en bout. Les tests de bout en bout passeront par votre application comme le ferait un utilisateur typique, ce qui en fait un excellent choix pour vous assurer que votre site fonctionne comme prévu.

Cependant, ces tests présentent quelques inconvénients, principalement leur lenteur. à exécuter et peut créer des goulots d'étranglement dans le processus de développement. (Pour en savoir plus sur «À quel point est trop lent pour exécuter vos tests?», Cliquez ici .) Vous pouvez minimiser ces délais avec quelques actions, telles que la simulation de requêtes réseau, l'exécution de plusieurs tests en même temps et l'observation comment vous configurez votre suite de tests et chaque scénario. Vous pouvez également réduire le temps de test en utilisant un matériel plus puissant ou en détectant les dégradations de performances de l'application dans le cadre de votre pipeline de tests.

Une suite de tests lente peut devenir coûteuse à long terme et la qualité de votre application en souffrira si vous ne gérez vos temps de test et vos boucles de rétroaction. Cela vaut la peine d’accélérer vos tests et de les conserver ainsi.

Note de la rédaction: Progress Telerik propose un outil de test de bout en bout dans Test Studio . Il est livré avec un essai gratuit de 30 jours afin que vous puissiez découvrir tout ce que Test Studio a à offrir.




Source link