Un DevOps efficace nécessite des outils de test adaptés
Mots-clés :
DevOps
Intégration continue
Tests continus
Livraison continue
DevOps
Intégration continue
Tests continus
Livraison continue
Résumé : Ce document explique pourquoi les Tests Continus (CT) 2
sont la pierre angulaire qui rend la culture DevOps 1 efficace dans toute organisation.
Nous décrivons ce que c'est, quand l'utiliser et comment le construire tout au long de vos projets ; nous expliquons ensuite comment le concrétiser avec XQual et comment cela fonctionne avec l'Intégration Continue (CI) 3 et permet la Livraison Continue (CD) 4. Il n'y a pas de magie, juste une ingénierie rigoureuse et constante pour la rendre efficace et durable. Mais XQual peut considérablement faciliter le travail de l'outil de boucle CI et faire de la CD une réalité.
N'est-ce pas là l'un des fondements d'une organisation DevOps efficace ?
Nous décrivons ce que c'est, quand l'utiliser et comment le construire tout au long de vos projets ; nous expliquons ensuite comment le concrétiser avec XQual et comment cela fonctionne avec l'Intégration Continue (CI) 3 et permet la Livraison Continue (CD) 4. Il n'y a pas de magie, juste une ingénierie rigoureuse et constante pour la rendre efficace et durable. Mais XQual peut considérablement faciliter le travail de l'outil de boucle CI et faire de la CD une réalité.
N'est-ce pas là l'un des fondements d'une organisation DevOps efficace ?
Sommaire
Introduction
Dans toute industrie pilotée par le logiciel, on entend beaucoup parler d'Intégration Continue (CI) qui, en fait,
est un paradigme relativement ancien. Et ces dernières années, la Livraison Continue (CD)
semble être devenue le nouvel objectif de la plupart des organisations. Nous partageons ce besoin d'un
pipeline plus rationalisé et plus rapide, de l'idée jusqu'à la consommation.
Figure 1 : CI, CT et CD
Chacun peut constater que les Tests Continus (CT) sont rarement mentionnés, comme s'ils
étaient une conséquence normale ou une simple composante des deux autres pratiques. Nous pensons au contraire que les CT sont clairement un élément indispensable du tableau ! Tout du moins si votre
objectif est de livrer des solutions et des produits de haute qualité et de rendre votre activité durable sur le long terme.
CI et CD
Nous présentons ici les notions de base de l'Intégration Continue et de la Livraison Continue.
La CI vise à accomplir ce qui suit :- Détecter chaque fois qu'une partie d'un produit a été modifiée
- (Re)construire et (ré)assembler un produit à partir de ses composants
- Installer cet assemblage dans des environnements où il peut être exécuté ou utilisé
- Surveiller ces étapes et faire remonter les succès/échecs aux bonnes parties prenantes
La CD vise à accomplir ce qui suit :
- Détecter chaque fois qu'un produit est prêt
- Identifier et préparer les environnements cibles
- Installer (ou livrer) le produit
- Communiquer avec les bonnes parties prenantes, y compris les utilisateurs
- Déclencher les processus post-installation (marketing, support, maintenance, supervision)
Beaucoup voient la CI comme le moyen de faire avancer les choses et la CD comme un bénéfice potentiel tiré de
la CI. Mais ce n'est pas toute l'histoire.
Depuis le moment où vous modifiez une partie de votre produit jusqu'au moment où vous le mettez en production ou le livrez
aux consommateurs, un ensemble de vérifications et de validations doit avoir lieu. Vous devez
répondre à certaines questions :
- Votre produit fonctionne-t-il toujours comme prévu ?
- Est-il toujours sûr à utiliser ?
- La nouvelle fonctionnalité apporte-t-elle une réelle valeur aux utilisateurs ?
- Sommes-nous prêts à le supporter ?
- Sommes-nous en phase avec nos campagnes marketing ?
Pipeline de livraison
Une autre notion utile, devenue plus répandue, est celle de pipeline de livraison.
Dit simplement, c'est le processus que subit un produit chaque fois qu'il doit être livré à vos utilisateurs et clients. Définir un pipeline de livraison, c'est comme pour tout processus :- Définir les étapes
- Déterminer les conditions permettant de passer d'une étape à l'autre
- Identifier les tâches de chaque étape
- Définir les conditions (pré et post) et les résultats attendus de ces tâches
- Et ainsi de suite
- Construire et intégrer au sein du système (build & intégration système)
- Tester les fonctions (tests de qualité produit)
- Vérifier que l'utilisation est sûre et sécurisée (vérification sécurité/sûreté)
- Tester l'intégration avec les environnements environnants (tests de bout en bout)
- S'assurer que les utilisateurs en retirent une réelle valeur (tests de recette utilisateur)
- Si nécessaire, vérifier qu'il est robuste, scalable...

