Alors que les entreprises de développement de logiciels se précipitent pour livrer des fonctionnalités en disponibilité générale (GA), l'accent mis sur l'assurance qualité (QA) devient plus critique que jamais. Au-delà des méthodologies de test traditionnelles, la diversification des types de tests est primordiale pour assurer le succès des fonctionnalités GA.

Chez Okta, l'équipe produit est responsable du maintien de la qualité et de la garantie d'un déploiement transparent. Dans ce blog, nous explorerons l'importance de la diversification des tests pour protéger la qualité des fonctionnalités GA et nous plongerons dans la nécessité d'une surveillance continue et d'une validation post-déploiement pour une excellence durable.

Le paysage en constante évolution des tests de logiciels

L'assurance qualité (QA) a évolué bien au-delà des méthodologies de test traditionnelles. Cependant, la complexité des applications modernes et les attentes croissantes des utilisateurs finaux nécessitent une approche de test plus complète. 

Les méthodes pour diversifier les approches de test pour les fonctionnalités GA incluent :

1. Suite de validation fonctionnelle :

  • Le test unitaire est une méthode de test logiciel dans laquelle des unités ou des composants individuels d'une application logicielle sont testés isolément pour valider que chaque unité fonctionne comme prévu.
    • Portée : Fonctions ou méthodes individuelles.
    • Objectif : Vérifier l'exactitude des petites unités de code isolées.
    • Avantages : détection précoce des bogues, débogage facilité et maintenabilité du code améliorée.
    • Outils : Frameworks comme JUnit pour Java, pytest pour Python, NUnit pour .NET, etc.
       
  • Le test d'intégration garantit une interaction transparente entre les différents composants, protégeant ainsi contre les problèmes d'intégration qui peuvent survenir dans un environnement réel.
    • Portée : Interaction entre plusieurs unités/modules.
    • Objectif : Vérifier que les composants fonctionnent ensemble comme prévu.
    • Avantages : Identifier les problèmes liés à l'intégration des composants.
    • Outils : selon la pile technologique, les tests d’intégration peuvent être rédigés à l’aide de frameworks tels que TestNG, Jasmine ou d’outils comme Postman.
       
  • Le test de bout en bout vérifie principalement que tous les composants et systèmes fonctionnent ensemble de manière cohérente comme prévu, simulant des scénarios d'utilisateurs réels et assurant l'intégration en douceur des différents modules ou couches au sein de l'application.
    • Portée : L'ensemble de l'application ou une partie importante de celle-ci.
    • Objectif : Vérifier le comportement global du système du point de vue de l'utilisateur.
    • Avantages : S'assurer que tous les composants fonctionnent ensemble pour répondre aux exigences des utilisateurs.
    • Outils : Selenium pour les applications Web, Appium pour les applications mobiles, Cypress pour les applications Web modernes, etc.
       
  • Tests de compatibilité entre navigateurs et appareils garantissant une fonctionnalité cohérente sur différents navigateurs Web et appareils afin d’offrir une expérience fluide aux utilisateurs, quels que soient leurs préférences en matière de navigateur et d’appareil.
    • Portée : Assurer une performance cohérente sur différents navigateurs web et appareils.
    • Objectif : Identifier et résoudre les problèmes liés au rendu, à la fonctionnalité et à l'expérience utilisateur sur différents navigateurs et appareils.
    • Exemples : Tests sur les navigateurs populaires (Chrome, Firefox, Safari, Edge, etc.) et différents appareils (ordinateurs de bureau, ordinateurs portables, tablettes et téléphones mobiles)
    • Outils : Outils de test multi-navigateurs (par exemple, BrowserStack, CrossBrowserTesting, Sauce Labs) et laboratoires de test d'appareils

2. Dimensions non fonctionnelles :

  • Le test de performance consiste à évaluer les performances des fonctionnalités GA dans diverses conditions, y compris les tests de stress et les tests de charge. Cela garantit des performances optimales, même pendant les pics d'utilisation.
    • Portée : Évaluer les performances du système dans diverses conditions.
    • Objectif : Évaluer la performance du système en termes de vitesse, de réactivité et de stabilité.
    • Exemples : Tests de charge, tests de résistance et tests de scalabilité
    • Outils : JMeter, Apache Benchmark, Gatling pour les tests de charge ; Apache JMeter, Locust pour les tests de résistance ; et outils spécifiques à la pile technologique
       
  • Les tests de sécurité doivent être approfondis pour aider à identifier et à atténuer les vulnérabilités, à protéger les données sensibles et à garantir la résilience de la fonctionnalité contre les menaces de sécurité potentielles.
    • Portée : Identifier les vulnérabilités et garantir la sécurité du système.
    • Objectif : évaluer les fonctions de sécurité de l'application, notamment la protection des données et les contrôles d'accès.
    • Exemples : Tests d'intrusion, analyse de vulnérabilités et analyse de code
    • Outils : OWASP ZAP, Burp Suite, Nessus et divers outils d'analyse de code
       
  • Les tests de scalabilité évaluent la capacité de la fonctionnalité à s'adapter à des bases d'utilisateurs croissantes. Les tests de scalabilité sont essentiels pour maintenir les performances à mesure que le nombre d'utilisateurs augmente.
    • Portée : Assurer la fiabilité et la stabilité du système dans des conditions normales et extrêmes.
    • Objectif : évaluer la capacité du système à se rétablir après des pannes et à gérer les erreurs.
    • Exemples : tests de tolérance aux pannes, tests de récupération et tests de fiabilité.
    • Outils : Scripts personnalisés, Chaos Monkey pour les systèmes distribués.

