© CGI Group Inc. 2013 Offre FlowUnit by CGI Tests automatisés de flux de données...
-
Upload
dorothee-salmon -
Category
Documents
-
view
111 -
download
3
Transcript of © CGI Group Inc. 2013 Offre FlowUnit by CGI Tests automatisés de flux de données...
© CGI Group Inc. 2013
Offre FlowUnit by CGI
Tests automatisés de flux de données inter-applicatifs
2
Agenda
Problématiques et enjeux
Solution et fonctionnalités
Concepts
Exécution et rapports
Cas d’utilisation
Perspectives
Références
Démo et outils en ligne
3
Problématique et enjeux
• Les projets de plateforme d’échange et d’intégration d’applications font souvent appel à une multitude de technologies :
• Pour le transport : fichiers locaux, FTP, JMS, Web Services, …
• Pour le format des données : XML, plat délimité, plat à largeur fixe, …
• Pour l’intégration de systèmes : TIBCO, webMethods, …
• Pour prendre en charge certaines spécificités : compression, découpe, …
• La qualité des développements peut dans certains cas être critique (factures, logistique) et l’exécution de tests de conformité / non régression en amont de la mise en production est indispensable.
• L’exécution manuelle des tests peut s’avérer fastidieuse, risquée, coûteuse et nécessiter une connaissance poussée de la plateforme.
• L’automatisation des tests de flux s’inscrit dans une démarche d’industrialisation, avec des gains importants en temps et qualité.
4
Solution et fonctionnalités
FlowUnit :
• Outil d’automatisation des tests spécialisé dans les flux de données
• Basé sur des solutions open-source• Java 1.6 et librairies Apache Commons
• Maven 2.2.1/3.0.x
• JUnit 3.8.2
• XMLUnit 1.3
• Configuration modulaire basée sur des fichiers XML• Réutilisation de composants possible
• Paramétrage selon l’environnement cible
• Validation par XML Schema
5
Solution et fonctionnalités
Contrôle de la non-régression• Comparaison entre flux de données effectifs et flux attendus
• Identification des problèmes précis
• Génération de rapports de tests
Fonctionnement en boite noire• Comparaison en masse de nombreux cas de tests (attendus/effectifs)
• Obtention de la sortie effective à partir d’un flux d’entrée
Exécution autonome ou sur un serveur d’intégration continue
Prise en compte des spécificités des formats de données• XML, fichier plat délimité, fichier plat à largeur fixe, texte seul
• Comparateurs adaptés et paramétrables
• Remontée d’erreurs précises et ciblées
6
Concepts – Vue d’ensemble
Hiérarchie des tests• Campagne de test : ensemble de suites de test (ex : échange)
• Suite de tests : ensemble de cas de test (ex : demi-flux)
• Cas de test : comparaison attendu/effectif (ex : cas nominal, cas d’erreur)
Notion de connecteurs• Transformation des données d’entrée en données comparables (effectives)
• Déclenchement des flux inter-applicatifs et récupération des sorties
• Prise en charge de nombreux transports (fichier, FTP, JMS, SOAP, etc.)
Notion de formats• Définition de la façon dont la comparaison est effectuée
• Possibilité de nommer des champs ou d’en ignorer pour la comparaison
• Prise en charge de nombreux formats (XML, délimité, largeur fixe, etc.)
7
Concepts – Hiérarchie et héritage
3 niveaux de configuration : global, campagne, suite de tests• Découpage en fichiers distincts, inclus explicitement ou automatiquement
• Réutilisation des connecteurs/formats possible par héritage
8
Concepts – Déroulement d’un cas de test
Une chaine de connecteurs transforme les données d’entrée (input) en données effectives (actual).
Les données effectives sont comparées aux attendus (expected) pour générer une liste de différences.
Fichier JMS
Web Service
Bases de données
FTP
9
Exécution et rapports
•Exécution autonome• Adaptée à l’utilisation sur un poste développeur
• Package « tout-en-un » : Maven inclus, dépendances fournies
• Exécution par simple script (run.bat / run.sh)
• Génération de rapports HTML datés
• Possibilité d’exécuter les tests depuis Eclipse
•Exécution sur un serveur d’intégration continue (ex : Jenkins)• 2 packages fournis :
• Maven et les dépendances : à installer sur le serveur
• Projet exemple FlowUnit : à commiter sur un dépôt de sources
• Récupération du projet et exécution de Maven par le serveur
• Génération de rapports HTML et historisation des résultats
• Exécution planifiée ou sur commit possible
• Notification en cas d’échec d’un test
10
Exécution et rapports
En mode autonome Dans Eclipse Dans Jenkins
11
Exécution et rapports – Mode autonome
Statistiques par suite de tests
Statut des cas de test de la suiteet détail des échecs
12
Exécution et rapports – Dans Jenkins
Gestion
Code
Intégration
Tests
Référentiel
Partage
Intégration dans Project Factory
https://cgi.it-toolbox.fr/redmine/ projects/project-factory
13
Exécution et rapports – Dans Jenkins
Projet
Statut dernière exécution(ici « des tests ont échoué »)
Météo du projet(tendances de stabilité)
Lancer une exécution
Liste des projets
14
Exécution et rapports – Dans Jenkins
Accès aux rapports détaillés
Graphique de tendance
Historique des exécutions
Détail d’un projet
15
Exécution et rapports – Dans Jenkins
Accès au détail d’un cas de test
Statuts des tests de la suite
Détail d’une suite de tests
16
Exécution et rapports – Dans Jenkins
Détail d’un cas de test
Détail des erreurs
Possibilité d’ajouter des notes
17
Cas d’utilisation – Ex. 1 : tests unitaires / ponctuels• Besoin
• Un développeur veut vérifier la conformité de son développement en comparant plusieurs fichiers de sorties avec les sorties attendues
• Solution• FlowUnit : comparaison massive de fichiers (sans connecteurs)
• Mise en place : 1h de formation rapide et création de la 1ere configuration
• Templates de configuration existants
• Utilisation : mode autonome, 5 min pour lancer et exploiter les rapports
• Gain• Réutilisation et modification de la configuration à volonté
• Tests rapides et automatisés
• Génération de rapports de tests archivables
18
Cas d’utilisation – Ex. 2 : tests de non-régression / intégration• Besoin
• Un projet veut vérifier régulièrement la non-régression des développements de l’équipe tout au long du projet
• Solution• FlowUnit : déclenchement des flux grâce aux connecteurs
• Dépôt de sources + serveur d’intégration continue : exécution des tests à chaque commit, ou manuellement lorsque nécessaire
• Mise en place : 3h de formation pour le configurateur, 1h pour les autres + temps de configuration fonction de la complexité du projet
• Utilisation : lancement en 1 clic, accès aux rapports de tests à tout moment
• Gain• Pas besoin de dédier une journée aux tests régulièrement
• Configuration pouvant être enrichie au fur et à mesure de l’avancement
• Suivi de l’évolution des tests, remontée d’alertes, réactivité
19
Cas d’utilisation – Ex. 3 : projet complet
• Besoin• Un projet a besoin de gérer tout son cycle de vie et souhaite disposer d’une
solution « clé en main »
• Solution• Offre Project Factory : plateforme projet industrialisée
• Redmine : gestion du projet et des tâches, tableau de bord général
• SVN + Jenkins + FlowUnit : intégration continue et tests automatisés
• Nexus : référentiel de librairies et templates de projets réutilisables
• TestLink : gestion des campagnes de recette interne et externe
• Gain• Ensemble d’outils fortement intégrés et prêts à l’emploi
• Suivi de l’état d’avancement du projet au fil de l’eau
• Visibilité pour chacun des acteurs et collaboration facilitée
20
Perspectives
•Enrichissement des fonctionnalités• Nouveaux connecteurs
• Meilleure détection des décalages lors de la comparaison
• Préparation et nettoyage avant/après chaque cas de test (setUp/tearDown)
•Interface de configuration• Application web J2EE facile d’utilisation pour les nouveaux utilisateurs
• Gestion de différents projets, campagnes, suites et cas de tests
• Intégration avec d’autres services de Projet Factory (Jenkins, TestLink)
•Déploiement de la solution• Mise en place du produit sur d’autres projets (clients et internes)
• Prise en compte des remarques des utilisateurs
21
Perspectives
IHM en version 0.2
Démo: https://demo.it-toolbox.fr/flowunit-ui
22
Références
•Projet de plateforme d’échanges « Oxybus »• Basée sur webMethods + framework spécifique Oxylane
• Flux inter-applicatifs internes et B2B
•Automatisation des tests avec FlowUnit• Framework B2B (tests techniques) – 38 cas de test
• Flux B2B (tests fonctionnels) – 15 flux, 2 à 14 cas par flux
• Stress tests (volumétrie) – 2 flux, 5 à 6 cas par flux
•Mise en place de Jenkins (serveur d’intégration continue)• Exécution des tests à la demande
• Tests sur plusieurs environnements (DEV71, DEV82, INT, PPRD)
• Tableau de bord centralisé (architecture master/slave)
•Actions de formation et transfert de compétences
23
Références
• Plateforme d’échange interne Auchan• Basée sur Tibco
• Flux inter-applicatifs internes : Base de données et JMS.
• Automatisation des tests avec FlowUnit• Tests de non-régression à chaque re-livraison du centre de développement
• En cours de déploiement sur l’ensemble des flux.
• Utilisation de l’IHM
• Mise en place de Jenkins• Exécution des tests à la demande
• Actions de formation et transfert de compétences
24
Démo et outils en ligne
FlowUnit s’inscrit dans la démarche CGI.
Centre de compétence & Outillage SOA
BUILD Tools
GénérateurEchanges et Services
Bibliothèque accélérateur ESB/SOA
Packaging et déploiement
Catalogue de templatesAutomatisation installations
soclePIC
REPO, TEST & RUN Tools
Référentiel de services & Outil de supervision
Audit / Planificateur Gestion d’erreurs Rapports
Administration des flux Supervision Technique Transcodifications
25
Démo et outils en ligne
Visitez notre sitehttps://it-toolbox.fr
Téléchargez cette présentation sur notre
WIKI !
26
Merci