Figure 2 : Un pipeline de livraison type
Notez que le pipeline de livraison n'impose pas l'ensemble des environnements de test. Les tests d'intégration système et fonctionnels produit peuvent être réalisés sur un environnement de QA, tandis que les tests de sécurité/sûreté, de bout en bout et de recette utilisateur peuvent être réalisés sur un environnement de staging, et les tests de type '-ités' seraient réalisés sur un environnement de pré-production.

Figure 3 : Correspondance entre les étapes de livraison et les environnements
Tout dépend de l'ensemble des conformités
que vous devez atteindre (IEC 62304 & ISO 14971, FDA Title 21 CFR Part 11, ISO 14971, et IEC
60601, ISO 26262, DO-178C & DO-254), de vos propres contraintes organisationnelles, et de vos moyens
financiers.
Et les CT dans tout ça ?
Un pipeline de livraison réalise donc 4 types de tâches :- Mettre en place et nettoyer les environnements si nécessaire
- Installer les produits
- Vérifier et valider
- Prendre des décisions ou aider à les prendre entre les étapes
À chaque étape, vous devez effectuer des tests spécifiques pour vous assurer que votre produit, nouveau ou modifié, répond bien à ses attributs de qualité et aux valeurs attendues.
Chaque fois que vous souhaitez livrer une nouvelle version du produit, vous devez vous assurer qu'elle améliore, ou du moins maintient, le même niveau de qualité et de sécurité perçues que la version précédente, tout en apportant de nouvelles fonctionnalités ou en améliorant les existantes.
Voici ce que les Tests Continus apportent :
- Tester et mesurer les niveaux de qualité sans relâche
- Le faire aussi rapidement et facilement que possible
- Fournir aux décideurs les bonnes informations pour piloter le pipeline de livraison
- Automatiser la décision chaque fois que possible

