continuous testing devops
Qu'est-ce que le pipeline de tests continus et de tests continus dans DevOps?
J'espère que vous avez tous apprécié le dernier tutoriel sur Déploiement continu dans DevOps .
Nous connaissons l'importance des tests dans toute livraison logicielle et DevOps étant un cycle court de livraisons, il est impossible d'exécuter tous les cas de test conçus à chaque fois manuellement, lorsqu'une seule ligne de code est mise à jour dans l'outil de contrôle de version et que c'est là où continue les tests et le pipeline de tests continus automatisés entrent en ligne de compte dans DevOps.
Lecture suggérée => Tutoriel de formation DevOps à partir de zéro
Avantages de CT:
-
- La qualité et la rapidité sont les énormes avantages du CT.
- Rétroaction plus rapide et plus rapide sur le code.
- Renforce la confiance de l'équipe et les encourage à s'améliorer continuellement.
VIDÉO Partie 3 Bloc 4: Test continu- 14 minutes 39 secondes
Transcription:
Dans ce bloc, nous allons découvrir Tests continus et pipeline de tests continus en détail.
Le test continu est un autre processus important du pipeline de livraison continue avec l'intégration continue, dans un pipeline, il comprend, différentes phases de test dans lequel les tests automatisés sont exécutés avec les portes de qualité automatisées intermédiaires.
Ainsi, les tests continus consistent à exécuter des tests automatisés de manière continue et répétée par rapport à la base de code et aux divers environnements de déploiement.
Principalement, les tests unitaires, l'analyse de code statique, l'analyse du code de sécurité, les tests d'intégration, les tests de charge et de performance font partie des tests continus qui sont exécutés dans un pipeline de tests continus automatisés.
Comme l'intégration continue et le déploiement continu sont appelés CI, CD, les tests continus sont plus souvent appelés CT.
Si vous voyez ce diagramme, qui est un pipeline de livraison continue, ce pipeline comprend deux pipelines, l'un est un pipeline de construction qui est un pipeline CI ou un pipeline d'intégration continue, qui consiste en un déclencheur de construction automatisé, une compilation, une construction et un déploiement.
L'autre est un pipeline de test, qui est un pipeline de test continu
Voyons maintenant plus sur les tests continus.
Nous connaissons l'importance de tester, tester chaque ligne de code… .. tester à chaque fois… et tester à différentes étapes et il est presque impossible d'exécuter manuellement tous les tests conçus à chaque fois lorsqu'une ligne de code est mise à jour dans le contrôle de version.
C’est là que les tests continus entrent en jeu.
Ainsi, à moins que le code qui entre dans le pipeline intégré continu automatisé, ne soit testé de manière approfondie et garantisse la qualité requise, il ne sert à rien de diffuser le logiciel aux clients. Je veux dire que la qualité ne peut être garantie que si le code est soigneusement testé.
Ainsi, les tests continus, tels que définis précédemment, consistent à exécuter différents types de tests, en continu sur la base de code et sur différents environnements sur lesquels il est déployé, comme prédéfini et conçu dans le pipeline de livraison continue.
Comme vous le voyez sur l'image, les tests unitaires se produisent sur le serveur CI lui-même, qui teste chaque unité du système de manière isolée.
Les tests d'intégration se produisent sur l'environnement d'intégration qui vérifie essentiellement les composants intégrés ensemble. Tests système dans l'environnement de test système où le système BIG avec tous les composants et interfaces intégrés sont testés via des scénarios au niveau du système dans un environnement de test système, etc.
Et la profondeur des tests progresse souvent à mesure que la simulation de l'environnement se rapproche de la production.
Les tests continus deviennent progressivement plus difficiles et plus longs avec la progression vers l'environnement de production, car nous devons ajouter lentement un certain nombre de tests et des tests plus compliqués à mesure que le code mûrit et que la complexité de l'environnement progresse.
Ce n'est pas que les mêmes cas de test seraient exécutés tout au long, les cas de test doivent être mis à jour à chaque fois à différentes phases et les scripts automatisés sont mis à jour, à mesure que le code devient plus mature, progresse vers un niveau supérieur d'environnement où les configurations et l'infrastructure sont également avance, jusqu'à ce qu'il entre en production.
Ainsi, même le temps nécessaire pour exécuter les tests augmente au fur et à mesure que les tests progressent vers le point de sortie, comme les tests unitaires peuvent prendre beaucoup moins de temps à exécuter tandis que certains tests d'intégration ou certains tests système ou tests de charge peuvent prendre quelques longues heures à s'exécuter ou peuvent prendre quelques jours à courir.
Ici, les tests continus consistent principalement à exécuter automatiquement les cas de test automatisés avec un déclencheur. Mais comme nous l'avons défini précédemment, la livraison continue implique également certains tests manuels et portails, dans lesquels certains tests sont effectués manuellement, avant de passer à la production.
Ces portes de qualité intermédiaire à chaque étape des tests et augmentent la confiance dans le code.
Ainsi, le pipeline de tests continus en tant que tel comprend des tests unitaires ainsi que des vérifications de sécurité automatisées préliminaires. Passe ensuite à un niveau d'intégration de tests, où des tests d'intégration automatisés sont exécutés, puis à un niveau système où les scénarios au niveau du système sont automatisés et exécutés.
Ici, même certains scénarios de test de performance sont également réalisés.
Puis passe au `` test d'acceptation '' qui comprend essentiellement les cas de test d'acceptation automatisés du site, puis enfin au `` test d'acceptation de l'utilisateur '' qui pourrait être une exécution manuelle et comprend la participation de l'utilisateur final pour effectuer les tests et ce sera une sorte d'approbation finale du produit ou d'une fonctionnalité, où la porte manuelle est invoquée et finalement déployée sur le site de production.
Donc, fondamentalement, au fur et à mesure que les tests progressent, la complexité des tests et de l'environnement de test augmente et atteint l'environnement qui est plus proche de la production comme la simulation.
Je n'ai pas besoin de mentionner spécifiquement que toutes ces étapes de test incluent des tests de vérification de construction, des tests de santé mentale, des tests de fumée et des tests de régression, encore une fois, comme je l'ai dit, cela dépend de ce que nous concevons dans le pipeline de tests et de livraison continus.
Il s'agit du pipeline de tests continus typique, il peut être conçu par l'équipe en fonction du type de produit et des différents niveaux de test et types de test que le produit exige.
Les tests continus nécessitent l'intégration d'un cadre d'automatisation avec le contrôle de version et l'outil CI et les divers outils automatisés pour effectuer les tests fonctionnels et non fonctionnels à travers différentes phases de test, comme:
- Sonar pour l'analyse de code statique,
- Fortifier pour une analyse de code sécurisée,
- Sélénium pour les tests fonctionnels,
- Load Runner pour les tests de charge, etc.,
Microsoft TFS, Jenkins, chef, puppet sont quelques outils disponibles sur le marché pour concevoir le pipeline CI-CD.
Mais le fait est que ces outils peuvent ne pas prendre en charge l'automatisation complète de bout en bout, en fonction de l'outil de contrôle de version utilisé, si peu d'organisations peuvent préférer développer leurs propres cadres d'automatisation, ce qui permet l'automatisation de bout en bout du pipeline de livraison à partir du code. s'engager à la livraison du code.
Ainsi, les tests continus étant une partie très cruciale des tests, garantissent la qualité du produit ou de la version et il faut être très prudent lors de la sélection d'un outil, d'un cadre, etc., qui détermine principalement la qualité et la rapidité de livraison.
La mise en place d'un pipeline de test continu approprié prend donc un peu plus de temps dans le pipeline de livraison continue. Pas seulement sur la partie outil et cadre, mais aussi sur la partie cas de test. Les tests continus incluent également la définition du pipeline de déploiement à l'intérieur.
Parce que CT nécessite le déploiement automatisé de la construction sur divers environnements à différentes phases, ce qui nécessite l'automatisation du déploiement et la configuration des environnements via des scripts automatisés.
meilleur site pour regarder l'anime sur
Ces scripts automatisés qui incluent la configuration de l'infrastructure et des configurations d'environnement sous forme de code sont archivés dans l'outil de contrôle de version et le pipeline de livraison le récupère à partir de l'outil de contrôle de version pour effectuer le déploiement. C'est ce qu'on appelle le pipeline de déploiement.
Voyons maintenant les avantages de la tomodensitométrie,
Atteindre la qualité et la rapidité est le plus grand avantage des tests continus.
Contrairement aux précédents où les tests ne se produisaient qu'à la fin, le test tout au long est le concept de test continu et donc le test continu dans un pipeline de livraison, permet à l'équipe d'introduire des portes de qualité n'importe où et n'importe quel nombre de portes de qualité, ils veulent, dans l'ordre pour atteindre le degré de qualité dont ils ont besoin.
Ainsi, le cas échéant, le code échoue pour le test à un point ou à une porte particulier d'un pipeline, l'équipe peut revenir en arrière et échouer automatiquement tout le déploiement jusqu'à ce point.
Cela donne une indication claire à la fois à l'équipe de développement et à l'équipe des opérations qu'il manque quelque chose et que l'équipe peut travailler pour y remédier. C'est donc l'avantage et la flexibilité du pipeline de tests continus.
Ainsi, l'introduction de barrières de qualité à différentes phases de test régit mieux la qualité du code dans le pipeline.
Plus le nombre de portes franchies par le code sera élevé, plus l’équipe aura confiance dans le code pour parvenir à la production à un niveau de qualité supérieur.
Ainsi, les tests continus renforcent la confiance de l'équipe et les encouragent à s'améliorer continuellement.
Dans l'ensemble, si l'équipe ne néglige vraiment aucun des échecs de test lors des phases de test ou des portes de qualité en cours de développement, des tests continus seront certainement un bonus pour atteindre des objectifs de haute qualité.
Donc, pour conclure sur les tests continus, depuis les tests unitaires exécutés pendant la phase préliminaire jusqu'aux tests d'acceptation, les tests de performance et même certains tests manuels qui vont être exécutés sont TRÈS TRÈS critiques pour définir les tests continus dans le pipeline DevOps.
Ceci termine notre discussion sur les sujets de la partie 3 de l'intégration continue, de la livraison continue et des tests continus.
Dans notre prochain tutoriel, nous en discuterons plus sur Gestion de la configuration, gestion des versions et surveillance des performances des applications.
Tutoriel PREV | Tutoriel SUIVANT
lecture recommandée
- Déploiement continu dans DevOps
- Livraison continue dans DevOps
- Top 10 des outils de test continu pour les tests DevOps [Liste 2021]
- Meilleurs outils de test de logiciels 2021 [Outils d'automatisation des tests QA]
- Tutoriel de test DevOps: quel sera l'impact de DevOps sur les tests d'assurance qualité?
- Récapitulatif des didacticiels vidéo DevOps
- Intégration continue dans DevOps
- Téléchargement de l'e-book 'Testing Primer'