3. Validation centrée sur l'utilisateur :

  • Les tests d'utilisabilité évaluent la convivialité des fonctionnalités GA, intégrant les commentaires des utilisateurs réels pour affiner l'expérience utilisateur.
    • Portée : Évaluer l'interface utilisateur et l'expérience utilisateur globale.
    • Objectif : Évaluer la convivialité et l'intuitivité de l'application.
    • Exemples : Tests de l'interface utilisateur, tests de l'expérience utilisateur et tests d'accessibilité.
    • Outils : Les tests d'utilisabilité peuvent impliquer des processus automatisés et manuels, y compris des outils comme UserTesting pour les tests d'utilisabilité à distance
  • Accessibilité les tests garantissent que les personnes ayant des capacités diverses peuvent facilement utiliser les fonctionnalités de GA.
    • Portée : Évaluer l'accessibilité de l'application pour les utilisateurs handicapés.
    • Objectif : S'assurer que l'application est conforme aux normes et directives d'accessibilité (par exemple, WCAG — Web Content Accessibility Guidelines ou [Directives pour l’accessibilité aux contenus Web]).
    • Exemples : Tests de navigation au clavier, tests de lecteurs d'écran, tests de contraste des couleurs
    • Outils : Outils de test d'accessibilité automatisés (par exemple, Axe, Google Lighthouse, WAVE) et tests manuels avec des technologies d'assistance

4. Surveillance continue et post-déploiement 

  • Surveillance proactive à l'aide de contrôles d'intégrité: Mettez en œuvre une surveillance en temps réel dans les environnements de test, de préproduction et de production pour détecter les problèmes dès qu'ils surviennent. La surveillance proactive aide à identifier et à résoudre rapidement les problèmes potentiels avant qu'ils n'aient un impact sur les utilisateurs finaux.
    • Objectif : Les bilans de santé périodiques impliquent des évaluations régulières de la santé et des performances globales du système à intervalles prédéterminés.
    • Timing : Ces contrôles sont effectués à des heures programmées, souvent dans le cadre de la maintenance de routine ou de la gestion du système.
    • Portée : Ils ont une portée plus large, visant à identifier les problèmes potentiels, les goulots d'étranglement ou la dégradation des performances au fil du temps.
      • Surveillance post-déploiement:
        • Objectif : La surveillance post-déploiement se concentre sur l'observation du comportement et des performances du système immédiatement après le déploiement d'une nouvelle version ou d'une mise à jour.
        • Timing : Il commence immédiatement après le déploiement et se poursuit pendant une durée spécifique afin de capturer des informations en temps réel sur la stabilité et les performances du système.
        • Portée : L'objectif est de détecter les problèmes découlant du récent déploiement, tels que les bogues, les erreurs ou les comportements inattendus.
    • Cas d'utilisation : La surveillance post-déploiement est essentielle pour s'assurer que les dernières modifications introduites dans une nouvelle version n'ont pas d'impact négatif sur la performance du système ou l'expérience utilisateur.

​​​​​​​5. Vérification post-déploiement

  • Objectif : La vérification post-déploiement garantit que le processus de déploiement est réussi et que la version nouvellement publiée fonctionne comme prévu.
  • Timing : Cela se produit immédiatement après le déploiement et implique un ensemble de tests prédéfinis pour confirmer que l'application est accessible, que les fonctionnalités fonctionnent correctement et qu'il n'existe aucune erreur critique.
  • Portée : La portée est plus étroite, se concentrant sur la confirmation de la fonctionnalité de base et de la stabilité de la version nouvellement déployée.

​​​​​​​Pour en savoir plus sur la vérification post-déploiement, lisez keys-to-high-quality-service-releases-at-okta.

Au-delà du déploiement

Le processus de livraison de fonctionnalités GA résilientes s'étend au-delà du déploiement ; il nécessite un dévouement continu à la qualité. Grâce à la diversification des types de tests en développement et à l'intégration d'une surveillance continue et d'une validation post-déploiement, les équipes de développement peuvent établir un écosystème d'assurance qualité robuste. Cela protège la qualité initiale des fonctionnalités GA et garantit leur excellence durable dans le domaine en constante évolution de l'utilisation des logiciels.

Vous avez des questions sur cet article de blog ? Contactez-nous à l'adresse suivante : eng_blogs@okta.com.

Consultez d’autres Blogs sur l’ingénierie d’Okta pour approfondir vos connaissances.

Prêt à rejoindre notre équipe d’ingénieurs aussi passionnés qu’exceptionnels ? Consultez notre page Carrières.

Libérez le potentiel d’une gestion des identités moderne et sophistiquée pour votre entreprise. Contactez notre équipe commerciale pour plus d’informations.

Continuez votre parcours dans l‘univers de l’identité