Un bref guide des tests dans DevOps
An INFJ personality wielding brevity in speech and writing.
Qu’est-ce que les tests dans DevOps ?
DevOps – comme le terme l’indique, est la pratique qui encourage le partenariat entre les équipes de développement et d’exploitation informatique pour répondre aux aspirations d’intégration et de déploiement continus (CI/CD) et de livraison de logiciels modernes. Cependant, cette union de deux équipes n’est qu’à moitié faite ; Pour pouvoir tirer pleinement parti de DevOps, les tests doivent également être intégrés dans la chaîne de livraison continue.
Alors, qu’entendons-nous par tester dans DevOps ? Fondamentalement, les tests dans DevOps visent à trouver un juste équilibre dans le chevauchement des objectifs, des cycles de rétroaction, des compétences entre les équipes de développement, d’assurance qualité et d’exploitation. Il favorise la collaboration des trois équipes tout en automatisant le processus de livraison de logiciels et les changements d’infrastructure.
Cet article vous guide à travers :
Comment les tests seront-ils effectués dans DevOps ?
Les tests dans DevOps signifient que les tests ne se dérouleront plus en silo. Cela implique que les tests se dérouleront en tandem avec le développement, favorisant un cycle de rétroaction plus rapide afin que chaque équipe puisse rester au courant de l’impact de son travail sur le reste du cycle de livraison.
En conséquence, nous constatons que l’accent est mis sur la qualité des produits tout au long du cycle DevOps.
Dan Ashby , co-fondateur de Software Testing Clinic, illustre les tests dans DevOps comme suit,
Après avoir intégré la méthodologie agile dans les équipes avec un manifeste agile, les tests dans l’équipe DevOps ont formulé des principes directeurs pour tester les logiciels de manière approfondie et à grande échelle. Ceux-ci sont devenus connus sous le nom de manifeste « DevTestOps » .
Tests continus sur tests à la fin
Adopter toutes les activités de test plutôt que de tout automatiser
Tester ce qui donne de la valeur, en fonction de l’utilisation du client, plutôt que de tout tester
Une approche d’équipe complète pour tester sur tester dans des départements de test cloisonnés
Couverture du produit par rapport à la couverture du code
L’utilisation des pratiques DevTestOps ci-dessus garantit aux équipes que les déploiements réguliers se déroulent sans trop d’interruptions en offrant une plus grande visibilité sur l’état du développement logiciel et les aide à atteindre la qualité de produit souhaitée.
Nous verrons comment nous pouvons intégrer les tests dans DevOps, planifier une stratégie de test DevOps fine, les meilleures pratiques et les outils dans les sections ci-dessous.
Sais-tu?
|
Tests automatisés – le moteur de DevOps
Les résultats de la recherche DZone sur l’automatisation des tests ont révélé que,
|
Raisons pour lesquelles DevOps a besoin de tests automatisés :
- Presque impossible de tester en continu le code et les correctifs de code au rythme auquel il est déployé
- Suivi des équipes QA dans la chaîne de livraison continue de logiciels
- Des pratiques de test incohérentes et la mise en place d’équipes d’AQ ponctuelles affaiblissent la qualité du logiciel en cours de construction
- Cycles de rétroaction plus longs et banals forçant le développement et l’assurance qualité à pousser le code jusqu’à la production pour atteindre la vitesse
L’intégration de tests automatisés est le moyen le plus sûr d’intégrer fructueusement l’ assurance qualité dans le flux de travail DevOps . Sans tests automatisés optimaux en place, notre poursuite de la rationalisation des processus à travers le pipeline CI/CD pour un DevOps efficace sera un rêve lointain. En ce sens, les tests automatisés agissent comme un moteur de DevOps.
Mise en place de l’automatisation des tests
Comme nous en avons discuté précédemment, les tests automatisés sont un facteur crucial derrière tout ce phénomène DevTestOps. L’exécution manuelle de gros volumes de suites de régression nocturne chaque nuit ou le week-end va tout simplement à l’encontre de l’ objectif de DevOps .
Plongeons-nous dans la mise en place de l’automatisation des tests.
Les compétences en automatisation des tests sont difficiles à acquérir car elles sont techniquement compliquées. DevOps restera un objectif lointain pour les entreprises qui n’en sont pas encore là ou qui en sont aux premières étapes de l’adoption de l’automatisation des tests dans leur chaîne de livraison.
Pour réussir Implémentation DevTestOps, un ingénieur en automatisation des tests doit avoir une bonne compréhension des fonctionnalités du logiciel, des détails techniques inhérents, du choix des outils d’automatisation et CI/CD, du langage de script, de la conception du cadre d’automatisation, des besoins en matière de rapports, de la capacité à configurer les besoins et les compétences en matière de tests continus développer des scripts de test en parallèle avec le développement.
En imaginant que vous êtes en train de déterminer l’ automatisation des tests pour votre entreprise, il y a 4 éléments d’action que vous pouvez envisager :
- Ayez un champion en interne ou de la société de conseil externe, qui comprend les objectifs et a un plan pour les atteindre.
- Choisissez quelqu’un qui a de l’expérience dans l’automatisation des tests, mais une plus grande expertise dans le développement de logiciels en général.
- Champion averti en ingénierie – ces champions ont une vision claire, rassemblent des expériences provenant de plusieurs sources et appliquent la bonne approche technique, les processus et les directives qui amélioreront considérablement la qualité.
- Un juste équilibre entre les tests manuels et automatisés peut en fait aider à obtenir de meilleurs rendements.
Dans la culture DevTestOps typique, toutes les équipes travailleront ensemble pour rationaliser les processus qui favorisent la qualité intégrée des produits conformément à la culture.
Regardez la vidéo sur “L’automatisation des tests : une énigme qui continue de hanter” par notre président, Vasudevan Swaminathan.
Démarrer l’assurance qualité avec DevOps
Si vous essayez de démarrer l’assurance qualité avec DevOps dans votre organisation mais que vous ne savez pas comment, vous pouvez démarrer en mesurant ces 3 métriques
Confinement des défauts | Enregistrez un maximum de 95 % de défauts dans QA, UAT et Production |
---|---|
Productivité de l’équipe | Maintenez les retouches du backlog à un maximum de 10 % seulement |
Délai de mise en œuvre | Visez à pousser le code en production tous les jours |
Toutes ces activités sont mises en place pour une intégration continue, des tests continus, des processus de rétroaction continus, aidant les équipes à créer de meilleurs logiciels plus rapidement et rendant le voyage de DevOps intéressant.
Stratégie de test DevOps
La génération d’une stratégie de test DevOps optimale nécessite une évaluation détaillée du logiciel et un mélange d’autres éléments pour planifier une structure de test rationalisée.
Découvrons les domaines prioritaires pour une stratégie de test DevOps réussie .
Automatisez le comportement des utilisateurs, pas les tests
Il faut viser à prévenir les défauts survenant dans la production à l’aide de tests automatisés. Une façon d’y parvenir et de contenir les défauts plus tôt consiste à déployer des cadres d’automatisation et à les superposer à un développement piloté par les tests (TDD)/développement piloté par le comportement (BDD), qui se concentre sur l’automatisation du comportement des utilisateurs et pas seulement sur les tests. Suivre cette approche garantit une plus grande testabilité, une couverture maximale du code et une collaboration active entre les équipes.
Exemple d’automatisation du comportement des utilisateurs à l’aide de Gherkin
Optimiser l’environnement de test
En plus d’écrire les bons scripts de test d’automatisation, nous devons prévoir d’optimiser un environnement de test qui englobera les conditions de l’utilisateur, les données de test pertinentes et la capacité de faire face à des heures de pointe variables, aux exigences du produit, etc. pour s’adapter à l’ensemble du DevOps. stratégie.
Cela aidera à atténuer les problèmes de qualité beaucoup plus tôt dans le processus.
Analyser les données de test critiques
Il est évident qu’avec l’exécution de grands volumes de suites de tests, la quantité de données de test générées sera également énorme. Il devient considérablement nécessaire de vérifier et d’analyser ces données de test pour obtenir une visibilité sur l’état de qualité du logiciel, découvrir la santé du pipeline CI et identifier les anomalies de test qui aident à stabiliser les tests continus aidant les cycles de publication du logiciel.
Mesurer en continu
Pour comprendre où nous en sommes dans la maturité DevOps, nous devons mesurer en permanence les KPI qui contribuent à la qualité du logiciel,
Quelques-uns d’entre eux comprennent,
- Identifiez les défauts par phase, étape, cause, fonctionnalité et tendance
- Pourcentage de défauts échappés à la production
- Identifier les défauts des tests manuels par rapport aux tests automatisés
- Tracer la tendance des tests floconneux
Bonnes pratiques de test DevOps
Voici quelques bonnes pratiques générales pour mettre en œuvre un processus de test efficace dans la structure DevOps
Automatisation intelligente
Nous avons déjà abordé en détail l’importance de l’automatisation dans DevOps ; cependant, cela ne signifie pas que les tests automatisés peuvent à eux seuls aider à chaque fois. La clé d’une automatisation réussie consiste à trouver d’abord des tests automatisables.
Peu de tests comme l’utilisabilité, les tests post-déploiement sont mieux réalisés lorsqu’ils sont testés manuellement.
Itération agile
L’accent mis sur des itérations rapides et rapides au sein de chaque équipe conduit à notre objectif de livraison continue. Une séquence de développements plus petits et agiles permet aux équipes de tester en profondeur et de pousser pour des déploiements plus rapides. Ces itérations donnent un aperçu des modifications apportées et la possibilité de garantir que les déploiements se produisent plus souvent et plus tôt.
Métriques et documentation DevOps
Comme son nom l’indique, DevOps est une question de collaboration entre les équipes. Au début, il doit y avoir des mesures et une documentation claires et définies. Il fournit des informations sur les processus et les changements qui ont lieu dans le système.
De plus, cela renforce la transparence, et sans une documentation appropriée en place, il est très difficile d’examiner et de comprendre ce qui a fonctionné et ce qui n’a pas fonctionné dans votre structure DevOps . En outre, il constitue une base pour permettre la prise de décision pour l’avenir.
Outils de test DevOps
Étant donné que DevOps est construit au-dessus de l’agile axé sur le cycle de vie habituel des tests de logiciels et non sur des tests prêts à l’emploi, les outils utilisés pour le processus de test habituel peuvent également être exploités pour les tests dans DevOps.
Voici quelques-uns des outils de test couramment utilisés,
- Sélénium
- Jenkins
- Appium
- Concombre
- TestNG
- Maven
- Appium
- Bambou
Dernières pensées
Bien qu’il existe une pléthore de ressources disponibles pour vous guider sur les tests dans DevOps , la réussite de la mise en œuvre et la récolte de tous les avantages de DevOps dépendent de la maturité des tests de l’organisation et de son partenaire de conseil/test externe, car il n’y a pas de solution unique.