DéveloppeurWeb.Com
    DéveloppeurWeb.Com
    • Agile Zone
    • AI Zone
    • Cloud Zone
    • Database Zone
    • DevOps Zone
    • Integration Zone
    • Web Dev Zone
    DéveloppeurWeb.Com
    Home»Uncategorized»Directives de conception de test pour votre pipeline CI/CD
    Uncategorized

    Directives de conception de test pour votre pipeline CI/CD

    mars 6, 2023
    Directives de conception de test pour votre pipeline CI/CD
    Share
    Facebook Twitter Pinterest Reddit WhatsApp Email

    Lors de la livraison plus rapide de logiciels sur le marché, il est essentiel d’intégrer des tests automatisés dans votre pipeline de livraison continue pour vérifier que le logiciel respecte les normes attendues par votre client. Votre pipeline de livraison continue peut également consister en de nombreuses étapes qui doivent déclencher ces tests automatisés pour vérifier les seuils de qualité définis avant que le logiciel ne puisse passer à l’étape suivante et éventuellement en production (voir Figure 1). Selon l’étape de votre pipeline, la complexité de vos tests automatisés peut varier de unité, l’intégration, de bout en boutet performance essais. Lorsque l’on considère la quantité et la complexité des tests, ainsi que la possibilité d’avoir plusieurs étapes dans votre pipeline, il peut y avoir de nombreux défis lors de l’intégration, de l’exécution et de l’évaluation de la qualité de votre logiciel avant sa sortie.

    Cet article décrira certains de ces défis. Je fournirai également quelques lignes directrices sur les meilleures pratiques sur la façon dont vos tests automatisés pourraient suivre un contrat pour aider à accélérer la livraison de votre logiciel sur le marché tout en maintenant la qualité. Suivre un contrat permet d’intégrer vos tests en temps opportun et de manière plus efficace. Cela aide également lorsque d’autres membres de votre organisation peuvent avoir besoin de résoudre des problèmes dans le pipeline.

    Efforcez-vous de Exécutez n’importe quel test, n’importe où, n’importe quand, par n’importe qui !

    Figure 1 : Exemple de pipeline de livraison continue de logiciels

    Défis

    Plusieurs défis peuvent survenir lors de l’intégration de vos tests dans votre pipeline de livraison continue, ce qui pourrait retarder votre organisation dans la mise sur le marché de logiciels de manière fiable :

    • Quantité de technologies

      Les tests automatisés peuvent être développés dans de nombreuses technologies. Les exemples comprennent pytest, Junité, Shellénium, Cconcombre, et plus. Ces technologies peuvent avoir des exigences d’installation concurrentes telles que les niveaux de système d’exploitation, les versions de navigateur, les bibliothèques tierces, etc. De plus, l’infrastructure qui héberge votre pipeline peut ne pas disposer de suffisamment de ressources dédiées ou d’élasticité pour prendre en charge ces variétés de technologies. Il serait efficace d’exécuter des tests dans n’importe quel environnement sans avoir à se soucier des exigences concurrentes.

    • Tester les dépendances d’exécution

      Les tests peuvent également dépendre d’une variété d’entrées pendant l’exécution qui peuvent inclure des fichiers texte, des images et/ou des tables de base de données, pour n’en nommer que quelques-unes. Pouvoir accéder à ces éléments d’entrée peut être difficile car ces entrées peuvent être conservées dans un emplacement externe que votre test doit récupérer pendant l’exécution. Ces référentiels externes peuvent être hors ligne pendant l’exécution et provoquer des échecs de test imprévus.

    • Différents paramètres d’entrée

      Lors de l’intégration et du partage de vos tests dans le processus CI/CD de votre organisation, il est courant que vos tests aient des paramètres d’entrée à transmettre à votre suite de tests pour exécuter les tests avec des valeurs différentes. Par exemple, vos tests peuvent avoir un paramètre d’entrée qui indique à votre suite de tests quel environnement cibler lors de l’exécution des tests automatisés. Un auteur de test peut nommer ce paramètre d’entrée –base-URL alors qu’un autre auteur de test de votre organisation peut nommer ce paramètre d’entrée -cible. Il serait avantageux d’avoir un contact de signature commun, avec les mêmes conventions de dénomination des paramètres lors de l’intégration dans le processus CI/CD de votre organisation.

    • Différents formats de sortie

      La variété des technologies utilisées pour vos tests peut produire différents formats de sortie par défaut. Par exemple, votre pytest suite de tests peut générer une sortie en texte brut alors que votre Sélénium la suite de tests peut produire une sortie HTML. La standardisation sur un format de sortie commun aidera à collecter, agréger, rapporter et analyser les résultats de l’exécution de tous les tests intégrés dans le processus CI/CD de votre entreprise.

    • Dépannage des difficultés

      Si un test échoue dans votre pipeline CI/CD, cela peut retarder la commercialisation de votre logiciel et il sera donc nécessaire de déboguer l’échec du test et de le corriger rapidement. L’activation de la journalisation informative pour chaque phase de votre test sera bénéfique lors du triage de l’échec par d’autres membres de votre organisation, tels que votre équipe DevOps.

    Des lignes directrices

    • Conteneurisez vos tests

      Vous avez déjà entendu parler des conteneurs et de leurs beaucoup avantages. Le avantage de conteneuriser vos tests est que vous avez un environnement isolé avec tous vos technologies requises installées dans le conteneur. De plus, avoir vos tests conteneurisés serait permettre au récipient de être courir dans le nuage, sur n’importe quel machine, ou en tout ccontinu jeintégration (CI) car le conteneur est conçu pour être portable.

    • Avoir une entrée commune Contracter

      Faire en sorte que votre conteneur de test suive un contrat commun pour la saisie paramètres aide à la portabilité. Cela réduit également la friction pour exécuter ce test en fournissant clarté à la consommateur sur ce que le test exige. Lorsque les tests sont conteneurisés, les paramètres d’entrée doivent utiliser des variables d’environnement. Par exemple, le commande docker en dessous de nouses le -e option pour définir variables d’environnement à mettre à la disposition du conteneur de test pendant l’exécution :

      course de docker
      -eBASE_URL=http://machine.com:80
      -eTEST_USER=utilisateur d’essai
      -eTEST_PO=xxxxxxxxxxxx
      -e
      TEST_LEVEL=fumer

      Aussi, il peut y avoir une grande quantité de conteneurs de test intégrés dans votre pipeline qui seront exécutés à différentes étapes. Avoir une convention de dénomination standard pour vos paramètres d’entrée serait bénéfique lorsque d’autres personnes de votre organisation doivent exécuter votre conteneur de test pour débogage ou exploratoire fins. Par exemple, si les tests doivent définir un paramètre d’entrée qui définit l’utilisateur à utiliser dans les tests, ont un convention de dénomination commune que tous les auteurs de test suiventcomme TEST_USER.

    • Avoir un contrat de sortie commun

      Comme mentionné plus tôt, le la variété de technologies utilisées par vos tests peut produire différents formats de sortie par défaut. Suite à un contrat de standardiser la sortie de test aide quand collecteagrégeant et analysant les résultats des tests sur tous les conteneurs de test pour see si le global les résultats se rencontrent ton organisation‘s directives de livraison de logiciels. Par exemple, il y a test contenants utilisant pytest, Junit, Séléniumet Concombre. Si la contrat censé produire une production dans xUnit formater, alors tous le test résultats générés par le fonctionnement de ces conteneurs pourrait être collecté et rapporté dans le même manière.

    • Fournir des informations d’utilisation/d’aide

      Lors de l’intégration de votre conteneur de test dans votre pipelinevous partagez vos tests avec d’autres membres de votre organisationcomme le DevOps et équipes d’ingénieurs qui supportent le pipelinee. Oautres dans votre organisation mclair ont besoin d’utiliser votre conteneur de test comme exemple car ils conception leur conteneur d’essai.

      Pour aider les autres dans l’exécution de votre test conteneur, ayant un option courante pour afficher l’aide et les informations d’utilisation au consommateur serait bénéfique. Le texte d’aide pourrait inclure :

    • Une description de ce que votre conteneur de test tente de vérifier

    • Descriptions des paramètres d’entrée disponibles

    • Descriptions du format de sortie

    • Un ou deux exemples d’exécutions en ligne de commande de votre conteneur de test

    • Journalisation informative

      Captures de journalisation détails sur quoi a eu lieu pendant l’exécution des tests à ce moment-là. Pour aider à une correction plus rapide lorsqu’il y a un échec, les directives de journalisation suivantes sont bénéfiques:

    • Mettre en œuvre un format d’enregistrement standard ce serait facile à analyser par outils de l’industrie pour l’observabilité

    • Utiliser des messages descriptifs sur les étapes et l’état des tests à ce moment précis

    • Assurez-vous qu’il y a est AUCUNE donnée sensibletels que des mots de passe ou des clés, dans les fichiers journaux générés qui pourraient violer votre de l’organisation politiques de sécurité

    • Enregistrer API (interfaces de programme d’application) demandests et réponses pour aider dans le suivi du flux de travail

    • Dépendances de test de package à l’intérieur du conteneur

      Comme mentionné précédemment, les tests peuvent avoir divers dépendances d’exécution tels que les données d’entrée, les tables de base de données et les entrées binaires pour n’en nommer que quelques-uns. Lorsque ces dépendances sont contenu en dehors du conteneur de test, ils peuvent ne pas être disponibles lors de l’exécution. Pour intégrer plus efficacement votre conteneur de test dans votre pipeline, en créant vos dépendances d’entrée et contenu directement à l’intérieur de votre conteneur serait veiller à ce que ils sont toujours disponibles. Cependant, tvoici des cas d’utilisation où il peut ne pas être logique de créer vos dépendances directement à l’intérieur de votre conteneur de test. Par exemple, vous avez besoin d’utiliser un ensemble de données d’entrée volumineux d’une taille de gigaoctets, dans votre essai. Dans ce cas, il peut être plus logique travailler avec votre équipe DevOps pour que cet ensemble de données d’entrée soit disponible sur un système de fichiers monté mis à disposition dans votre conteneur.

    • Ressources de configuration et de démontage

      Les tests automatisés peuvent nécessiter la création de ressources pendant le temps d’exécution. Par exemple, il pourrait être nécessaire de créer plusieurs Compte ressources dans ton partagé déploiement en cours de test et effectuer plusieurs opérations sur ces Compte ressources. S’il y a d’autres tests s’exécutant en parallèle sur le même déploiement qui pourrait aussi ont l’obligation d’effectuer certaines opérations connexes sur le même Compte Ressource, alors il pourrait y avoir être quelques erreurs inattendues. Une stratégie de conception de tests qui serait créé un Compte ressource avec une convention de nommage unique, effectuez l’opération, affirmez que les choses ont été correctement terminées, puis remove le Compte ressource à la fin du test réduirait le risque d’échec. Cette stratégie garantirait qu’il existe un état connu au début et à la fin du test.

    • Ont Lignes directrices sur la révision du code

      La revue de code est le processus d’évaluation du nouveau code par quelqu’un d’autre de votre équipe ou organisation avant il est fusionné avec la branche principale et emballé pour être consommé par d’autres. En plus de trouver des bugs beaucoup plus tôt, tVoici aussi avantages d’avoir d’autres ingénieurs revoir votre tester le code avant qu’il ne soit fusionné:

    • Vérifiery

    Share. Facebook Twitter Pinterest LinkedIn WhatsApp Reddit Email
    Add A Comment

    Leave A Reply Cancel Reply

    Catégories

    • Politique de cookies
    • Politique de confidentialité
    • CONTACT
    • Politique du DMCA
    • CONDITIONS D’UTILISATION
    • Avertissement
    © 2023 DéveloppeurWeb.Com.

    Type above and press Enter to search. Press Esc to cancel.