modèles de fabrication

publicité
TOY Stratégie de TNR TOY
Nom Giacopelli Vincent
Date 02/04/2013
© Groupe CGI inc. CONFIDENTIEL
Sommaire
• Objectifs
• Activités TNR dans TOY
• Planning
•
•
•
•
• projet à moyen terme
• projet 2013
Environnement et organisation
Outils
Analyse de risque TOY
• Du prototype
• De la fabrication
Stratégie
• TNR sur prototype
• TNR sur générateurs
2
Objectifs
• L’objectif est de mettre en place un patrimoine de tests de non
régression pour assurer la qualité TOY des versions mineures
correctives et des versions majeures sur les périmètres suivants :
• Prototype
• Modèles de fabrications (# Générateur)
• Contexte :
• Versions majeures tous les trimestres
• Versions mineures hebdomadaires ou bi-mensuelles
• Déploiement sur des VM (1 par type de projet)
• Enjeux
• Déploiement de l’outil au niveau CGI monde
3
Activités TNR dans TOY
Conception métier avec
l’outil de prototypage
Développement des
modèles de
fabrication pour la
technologie cible
(Java, .NET, iOS,
Android, …)
+
Définition des règles
métier spécifiques
Prototype
Application
complète
TNR
Fabrication
Code généré pour la mécanique standard
(80%)
TNR
4
Modèle de
Modèle
de de
Modèle
fabrication
Modèle
fabrication
fabrication de
Modèle de
fabrication
Androiid
fabrication
Modèle de
iOS
.Net
fabrication
Java
Code
développé
(20%)
Développement
règles métier
spécifiques
Planning Projet à moyen terme
2011 Oct
TOY Product Roadmap
TOY release 1.0
(July 2012)
2012 Oct
2013 Oct
Initial release (Java environment)
V2.0 : Mobile environments (iOS + Android)
Prototyper and User Interface enhancements, Assistant
V2.1 : .NET models
V2.2 : Spring / Hibernate Java models
TOY release 2.0
(1st January 2013)
TOY release 3.0
(1st January 2014)
2014 Oct
Workflow integration
Protototype worklow processing
Prototype business organizational structures
Workflow models for external processors
TOY release 4.0
( 1st January 2015)
Rule engine integration :
Prototype advanced business rules processsing
Models for Rule server engines (JRULES, DROOLS)
Launch of TOY Center
TOY Center
Business Support
TOY Center extension
Hosting for other countries
5
Planning Version 2013
TOY
Avril 2013
Juillet 2013
Octobre 2013
2.1.0
2.2.0
2.3.0
Décembre 2013
0
Layer .Net ASP
TOY Product Roadmap
1.0.0
1.2.0
Layer .Net WPF
1.1.0
1.0.0
Layer .DLL
Layer .iOS
Layer DOC
1.3.0
1.2.0
Version majeure
Layer JPA
Layer JSF2
Layer SQL
2
1.1.0
1
1
1.4.0
2
3
1.5.0
1.4.0
6
Version mineure
Gestion des versions
Version majeure : 2.x.0 (prototype) 1.x.0 (layer)
• Fréquence : Tous les 2 ou 3 mois
• Contenu :
•
•
•
Version du prototype (évolution et correctifs)
Versions sur les générateurs déjà implémentés (évolutions et correctifs de layer)
Version 1.0.0 pour un nouveau layer
Les TNR sont à exécuter sur le prototype et sur les layer déjà implémentés
Version mineure : 2.2.x (prototype) 1.1.x (layer)
• Fréquence : Hebdomadaire ou bimensuelle
• Contenu :
•
•
Version du prototype (mais pas obligatoire, correctifs ou évolutifs)
Version sur des générateurs existants (mais pas obligatoire, correctifs et évolutifs)
 Les TNR sont à exécuter sur le prototype et/ou sur les layer
 Concentrer les évolutions et correction sur les versions majeures
 Réduire les versions mineures aux correctifs et évolutifs urgents (fréquence à
réduire ?)
 Effectuer des TNR exhaustifs sur les versions majeures. Réduire le risque de
régression sur les versions mineures.
7
Environnements et Organisation
Utilisateurs : Demande de correctifs ou
d’évolutions par ticket sous Mantis
Développement : Equipe Toy Lab
• Poste de travail Développeur
• Référentiel source hébergé sur la forge
(SVN)
Demande de
modification
Déploiement
Bug et évolution
Tests :
• Test unitaire fait sur le poste de
développement
• Tests d’intégration et de non régression à
faire sur la VM de tests (Nouveau)
Tests de non
régression
Développement
sur le Prototype
Test d’intégration
Développement
sur les
générateurs
Test unitaire
Déploiement : Equipe Toy Lab
• Serveur centralisé
• 1 VM de test
• puis 4 VM de Production (1 VM par
projet)
Utilisateurs TOY
TOY Lab
Equipe Test
8
Outils
PIC
Intégration des modules développés sur chaque PC par Hudson
Tests manuels
Outil ALM (Connect) https://quality-center.global.logica.com/qcbin/start_a.jsp
Tests automatiques :
•Jtest :
Automatisation des TU (Junit), revue de code
•Selenium : Automatisation des tests fonctionnels
•QTP :
Automatisation des tests fonctionnels, suite HPQC (connect)
Proposition d’un POC pour le choix de l’outil
Comparaison de fichier de codes sources
•JAVA: codes source java(J2EE) : Comparaison du code généré (Vn et Vn+1) par WINDIFF ou éclipse.
•.Net : se base sur plusieurs technologies (Visual studio). Comparaison du code généré (Vn et Vn+1) par WINDIFF
• ANDROID : un système d’exploitation fondé sur un noyau Linux, il comporte une interface spécifique, développement en
JAVA. Comparaison du code généré (Vn et Vn+1) par WINDIFF
•IOS : Syst. d’exploitation pour Mobile. Outil de comparaison ??
Gestion des anomalies
•Utilisation du Mantis actuel (http://toy.groupinfra.com/mantis/account_page.php)
Plateforme de tests
•VM spécifique pour les tests d’intégration, manuels, automatique, comparaison de source :
http://fr-wst-vm-0862.groupinfra.com:8080/toy/
9
Analyse de risque du prototype
Extraction des risques par WIKI Toy et du fichier « TOY Features Fonctionnalités.xlsx »
Analyse des risques faite avec la participation de J. Lacour
Critères : Fréquence et impact sur un projet
81 exigences/risques fonctionnels ont été identifiés sur le prototype, avec la répartition
suivante sur les criticités :
RISQUES PROTOTYPE
Volume
52
15
3
11
81
03-Impératif
02-Important
01-Intéressant
00-Ignoré
Total
Répartition
64%
19%
4%
14%
100%
Leur couverture nécessite 267 cas de tests (126 après réduction),
CAS DE TESTS PROTOTYPE
03-Impératif
02-Important
01-Intéressant
00-Ignoré
Total
Effort de tests
181
38
4
7
230
Effort réduit
100
18
3
1
122
Répartition
82%
15%
2%
1%
100%
Pas de contraintes techniques fortes identifiées à ce jour (performance, sécurité,
navigateur…)
Détails :
10
Analyse de risque de la fabrication
Extraction des risques par WIKI Toy et du fichier « TOY Features Fonctionnalités.xlsx »
Analyse des risques faite avec la participation de J. Lacour
Critères : Fréquence et impact sur un projet
19 exigences/risques ont été identifiés lors de la génération du code à partir du prototype,
avec la répartition suivante sur les criticités :
CAS DE TESTS GENERATEUR
Criticités différentes suivants les layers
03-Impératif
02-Important
01-Intéressant
00-Ignoré
Total
Layers impératifs
Effort de tests
9
4
6
0
19
Effort réduit
9
4
6
0
19
Autres Layers
Layer Java Jweb + JSF2 + SQL
Layer .iOS et Androïd
Layer Java Jweb + JSF2 + JPA
Layer .net WPF (Juillet 2013)
Layer .net ASP (Avril 2013)
Layer .DDL et DOC
Détails :
11
Répartition
47%
21%
32%
0%
100%
Stratégie des TNR sur Prototype (1/2)
Initialiser les TNR avec des tests manuels.
Application modèle : L’application DEMO
Version mineure: Une seule campagne de test est à prévoir (probabilité
faible de la présence d’une régression)
Objectif : Avoir une campagne de TNR restreint
• Devant se dérouler sur un délai court (0,5 ou 1 jour suivant l’impact de
la version).
• Restreinte à 15-30 cas de tests ciblés sur les risques impératifs et
ciblés sur les fonctions impactés par les évolutions/correctifs
A terme, ces tests manuels pourront être automatisés pour augmenter la
couverture des tests sans impact sur le délai de la campagne
12
Stratégie des TNR sur Prototype (2/2)
Initialiser les TNR avec des tests manuels.
Application modèle : L’application DEMO
Version majeure: 2 campagnes de test (100% puis 25%)
Couvrir l’ensemble des risques impératifs et ciblés
Effort complet
: Référentiel de 267 cdt
• 1er campagne : 8 jours de tests manuels (267 cdt)
• 2nd campagne : 2 jours (65 Cdt=25%)
Effort réduit
: Référentiel de 126 cdt
• 1er campagne : 4 jours (126 cdt)
• 2nd campagne
: 1 jour (35 cdt=25%)
 Afin de limiter le délai et la charge, nous proposons d’exclure une campagne sur
l’effort de TNR complet, et de se restreindre uniquement sur l’effort de tests réduit.
A terme, ces tests manuels pourront être automatisés pour réduire le délai de la
campagne
13
Stratégie des TNR sur Générateurs
Contrôle statique du code généré :
• Comparaison de fichier : Comparaison des exécutables de la Vn initiale
avec la Vn+1 modifiée par les développeurs
Significatif si peu de modification (cas des versions mineures)
• Code Review par des outils tels que Jtest (intégré dans la PIC)
Contrôle dynamique:
• Automatisation de scénarios de tests fonctionnels sur l’application
générée (Application DEMO)
• Java
• .net
A terme sur mobile (périmètre de l’automate ?)
• Android
• .Ios
14
POC automatisation des TNR
Choix de l’outil :
• Selenium
• Selenium est un outil libre de droit permettant d’automatiser des tests
fonctionnels et de les rejouer à l’identique.
• Retour d’expérience : Selenium est très efficace pour s’interfacer avec des
applications Web et simuler leur utilisation
• Selenium n’adresse pas les applications mobiles (émulateur sur client lourd)
• QuickTest Pro QTP
• QTP est l’automate de test de HP qui s’intègre dans la suite ALM.
• QTP propose des Addins permettant de s’interfacer facilement. Il possède ainsi
des AddIns Ajax, .Net, java, SAP, Citrix
• QTP devrait pouvoir adresser des applications mobiles (émulateur sur client
lourd)
• QTP a déjà été mis en place sur une PIC utilisant Hudson
• JTEST : Pas de retour d’expérience. Utilisé plutôt en test unitaire,
modulaire (Junit).
15
POC automatisation des TNR
Objectif du POC
A partir d’un scénario TNR de Toy :
• Confirmer la faisabilité de l’automatisation sur une même application
générée par les principaux layers
• Java
• .Net
• .iOS et Androïd
• L’estimation du coût de l’automatisation des TNR résultant prendra en
compte :
• La réalisation du socle technique
• La réalisation des scripts
• L’exécution d’une campagne V0
• Le coût de la maintenance
16
Notre engagement
Nous réalisons chaque mandat dans
un seul but : contribuer au succès
de nos clients.
Téléchargement