Figure 4 : Étapes des tests fonctionnels
Notez que la mise en place de l'environnement et le nettoyage peuvent être extrêmement chronophages et coûteux selon le type de produit concerné (un simple logiciel n'est pas aussi complexe qu'une automobile, par exemple...).
Mais l'enjeu est de réduire la durée de chacune de ces étapes.
Cela permet de les franchir plus souvent. Le mot d'ordre et la pratique clé ici sont donc l'automatisation.
Chaque étape est un test
Toute étape (y compris la mise en place d'un environnement), lorsqu'elle ne nécessite pas trop d'interventions manuelles, devrait être automatisée et son résultat vérifié comme pour tout test.
Par exemple, si vous vous appuyez sur des machines virtuelles (VM), vous pouvez utiliser Vagrant pour les démarrer, puis effectuer quelques vérifications pour vous assurer qu'elles sont bien opérationnelles. Lors de l'installation du produit, vous pouvez utiliser ANSIBLE pour le déployer et le configurer, puis vérifier certains fichiers. Vous pouvez ensuite lancer des tests de fumée de base à l'aide de Robot Framework ou SOAPUI pour les API, et ainsi de suite. Vous devez utiliser plusieurs outils et frameworks de test automatisé au sein d'une seule et même étape de votre
pipeline de livraison.
C'est là qu'intervient XQual.La capacité de XQual à lancer tout type de tests et à interpréter et récupérer les résultats facilite considérablement la gestion d'un pipeline de livraison.
Vous concevez vos campagnes pour chaque étape. Une fois exécutée, chaque session de test fournit les résultats des tests. Ceux-ci servent à décider de la marche à suivre pour l'étape suivante.
Vous utilisez un outil de CI tiers pour orchestrer les différentes campagnes.
Le XContinuousIntegration de XQual est utilisé par ces outils de CI pour lancer les différentes campagnes et en récupérer les rapports et les résultats de test.

Figure 5 : Intégration de XContinuousIntegration
XContinuousIntegration fournit tous les rapports détaillés et ajoute un fichier de synthèse au format JUNIT que les différents outils de CI peuvent analyser. C'est l'outil de CI qui reste seul décisionnaire de la gestion de la boucle (par exemple, pour savoir si l'étape suivante peut démarrer ou si l'étape en cours doit être arrêtée).
Ce modèle permet de découpler l'implémentation de vos étapes de la boucle de CI principale.
Les résultats détaillés sont gérés dans la base de données de XQual. Tous les résultats sont consolidés
grâce aux KPI intelligents de XQual
Quel que soit l'outil de gestion de tests que vous utilisez, l'automatisation est un facteur clé si vous voulez tenir un cycle de
livraison plus rapide.XQual prend en charge près de 90 frameworks de test automatisé et vous pouvez en ajouter un nouveau en quelques heures seulement. Mais rien ne se passera si vous n'investissez pas dans l'automatisation des tests.

Figure 6 : La pyramide de tests
Compte tenu du large éventail d'outils parmi lesquels choisir pour construire votre pyramide de tests, bénéficier
d'une plateforme d'orchestration de tests centralisée et polyvalente comme XQual est indispensable pour réussir.
Conclusion :
LORSQU'IL S'AGIT DE TRANSFORMER UNE ORGANISATION PILOTÉE PAR LE LOGICIEL VERS LE DEVOPS, IL FAUT VEILLER À
CONSTRUIRE LES BONNES PRATIQUES ET LA BONNE CULTURE. MAIS TRANSFORMATION N'EST PAS RÉVOLUTION.
LES ACTIVITÉS DE TEST SONT AU C¼UR DE LA LIVRAISON CONTINUE. VOUS NE POUVEZ PAS CRÉER, CONSTRUIRE ET LIVRER
PLUS VITE, SI VOUS NE TESTEZ PAS PLUS VITE.
L'AUTOMATISATION EST ESSENTIELLE, TOUT COMME L'INTÉGRATION DES ACTIVITÉS DE TEST DANS LE FLUX DE LIVRAISON.
VOUS DEVEZ VOUS APPUYER SUR LES PRATIQUES ET OUTILS DE TEST QUI SIMPLIFIENT LA TRANSFORMATION. XQUAL EST UN
ACTEUR CLÉ POUR CELA.
Références :
1 DevOps : https://en.wikipedia.org/wiki/DevOps
2 Tests Continus (CT) : https://en.wikipedia.org/wiki/Continuous_testing
3 Intégration Continue (CI) : https://en.wikipedia.org/wiki/Continuous_integration
4 Livraison Continue (CD) : https://en.wikipedia.org/wiki/Continuous_delivery
5 Agile : https://agilemanifesto.org/
1 DevOps : https://en.wikipedia.org/wiki/DevOps
2 Tests Continus (CT) : https://en.wikipedia.org/wiki/Continuous_testing
3 Intégration Continue (CI) : https://en.wikipedia.org/wiki/Continuous_integration
4 Livraison Continue (CD) : https://en.wikipedia.org/wiki/Continuous_delivery
5 Agile : https://agilemanifesto.org/
Figures :
Figure 1 : CI, CT et CD
Figure 2 : Un pipeline de livraison type
Figure 3 : Correspondance entre les étapes de livraison et les environnements
Figure 4 : Étapes des tests fonctionnels
Figure 5 : Intégration de XContinuousIntegration
Figure 6 : La pyramide de tests
Figure 1 : CI, CT et CD
Figure 2 : Un pipeline de livraison type
Figure 3 : Correspondance entre les étapes de livraison et les environnements
Figure 4 : Étapes des tests fonctionnels
Figure 5 : Intégration de XContinuousIntegration
Figure 6 : La pyramide de tests