L’intégration et le déploiement continu : Le royaume de l’automatisation.

Tout d’abord, il me semble important de définir ce que sont les concepts d’intégration et de déploiement continu.

L’intégration continue est l’ensemble des processus automatisés permettant :

·        Le merge des branches

·        La construction d’artefacts (qui pourront être déployés)

·        L’ensemble des tests possibles sans l’exécution du programme (Tests unitaires, tests de sécurité avec Fortify, qualité de l’artefact…)

Le déploiement continu est l’ensemble des processus automatisés permettant le déploiement sur un serveur d’une version de l’application. Cela comprend :

·        L’intégration continue

·        Le déploiement

·        Les tests après déploiement (tests fonctionnels, charges…)

Voici un schéma récapitulatif :

Pourquoi ces processus ? Quel est le but recherché ?

Le but de ces processus est d’améliorer les mises en production d’une application et ce de différentes manières :

·        Améliorer la confiance sur la qualité de l’application

·        Améliorer le temps de mise sur le marché

·        Livrer plus souvent

·        Réduction du coût total du produit (industrialisation)

Comment atteindre ces buts ?

Ces processus d’intégration et de déploiement continus ont vocations à être exécuté aussi souvent que possible (but : livrer plus souvent).

Il faut donc

·        Tester souvent (tests unitaires, sécurité fonctionnel, charges…)

·        Construire les nombreux paquets (ou artefacts)

·        Déployer (dans le cas du déploiement continu)

De plus, pour pouvoir le faire souvent il faut que ces processus soient rapides ! Si l’ensemble de ces étapes prend plusieurs heures ou jours il est alors impossible de le faire régulièrement. Le challenge est alors d’optimiser le temps d’exécution de ces processus.

Il faut donc faire une sélection drastique des tests à exécuter et avoir une batterie de test qui permet d’assurer un matelas de sécurité à chaque implémentation… Il faut donc une campagne de tests vitaux… Ici, par campagne de tests vitaux, je compte également les cas de performance, de sécurité, etc… à ajouter. On a alors des tests vitaux fonctionnels, de performance, de sécurité…

L’automatisation étape obligatoire !

Malheureusement, cette sélection seule n’est pas suffisante. Afin de de s’assurer une exécution rapide et régulière l’automatisation est quasiment obligatoire. Comme vous le savez, l’intérêt principal des tests automatisés est le fait que l’exécution ne coûte quasiment rien et peut être beaucoup plus rapide que les tests manuel rendent leur utilisation obligatoire.

De plus le temps de transition entre ces phases doit être aussi court que possible, l’automatisation de ces enchainements permet également de gagner beaucoup de temps.

Enfin, aucun testeur ne pourrait plusieurs fois par jours pendant des mois toujours faire les mêmes cas de test et gardant une qualité optimale. Au bout d’un moment son attention diminue à force de toujours répéter les mêmes tâches, ce n’est pas le cas avec les tests automatisés (qu’il faut quand même maintenir).

Conclusion

Les points forts de l’automatisation (rapidité d’exécution, exécution peu coûteuse, pas de différence entre les runs) sont exactement tous les besoins du métier DevOps et des processus d’intégration et de déploiement continu. Dans ce cas le ROI est évident, les tests sont très souvent exécutés ET permettent la mise en place de processus à forte valeur ajoutée pour le client final.

Sans ces processus, Facebook n’aurait jamais pu mettre en place en 1 jour unes fonctionnalité comme le Safety Check.

Article écrit avec l’aide de Mickaël Carlin

Outil de gestion de branche : GIT – GITLab

Outil de déploiement : Chef, Ansible

Pensez à rejoindre le groupe Le métier du test si le test vous intéresse !

N’hésitez pas à me suivre et lire mes autres articles si vous voulez en apprendre plus sur le test ou venir partager vos connaissances

Merci à tous ceux qui mettent « j’aime », partagent ou commentent mes articles

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Automatisation

Tests mobiles: Automatisation des tests

Lorsque l’on veut automatiser, il faut se poser de nombreuses questions et établir une stratégie d’automatisation afin de maximiser ses chances de réussir cette automatisation et d’optimiser son retour sur investissement. Comme pour les tests manuels, il y a des spécificités aux tests mobiles. Cet article a pour but de

Lire la suite »
culture générale

[Programmez!] Un jeu pour le test logiciel ?

Les jeux sont présents presque partout, à tout moment de notre vie mais aussi dans le monde animal où ce dernier sert à mesurer et à établir un ordre établi. Cette présence montre un intérêt au-delà de l’amusement lié à cette activité. S’il est un endroit où les jeux ne

Lire la suite »
Interview

Emmanuelle Agnans: Consultante test

Bonjour, qui êtes-vous, quel est votre métier et quelles sont vos activités professionnelles ? Emmanuelle, j’occupe le poste de consultante test dans le domaine de l’assurance. Mes activités sont diverses et variées : conception de test, exécution de test, formation de collègues sur l’assurance, accompagnement des nouvelles recrues, reporting auprès du client

Lire la suite »