OPS05-BP02 Tester et valider les modifications - Pilier Excellence opérationnelle

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 modifications apportées au logiciel sont testées avant d’être livrées. 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 de la mise en place de cette bonne pratique : le taux d’échec des modifications lors des déploiements de logiciels est réduit. 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 de risque exposé si cette bonne pratique n'est pas établie: é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.

Utilisez la puissance de l’IA générative avec Amazon Q Developer pour améliorer la productivité des développeurs et la qualité du code. Amazon Q Developer inclut la génération de suggestions de code (basées sur de grands modèles de langage), la production de tests unitaires (y compris les conditions aux limites) et l’amélioration de la sécurité du code grâce à la détection et à la correction des failles de sécurité.

Exemple de client

Dans le cadre de leur pipeline d'intégration continue, AnyCompany Retail 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'AWS Deployment Pipeline Reference Architecture (Architecture de référence des pipelines de déploiement d'AWS) contient une liste fiable des types de tests qui peuvent être réalisés sur des artefacts logiciels dans le cadre d'un pipeline d'intégration.

  2. Instrumentalisez 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. Utilisez Amazon Q Developer, un outil d’IA génératif qui contribue à créer des cas de tests unitaires (y compris des conditions aux limites), à générer des fonctions à l’aide de code et de commentaires et à implémenter des algorithmes connus.

    2. Utilisez Amazon CodeGuru Reviewer pour tester la présence de défauts dans le code de votre application.

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

    4. 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 :