Fermer

juin 22, 2021

5 meilleures pratiques de développement pour vous aider à créer de meilleurs tests


L'automatisation des tests est difficile. Vous pouvez le rendre gérable en utilisant ces conseils, techniques et outils pour vous aider à accélérer le processus.

Les progrès de notre industrie en matière de méthodologies agiles, de DevOps et même d'ingénierie cloud ont apporté une capacité clé sur laquelle se concentrer : la responsabilité partagée.[19659003]Si vous êtes développeur depuis un certain temps, vous vous souvenez peut-être d'avoir signalé des problèmes de fonctionnement à une équipe d'opérations, des tests à une équipe d'assurance qualité, etc. De nos jours, le développement d'applications ne se limite pas au développement d'applications. Lorsque les développeurs sont investis dans l'ensemble du cycle de vie du processus de candidature, il en résulte une équipe plus investie et plus productive.

Cela ne va pas sans inconvénients, bien sûr. Bien qu'avoir des spécialistes dans ces domaines aura toujours de la valeur – et voir ces spécialistes dans l'équipe de développement peut être extrêmement utile – les développeurs peuvent se sentir dépassés par tout ce qu'ils doivent entreprendre. Je vois souvent cela lorsqu'il s'agit de tests automatisés. En tant que développeurs, nous savons que nous devons tester notre code, mais jusqu'où devons-nous aller ? Après un certain point, l'élaboration de tests automatisés n'est-elle pas la responsabilité de l'assurance qualité ?

La réponse : c'est la responsabilité de tous et non pas quelque chose que vous devriez jeter par-dessus le mur à votre service d'assurance qualité (si vous avez la chance d'en avoir un ). Cet article tente de réduire le bruit et de présenter les meilleures pratiques qui vous aideront à créer de meilleurs tests automatisés.

Qu'est-ce que les tests automatisés ?

Quand je parle de tests automatisés, je fais référence à un processus qui utilise des outils pour exécuter des tests prédéfinis basés sur des événements prédéterminés. Il ne s'agit pas d'un article axé sur la différenciation de concepts tels que les tests unitaires ou les tests d'intégration. S'ils sont planifiés ou déclenchés en fonction d'événements (comme l'enregistrement du code dans la branche principale), il s'agit de tests automatisés. Grâce à un pipeline de tests d'automatisation des tests, vous pouvez expédier en toute confiance des versions à faible risque et expédier de meilleurs produits avec une qualité supérieure. Bien sûr, les tests automatisés ne sont pas une baguette magique, mais effectués de manière appropriée, ils peuvent donner à votre équipe l'assurance que vous livrez un produit de qualité.

Décidez quels tests automatiser

Il n'est pas pratique de dire cela vous souhaitez automatiser tous vos cas de test. Dans un monde parfait, voudriez-vous? Sûr. Ce n'est pas un monde parfait : vous avez beaucoup à faire et vous ne pouvez pas vous attendre à tout tester. En outre, bon nombre de vos tests nécessitent un jugement et une intervention humains.

À quelle fréquence devez-vous répéter votre test ? Est-ce quelque chose qui est rarement rencontré et fait seulement quelques fois ? Un test manuel devrait faire l'affaire. Cependant, si les tests doivent être exécutés fréquemment, c'est un bon candidat pour un test automatisé.

Voici quelques scénarios supplémentaires pour vous aider à identifier les bons candidats pour les tests automatisés :

  • Lors d'un test manuel, il est difficile de avoir raison ? Les gens passent-ils beaucoup de temps à configurer les conditions pour tester manuellement ?
  • Est-ce que cela provoque une erreur humaine ?
  • Les tests doivent-ils être intégrés dans plusieurs versions ?
  • Avez-vous besoin d'ensembles de données volumineux pour effectuer les mêmes actions sur vos tests ?
  • Le test couvre-t-il les chemins de code fréquents, à haut risque et à chaud dans votre application ?

Testez tôt, souvent et fréquemment

Votre stratégie de test doit être une considération précoce et non une réflexion après coup. Si vous êtes sur un cycle de sprint de trois semaines et que vous vous précipitez à plusieurs reprises pour écrire, corriger ou mettre à jour vos tests la troisième semaine, vous vous dirigez vers des ennuis. Lorsque cela se produit, les équipes se précipitent souvent pour que les tests fonctionnent. Vous verrez des tests remplis de conditions de test inadéquates et de solutions de contournement désordonnées.

Lorsque vous faites des tests automatisés une considération importante, vous pouvez exécuter des tests fréquemment et détecter les problèmes au fur et à mesure qu'ils surviennent. . À long terme, cela vous fera gagner beaucoup de temps. De plus, vous préféreriez de loin résoudre les problèmes plus tôt que de demander à un client en colère de signaler un problème de production, car votre équipe n'a pas accordé aux étapes de test automatisées l'attention qu'elles méritaient.[19659023]Évaluer de manière cohérente des résultats valides et précis

À cette fin, votre équipe doit toujours être à l'aise de savoir que vos tests sont cohérents, précis et reproductibles. L'équipe enregistre-t-elle le code sans s'assurer que les tests précédents sont toujours exacts ? Dire que tous les tests réussissent n'est pas la même chose que de dire que les tests sont exacts. En ce qui concerne les tests unitaires, dans de nombreux systèmes CI/CD automatisés, vous pouvez intégrer des vérifications de build pour vous assurer que la couverture du code ne diminue pas systématiquement chaque fois que de nouvelles fonctionnalités entrent dans la base de code.

Si les tests sont défectueux ou instables, prenez le temps de comprendre pourquoi et non redémarrer manuellement à plusieurs reprises car parfois cela fonctionne et parfois non. Si nécessaire, supprimez ces tests jusqu'à ce que vous puissiez résoudre ces problèmes.

Assurer la qualité des rapports sur les résultats des tests

À quoi sert une suite de tests automatisés si vous ne disposez pas d'un moyen simple de détecter, découvrir et résoudre les problèmes ? Lorsqu'un test échoue, les équipes de développement doivent être alertées immédiatement. Bien que l'équipe ne sache peut-être pas comment y remédier immédiatement, elle doit savoir où chercher, grâce à des tests et des messages d'erreur clairement nommés, des outils robustes et une infrastructure de reporting solide. Les développeurs doivent ensuite passer leur temps à résoudre les problèmes et ne pas tourner en rond pour comprendre quel est le problème et où il se situe.

L'automatisation des tests peut devenir plus gérable avec les bons outils. J'espère donc que vous vous asseyez pour cela : je recommande Telerik Test Studio. Avec Telerik Test Studio, tout le monde peut tirer parti de votre empreinte de test : que ce soit les développeurs, le contrôle qualité ou même vos patrons aux cheveux pointus.

Les développeurs peuvent utiliser Test Studio Dev Edition pour automatiser vos applications .NET complexes directement à partir de Visual Studio. Les ingénieurs QA peuvent utiliser Test Studio Standalone pour faciliter le développement de tests d'interface utilisateur fonctionnels. Enfin, lorsque vous avez terminé de dire à vos responsables : « Je ne me relâche pas, je compile », vous pouvez les diriger vers le tableau de bord exécutif en ligne pour surveiller les résultats des tests et créer des rapports.




Source link