View a markdown version of this page

REL08-BP02 Intégrer les tests fonctionnels dans le cadre de votre déploiement - AWS Well-Architected Framework

REL08-BP02 Intégrer les tests fonctionnels dans le cadre de votre déploiement

Les tests fonctionnels sont exécutés dans le cadre du déploiement automatisé. Si les critères de réussite ne sont pas respectés, le pipeline est arrêté ou annulé. Ces tests sont exécutés dans un environnement de préproduction, qui est mis en place avant la production dans le pipeline. Idéalement, cela s’effectue dans le cadre d’un pipeline de déploiement.

Résultat souhaité : vous utilisez l’automatisation pour effectuer des tests fonctionnels, et les données de test associées réduisent la durée et les dépenses des tests et améliorent la précision des résultats des tests. Vous intégrez des tests fonctionnels dans le cadre de votre processus de déploiement, ce qui vous permet d’automatiser vos pipelines de publication pour des mises à jour rapides et fiables des applications et de l’infrastructure.

Anti-modèles courants :

  • Vous effectuez manuellement des tests en dehors du pipeline de déploiement.

  • Vous sautez les étapes de test de votre automatisation grâce à des flux de travail d’urgence manuels.

  • Vous ne suivez pas les plans et processus de test établis au profit de délais accélérés.

Avantages de la mise en place de cette bonne pratique : les tests fonctionnels confirment que le système fonctionne conformément aux exigences spécifiées. Il est utilisé pour vérifier de manière cohérente l’état de fonctionnement prévu des composants tels que les interfaces utilisateur, les API, les bases de données et le code source. Lorsque vous examinez ces composants du système, les tests fonctionnels vérifient que chaque fonctionnalité se comporte comme prévu, ce qui protège à la fois les attentes des utilisateurs et l’intégrité du logiciel. Intégrez des tests fonctionnels dans le cadre de votre déploiement régulier et utilisez l’automatisation pour déployer toutes les modifications, ce qui réduit le risque d’introduction d’erreurs humaines.

Niveau de risque exposé si cette bonne pratique n’est pas établie : élevé

Directives d’implémentation

Intégrez les tests fonctionnels dans le cadre de votre déploiement. Les tests fonctionnels sont exécutés dans le cadre du déploiement automatisé. Si les critères de réussite ne sont pas remplis, le pipeline est arrêté ou annulé. AWS CodePipeline fournit un pipeline de livraison continue pour les tests automatisés, ce qui permet aux testeurs d’automatiser l’ensemble du processus de test et de déploiement. Il s’intègre à des services AWS comme AWS CodeBuild et AWS CodeDeploy pour automatiser les phases de création, de test et de déploiement du cycle de vie du développement logiciel.

Étapes d’implémentation

  • Configurez votre pipeline : configurez les étapes de récupération de code source, de génération, de test et de déploiement à l’aide de la console AWS CodePipeline ou de l’AWS Command Line Interface (CLI).

    • Définissez votre source : avec AWS CodePipeline, vous pouvez récupérer automatiquement le code source à partir de systèmes de contrôle de version tels que GitHub, AWS CodeCommit ou Bitbucket, ce qui permet de confirmer que le code le plus récent est toujours utilisé pour les tests.

    • Automatisez les builds et les tests : AWS CodeBuild peut automatiquement créer et tester votre code et générer des rapports de test. Il prend en charge les frameworks de test populaires tels que JUnit, NUnit et TestNG.

    • Déployez votre code : une fois que le code a été créé et testé, AWS CodeDeploy peut le déployer dans votre environnement de test, y compris des instances Amazon EC2, des fonctions AWS Lambda ou des serveurs sur site.

    • Surveillez les pipelines : AWS CodePipeline peut suivre la progression de votre pipeline et l’état de chaque étape. Vous pouvez également utiliser des contrôles de qualité pour bloquer le pipeline en fonction de l’état d’exécution du test. Vous pouvez aussi recevoir des notifications en cas d’échec ou d’achèvement d’une étape du pipeline.

Ressources

Documents connexes :