OPS05-BP02 Tester et valider les modifications - AWS Well-Architected Framework

OPS05-BP02 Tester et valider les modifications

Chaque changement déployé doit être testé pour éviter des erreurs de production. Cette bonne pratique est axée sur les tests des changements du contrôle des versions à la création d'artefacts. En plus des changements du code de l'application, les tests doivent inclure l'infrastructure, la configuration, les contrôles de sécurité et les procédures opérationnelles. Les tests peuvent prendre de nombreuses formes, des tests unitaires à l'analyse des composants d'un logiciel (SCA). Pousser les tests encore plus loin dans le processus d'intégration et de livraison de logiciels entraîne une plus grande certitude de la qualité des artefacts.

Votre organisation doit développer des normes de test pour tous les artefacts logiciels. Les tests automatisés réduisent la quantité de travail et évitent les erreurs de test manuels. Des tests manuels peuvent être nécessaires dans certains cas. Les développeurs doivent avoir accès aux résultats des tests automatisés pour créer des boucles de rétroaction qui améliorent la qualité du logiciel.

Résultat souhaité : Les changements apportés au logiciel sont testés avant d'être livrés. Les développeurs ont accès aux résultats des tests et aux validations. Votre organisation a une norme de test qui s'applique à tous les changements apportés au logiciel.

Anti-modèles courants :

  • Vous déployez un nouveau changement apporté au logiciel sans aucun test. Il ne s'exécute pas en production, ce qui entraîne une panne.

  • De nouveaux groupes de sécurité sont déployés avec AWS CloudFormation sans être testés dans un environnement de préproduction. Les groupes de sécurité empêchent les clients d'atteindre votre application.

  • Une méthode est modifiée mais il n'existe aucun test d'unité. Le logiciel échoue quand il est déployé en production.

Avantages liés au respect de cette bonne pratique : Le taux d'échec des changements lors des déploiements de logiciel diminue. La qualité du logiciel s'améliore. Les développeurs ont une meilleure connaissance de la viabilité de leur code. Des politiques de sécurité peuvent être déployées en toute confiance pour soutenir la conformité de l'organisation. Les changements apportés à l'infrastructure, tels que les mises à jour de la politique de mise à l'échelle automatique, sont testés à l'avance pour répondre aux besoins du trafic.

Niveau d'exposition au risque si cette bonne pratique n'est pas respectée : Élevé

Directives d'implémentation

Des tests sont réalisés sur tous les changements, du code de l'application à l'infrastructure, dans le cadre de votre pratique d'intégration continue. Les résultats des tests sont publiés afin que les développeurs disposent d'une rétroaction rapide. Votre organisation a une norme de test que tous les changements doivent respecter.

Exemple client

Dans le cadre de leur pipeline d'intégration continue, la société XYZ réalise plusieurs types de test sur tous les artefacts logiciels. L'entreprise pratique le développement axé sur les tests afin que tous les logiciels bénéficient de tests d'unités. Une fois l'artefact créé, elle exécute des tests de bout en bout. Une fois cette première série de tests terminée, elle exécute une analyse de la sécurité des applications statiques qui cherchent des vulnérabilités connues. Les développeurs reçoivent des messages indiquant que chaque pallier de test est validé. Une fois tous les tests terminés, l'artefact logiciel est stocké dans un référentiel d'artefacts.

Étapes d'implémentation

  1. Collaborez avec les parties prenantes dans votre organisation pour développer une norme de test pour les artefacts logiciels. Quels tests standards tous les artefacts doivent-ils valider ? Des exigences en termes de conformité ou de réglementation doivent-elles être incluses dans la couverture des tests ? Faut-il réaliser des tests de qualité du code ? Qui doit être informé de la fin des tests ?

    1. L'architecture de référence des pipelines de déploiement d'AWS contient une liste officielle des types de tests qui peuvent être réalisés sur des artefacts logiciels dans le cadre d'un pipeline d'intégration.

  2. Instrumentez votre application avec les tests nécessaires en fonction de la norme de test de votre logiciel. Chaque ensemble de tests doit être réalisé en moins de dix minutes. Les tests doivent être exécutés dans le cadre d'un pipeline d'intégration.

    1. Amazon CodeGuru Reviewer peut tester le code de votre application afin de détecter les défauts.

    2. Vous pouvez utiliser AWS CodeBuild pour réaliser des tests sur les artefacts logiciels.

    3. AWS CodePipeline peut orchestrer vos tests logiciels dans un pipeline.

Ressources

Bonnes pratiques associées :

Documents connexes :

Vidéos connexes :

Ressources connexes :

Services associés :