1

J'ai vérifié pas mal de sources et je ne sais toujours pas: est-ce que le déploiement dans un environnement de test fait partie de CI, ou est-ce que CI se contente souvent de commettre des erreurs et d'intégrer la ligne principale? Certains disent cela, certains disent que le déploiement dans un environnement cible fait partie de CI.Le déploiement dans un environnement de test fait-il partie de l'intégration continue?

Sinon, je ne vois pas la différence entre CI et Continous Delivery.

Répondre

1

L'intégration continue peut nécessiter ou non un élément que vous considéreriez comme un déploiement dans un environnement de test. Le point principal de CI est que des tests automatisés sont exécutés sur une version du logiciel pour s'assurer que cette version est prête à être déployée à l'étape suivante (QA, mise en scène, production, ou quelle que soit la prochaine étape de son processus). Ainsi, le logiciel est déployé si cela est nécessaire pour que le logiciel soit testé et pas si ce n'est pas le cas.

Il existe toujours un environnement de test quelconque, car les tests automatisés doivent s'exécuter sur certains ordinateurs, mais le code peut ou non passer à travers ce que vous considérez comme un déploiement. Par exemple, si une application est dans un langage interprété, l'exécution de tests automatisés peut ne nécessiter rien de plus que la copie de la source dans l'environnement de test et l'exécution d'un script, et non son déploiement.

Le déploiement requis pour les tests automatisés dépend du type de tests automatisés effectués par l'application. S'il n'a que des tests unitaires, aucun déploiement n'est nécessaire. S'il a des tests d'intégration de la pile complète, le déploiement peut être nécessaire ou non en fonction du cadre de test d'intégration. Par exemple, le framework de test d'intégration qui fait partie de Rails exécute une version spécifique au test d'un serveur Rails pour les tests auxquels il doit parler, de sorte que ces tests ne nécessitent pas de déploiement. D'un autre côté, d'autres frameworks pourraient ne pas fournir ce support, donc l'application devrait être déployée dans l'environnement de test pour permettre aux tests d'intégration de la pile complète de fonctionner. Ou un build CI pourrait inclure des tests de performance automatisés; ceux-ci devraient certainement fonctionner contre l'application déployée dans un environnement de test.

+0

Merci. Mais qu'entend-on par test? Automatisé? La plupart des systèmes nécessitent encore une validation manuelle effectuée par des testeurs (par exemple, des systèmes avec une interface utilisateur graphique où l'accessibilité, la facilité d'utilisation, etc. doivent également être vérifiées). Et quelle est la différence à la livraison de COntinous alors? – Pietross

+0

Oui, tests automatisés. Je l'ai expliqué plus clairement dans ma réponse. Une application peut avoir des tests manuels, mais cela ne fait pas partie de CI. En ce qui concerne les CD, si votre application comporte des tests manuels qui doivent être exécutés avant le déploiement en production, vous ne faites pas de CD. Vous pourriez CD à la production et tester manuellement là, cependant. –

+0

De plus, si notre application (multi-niveaux, DB, middleware Java et Flex UI) exécute ses tests unitaires et d'intégration, elle est toujours CI. Ensuite, il se déploie dans notre environnement SIT pour que nos testeurs effectuent des tests - le déploiement est déclenché manuellement dans Jenkins - cela fait-il encore partie de CI? Certaines sources que j'ai lues (comme les meilleures pratiques Pro: NET) ont mentionné le déploiement comme une étape dans CI. – Pietross