Comment faire

Quel sera l’impact du DevOps sur les tests d’assurance qualité ?

Tutoriel de test DevOps : une récente enquête RightScale a révélé que 54 % des entreprises ont adopté DevOps et que l’intérêt pour DevOps augmente rapidement.

Dans cet article, nous apprendrons comment cette nouvelle méthodologie de développement logiciel aura un impact sur l’assurance qualité et comment la fonction d’assurance qualité dans son ensemble devrait évoluer pour adopter ce changement.

Consultez => Série complète de didacticiels DevOps

Dans cet article, nous en apprendrons plus sur DevOps et son impact sur l’assurance qualité et ses fonctions.

Qu’est-ce que DevOps ?

DevOps – est une combinaison de Développement et opérations – il s’agit d’une méthodologie de développement logiciel qui cherche à intégrer toutes les fonctions de développement logiciel, du développement aux opérations dans le même cycle.

Cela nécessite un niveau de coordination plus élevé au sein des différentes parties prenantes du processus de développement logiciel (à savoir Développement, assurance qualité et opérations)

Cycle DevOps

DevOps-Flux

Un cycle DevOps idéal commencerait à partir de :

  • Le code d’écriture du développeur
  • Construire et déployer des binaires dans un environnement QA
  • Exécuter les cas de test et enfin
  • Déploiement en production dans un flux intégré fluide.
  • De toute évidence, cette approche met l’accent sur l’automatisation de la construction, du déploiement et des tests. Utilisation d’outils d’intégration continue (CI), les outils de test d’automatisation deviennent une norme dans un cycle DevOps.

    Pourquoi DevOps ?

    Bien qu’il existe des différences subtiles entre Tests Agile et DevOps, ceux qui travaillent avec Agile trouveront DevOps un peu plus familier avec lequel travailler (et éventuellement adopter). Bien que les principes Agiles soient appliqués avec succès dans les itérations de développement et d’assurance qualité, c’est une toute autre histoire (et souvent une pomme de discorde) du côté des opérations. DevOps propose de combler cette lacune.

    Désormais, au lieu de l’intégration continue, DevOps implique le « développement continu », où le code a été écrit et validé dans le contrôle de version, sera construit, déployé, testé et installé sur l’environnement de production qui est prêt à être utilisé par l’utilisateur final.

    Ce processus aide tout le monde dans toute la chaîne puisque les environnements et les processus sont standardisés. Chaque action de la chaîne est automatisée. Cela donne également la liberté à toutes les parties prenantes de concentrer leurs efforts sur la conception et le codage d’un livrable de haute qualité plutôt que de se soucier des divers processus de construction, d’exploitation et d’assurance qualité.

    Il réduit considérablement la durée de vie à environ 3 à 4 heures, à partir du moment où le code temporel est écrit et validé, jusqu’au déploiement en production pour la consommation de l’utilisateur final.

    En un mot, DevOps est une extension d’Agile ou j’aime l’appeler « Agile on Steroids ».

    Changement du rôle de l’assurance qualité dans DevOps

    Traditionnellement, QA obtiendrait une version qui est déployée dans son environnement désigné et QA commencerait alors ses tests fonctionnels et de régression. La version devrait idéalement rester avec l’AQ pendant quelques jours avant l’approbation de l’AQ sur la version. Toutes ces étapes changent dans DevOps.

    Modifications de l’assurance qualité pour les tests DevOps :

  • L’assurance qualité est nécessaire pour aligner leurs efforts sur le cycle DevOps.
  • Ils doivent s’assurer que tous leurs cas de test sont automatisés et atteignent une couverture de code proche de 100 %.
  • Ils doivent s’assurer que leurs environnements sont standardisés et que le déploiement sur leurs boîtiers QA est automatisé.
  • Toutes leurs tâches de pré-test, nettoyages, tâches de post-test, etc. sont automatisées et alignées sur le cycle d’intégration continue.
  • Comme déjà mentionné, DevOps nécessite un haut niveau de coordination entre les différentes fonctions de la chaîne de livrables. Cela signifie également que les frontières entre les différents rôles des contributeurs dans la chaîne deviennent poreuses.

    DevOps encourage tout le monde à contribuer à la chaîne. Ainsi, entre autres, un développeur peut configurer des déploiements. Les ingénieurs de déploiement peuvent ajouter des cas de test au référentiel QA. Les ingénieurs QA peuvent configurer leurs cas de test d’automatisation dans la chaîne DevOps.

    Collectivement, tout le monde dans la chaîne est responsable de la qualité et de la ponctualité des livrables.

    DevOps et automatisation des tests

    Pour atteindre une telle vitesse et agilité, il est important d’automatiser tous les processus de test et de les configurer pour qu’ils s’exécutent automatiquement lorsque le déploiement est terminé dans l’environnement d’assurance qualité. Des outils de test d’automatisation spécialisés et des outils d’intégration continue sont utilisés pour réaliser cette intégration.

    Cela nécessite également la construction d’un cadre de test d’automatisation mature à travers lequel on peut rapidement scripter de nouveaux cas de test.

    Stratégie de test DevOps : conseils pour réussir DevOps

  • Les cas de test qui doivent être exécutés pour un build particulier doivent être identifiés.
  • L’exécution du test doit essentiellement être allégée.
  • L’AQ et le développeur doivent s’asseoir ensemble et identifier les zones affectées en raison d’une construction particulière et exécuter ces cas de test associés ainsi qu’un test de validité.
  • Vous devez également configurer des outils d’analyse et de couverture de code spécialisés pour vous assurer d’atteindre une couverture de code proche de 100 %.
  • Le concept d’exécution de tous les cas de test de régression pour un test réussi devient bientôt obsolète.
  • La stratégie de test de nouvelles fonctionnalités doit être formalisée et les versions intermédiaires peuvent être fournies à l’assurance qualité qui, à son tour, créera des scripts de test et exécutera ces tests d’automatisation sur les versions intermédiaires jusqu’à ce que le code devienne suffisamment stable pour être déployé sur l’environnement de production. .
  • Tous les environnements requis pour les tests doivent être standardisés et les déploiements doivent être automatisés.
  • À l’aide de diverses techniques d’automatisation, l’assurance qualité devrait être en mesure de lancer des tests d’automatisation sur divers environnements multiplateformes (et multinavigateurs dans le cas d’applications Web).
  • L’exécution parallèle des tests aide à réduire la durée de vie, qui à son tour est le point crucial d’une implémentation DevOps réussie.
  • Des critères de sortie doivent être définis pour chaque exécution de sorte que lorsque les résultats des tests sont renvoyés à la chaîne, une décision de mise en production soit prise/pas.
  • Les bogues bloquants ou critiques trouvés doivent être signalés et corrigés et passés par la même chaîne d’événements avant que le code ne soit déployé dans l’environnement de production.
  • Surveillance des applications

    L’AQ doit également être en mesure de détecter les problèmes à un stade précoce et de les signaler de manière proactive. Pour y parvenir, ils doivent mettre en place une surveillance sur l’environnement de production afin de pouvoir exposer les bogues avant qu’ils ne provoquent une défaillance.

    La configuration de compteurs spécialisés tels que les temps de réponse, l’utilisation de la mémoire et du processeur, etc. peut fournir de nombreuses informations sur l’expérience de l’utilisateur final.

    Par example, si le temps de réponse moyen pour la connexion augmente progressivement au cours des différentes versions, le contrôle qualité doit signaler ce problème de manière proactive pour optimiser le code de connexion, sinon les futures versions pourraient provoquer la frustration de l’utilisateur final en raison des temps de réponse élevés.

    L’assurance qualité peut également utiliser un petit sous-ensemble de cas de test de haute priorité existants à exécuter périodiquement en production, afin de surveiller activement l’environnement. Des bogues tels que « Ce bogue apparaît parfois » ou « Impossible de se reproduire » peuvent être détectés grâce à cette stratégie qui, au final, rend l’application plus stable et satisfait également les utilisateurs finaux.

    Encore une fois, ces moniteurs doivent être configurés pour s’exécuter automatiquement avec des rapports riches (comme des journaux et des captures d’écran des échecs, etc.).

    Conclusion

    Waterfall a cédé la place à V-Model qui à son tour a été remplacé par Agile comme choix préféré pour le développement de logiciels.

    DevOps est l’avenir. C’est un cycle d’amélioration continue que les modèles de développement logiciel subissent de temps en temps. Vous devez l’embrasser, le comprendre et l’inculquer.

    Vous devez maîtriser les différents outils d’automatisation et d’intégration continue afin que vos efforts d’automatisation ajoutent de la valeur à la chaîne et soient suffisamment légers pour s’adapter rapidement aux changements. Vous pouvez travailler sur des projets pouvant impliquer des environnements alpha, bêta et UAT avant d’être déployés dans l’environnement de production.

    Le concept reste essentiellement le même. L’automatisation et davantage d’automatisation sont au cœur d’un cycle DevOps réussi. Mais, en tant qu’AQ, vous devriez également être capable de tracer une ligne pour savoir à quel point l’automatisation est trop d’automatisation.

    A propos de l’auteur: Aniket Deshpande travaille en tant que responsable de l’assurance qualité chez Afour Technologies, Pune et travaille dans le domaine des tests de logiciels depuis plus de 9 ans dans divers domaines et plates-formes. Il est passionné par DevOps et travaille en tant que consultant pour guider les organisations dans l’adoption de stratégies de test DevOps.

    Si vous souhaitez en savoir plus ou si vous cherchez à implémenter DevOps et l’approche de test associée dans votre organisation, n’hésitez pas à contacter l’auteur.

    Que pensez-vous des tests DevOps ? Pensez-vous que le fait de faire travailler ensemble les développeurs et les responsables de l’exploitation peut être bénéfique pour le projet ?

    Faites-nous part de vos commentaires/suggestions sur cet article.

    PRÉC Tutoriel | SUIVANT Tutoriel

    Back to top button