34
1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Embed Size (px)

Citation preview

Page 1: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

1

MA

G-M

OD

.PPT-G

EN

-158

-v1.0

COMPIL

3 expériences du Scripting

Page 2: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Sommaire

25 novembre 2010

COMPIL 2

Exemples d’usage du scripting à Magellium

1) Présentation de la société MAGELLIUM

2) Le Scripting comme outil d’exécution et de rédaction de plan de test et de validation (MAGVALID)

3) Le Scripting comme outil indispensable des processus d’intégration continue

4) L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements INGRID

5) Questions?

Page 3: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Sommaire

25 novembre 2010

COMPIL 3

Exemples d’usage du scripting à Magellium

1) Présentation de la société MAGELLIUM

2) Le Scripting comme outil d’exécution et de rédaction de plan de test et de validation (MAGVALID)

3) Le Scripting comme outil indispensable des processus d’intégration continue

4) L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements INGRID

5) Questions?

Page 4: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

COMPIL 4

25 novembre 2010

Magellium SAS créé en 2003 2009 :

Reprise de la branche Défense de Générale d’Infographie

Création de Magellium Limited (UK)

Reprise de GeoTexel Aujourd’hui :

Capital : 250.000 euros Détenu par les fondateurs Fonds propres : 1.000.000

euros CA 2009 : 7,4 M€ 130 personnes

Habilitation Défense Agrément Recherche (R&D

interne > 15%) Organisme agréé de formation Statut Gazelle (PME de

croissance)

Espace

Environnement& Transport

Santé

Défense & Sécurité

Ingénierie, systèmes & Services

Notre marché

Page 5: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Sommaire

25 novembre 2010

COMPIL 5

Exemples d’usage du scripting à Magellium

1) Présentation de la société MAGELLIUM

2) Le Scripting comme outil d’exécution et de rédaction de plan de test et de validation (MAGVALID)

3) Le Scripting comme outil indispensable des processus d’intégration continue

4) L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements INGRID

5) Questions?

Page 6: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

COMPIL 6

25 novembre 2010

Problématique

Validation d’un produit Garantie de la cohérence entre le produit et les spécifications Évaluation de la robustesse du produit (tests en erreurs) Performance et qualité des résultats

1ère étape : Rédaction d’un plan de validation Éléments à contrôler Type de test (nominal, en erreur, cas limite, ...)

2ème étape : Mise en œuvre des tests Environnement des tests Actions (exécutables, paramètres) Données en entrée Données produites

3ème étape : Rédaction d’un rapport d’exécution

nème étape : Gestion des évolutions du logiciel (non régression)

Page 7: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

COMPIL 7

25 novembre 2010

Difficultés rencontrées

1ère étape : Rédaction d’un plan de validation Beaucoup de répétitions Changement de qualification

2ème étape : Mise en œuvre des tests Répétition des actions qui demande beaucoup de concentration Trop de temps à attendre la fin du déroulement des tests Analyse complexe des résultats

3ème étape : Rédaction d’un rapport d’exécution Doublons des définitions de tests avec le plan de validation

nème étape : Évolutions du logiciel (non régression) Reprise des tests de la version précédente, sans oubli Vérification de l’absence de donnée parasite Comparaison des résultats avec ceux de la version précédente Maintien de la cohérence entre les tests déroulés et les

documents

Page 8: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

COMPIL 8

25 novembre 2010

Objectifs de MagVALID

Fonctionnalités : Automatisation du déroulement des tests

Vérification et comparaison automatique des résultats

Génération d’un rapport détaillé (HTML, XML, Word, PDF)

Rédaction des plan de validation et rapport d’exécution

Avantages : Gain de temps

Pas d’oubli de tests

Ajout d’un maximum de tests

L’opérateur focalise son attention sur : La préparation des fiches magVALID lors de la 1ère validation

L’analyse des résultats incorrects

La correction des bugs

Page 9: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

COMPIL 9

25 novembre 2010

Caractéristiques techniques

Ensemble de modules Python avec des tests types prédéfinis Fonctions d’exécution

Fonctions de comparaison

Fonctions d’accès et d’affichage

Utilisable sur les environnements UNIX, UNIX-like (Linux, Cygwin) et Windows

Analyse aisée des déroulements des tests par le biais d'un rapport Html

Utilisation possible de magLaTeX pour la génération des rapports au format PDF via LaTeX

Export au format RTF pour Word

Page 10: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Fonctionnement global

COMPIL 10

25 novembre 2010

Donnéesen entrée

Donnéesde référence

magVALID[python]

Rapport

[RTF]

Rapport

[PDF]Rapport

[HTML]Fiches[XML]

Exécution des fiches de tests

Génération des rapports

À préparer

Page 11: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Génération du rapport

COMPIL 11

25 novembre 2010

MagVALID[python]

Plan devalidation

[PDF]Cahier devalidation

[PDF]

Rapportd’exécution

[RTF]

Rapportd’exécution

[PDF]Rapport

d’exécution

[HTML]

Avec exécution

Sans exécution

Description des tests avec leurs résultats d’exécution

(OK, Non OK)

Description des tests

Même document que le rapport d’exécution, sans les résultats (à remplir lors des recettes)

Fiches[XML]

Page 12: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

Exemple de rapport

COMPIL 12

25 novembre 2010

Prise en compte de modèle de document

(Word, Latex)

Page 13: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Sommaire

25 novembre 2010

COMPIL 13

Exemples d’usage du scripting à Magellium

1) Présentation de la société MAGELLIUM

2) Le Scripting comme outil d’exécution et de rédaction de plan de test et de validation (MAGVALID)

3) Le Scripting comme outil indispensable des processus d’intégration continue

4) L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements INGRID

5) Questions?

Page 14: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

COMPIL 14

25 novembre 2010

Le SCRIPTING comme outil indispensable de l’Intégration

Continue Les processus d’INTEGRATION CONTINUE nécessitent la mise

en œuvre de moyens permettant l’automatisation des tâches de génération d’un produit logiciel.

Exemple des tâches de génération d’un produit : Rapatriement des codes sources,

Compilation des modules,

Exécution des tests unitaires,

Analyse qualité des sources,

Packaging produits,

Génération de la documentation,

Emission de rapports d’exécution,

Page 15: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

COMPIL 15

25 novembre 2010

Le SCRIPTING comme outil indispensable de l’Intégration

Continue Le processus est complexe car :

Il met en œuvre un très grand nombre d’outils logiciels : cvs, snv, sourcesafe, java, make, gcc, maven, javadoc…

Dans des configurations extrêmement variées Dépendant des types de projets, des technologies utilisées, des habitudes

d’usage de la société, des plateformes de développements de destination…

Solutions possibles Uniformiser les méthodologies de production

Ok mais que faire de l’existant ? Comment s’assurer que la solution s’appliquera aux besoins futurs ?

Développer un outil IHM « extensible » prenant en compte l’ensemble des paramètres de configuration possible

Chaque cas particulier nécessiterait une mise à jour de l’outil… Prise en main des différentes IHM délicate

Ensemble de scripts à déclencher. Chacun des scripts décrivant des procédures particulières, adaptées à des besoins propres, à partir de fonctions génériques

Prise en compte des erreurs ? Affichages des rapports d’exécution ? Problèmes d’ergonomie

Page 16: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

COMPIL 16

25 novembre 2010

Le SCRIPTING comme outil indispensable de l’Intégration

Continue La solution adaptée est mixte :

Un logiciel d’accueil extensible (CruiseControl, Hudson, …) permettant :

De définir les étapes du processus

De déclencher à échéance régulières la chaîne de génération

D’accéder aux rapports d’exécutions

De définir quelques tâches génériques

Des langages de scripts plus ou moins spécifiques à la générations de logiciels : make, shell, ant, … permettant de spécialiser l’exécution des tâches de générations

Focus sur la solution HUDSON / ANT

Page 17: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Le SCRIPTING comme outil indispensable de l’Intégration

Continue HUDSON

Application WEB (facilité de déploiement)

Définition de « JOBS »

Configuration des étapes du jobs

Définition du type d’étape, du chaînage, ..

Plug-in adaptés aux outils les plus utilisés

Séquencement des jobs

COMPIL 17

25 novembre 2010

Page 18: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

COMPIL 18

25 novembre 2010

Le SCRIPTING comme outil indispensable de l’Intégration

Continue

Page 19: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

COMPIL 19

25 novembre 2010

Le SCRIPTING comme outil indispensable de l’Intégration

Continue ANT

C’est le « Make » des projets JAVA

Le « script » ANT utilise le formalisme XML

Le « script » est exécuté dans un environnement JAVA

Exemple d’un script ANT de génération : build.xml

Page 20: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Le SCRIPTING comme outil indispensable de l’Intégration

Continue ANT …

Utilisation de variables (properties JAVA) déclarées et initialisées en interne du script ou sous la forme de fichiers de propriétés java

Les variables ANT peuvent être surchargées au lancement de l’exécution du script

COMPIL 20

25 novembre 2010

my-file.properties

Page 21: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

COMPIL 21

25 novembre 2010

Le SCRIPTING comme outil indispensable de l’Intégration

Continue ANT …

La bibliothèque native est extrêmement riche et couvre : Des fonctions de gestion d’archivages (zip,jar,tar,war …)

Des fonctions d’audit de sources (jdepend, …)

Des fonctions de compilations (javac, depend, apt, …)

Des fonctions de déploiements JEE,

Des fonctions de documentation (javadoc)

Des fonctions de gestion d’exécution de tâches (exec, parallel, sleep, waitfor …)

Des fonctions de gestion de fichiers (copy, checksum, …)

Des fonctions de pré-processing (xslt, import, include, macrodef, …)

Des fonctions de gestion de propriétés,

Des fonctions d’exécution à distance (Rexec, ftp, SShexec, Telnet)

Des fonctions d’accès aux outils de gestion de conf (cvs, clearcase, visual sourcesafe …)

Des fonctions de déclenchement de tests unitaires (junit …)

Il existe un grand nombre de librairies d’extension : Fonctions « Qualités » : Checkstyle, AntCount,EMMA

Documentation : Doxygen, Latex

Image

Intégration : JNI, … Compilation : C,C++, fortran, CPPtasks

Page 22: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

COMPIL 22

25 novembre 2010

Le SCRIPTING comme outil indispensable de l’Intégration

Continue Quelques liens

http://linsolas.developpez.com/articles/hudson/

https://hudson.dev.java.net/

http://ant.apache.org/

http://skebir.developpez.com/tutoriels/java/ant/

Page 23: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Sommaire

25 novembre 2010

COMPIL 23

Exemples d’usage du scripting à Magellium

1) Présentation de la société MAGELLIUM

2) Le Scripting comme outil d’exécution et de rédaction de plan de test et de validation (MAGVALID)

3) Le Scripting comme outil indispensable des processus d’intégration continue

4) L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements INGRID

5) Questions?

Page 24: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements

INGRID

COMPIL 24

25 novembre 2010

Page 25: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

COMPIL 25

25 novembre 2010

L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements INGRID

INGRID : Plateforme de conception, test, expérimentation et capitalisation de traitements et chaines de traitements dédiés à l’exploitation et la valorisation d’images

Principe général Intégration de composants logiciels (exe, dll, java … )

Exemple : librairie GDAL Identification et description des traitements implémentés par les

composants Exemple : Conversion de format d’image, reprojection d’une donnée

Connexion technique permettant au système INGRID de lancer l’exécution d’un traitement particulier fourni par un composant

Edition de chaîne de traitements par assemblage de traitements successifs

Définition de règles facilitant l’interopérabilité entre les composants Formats images, type de données, …

Page 26: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

COMPIL 26

25 novembre 2010

L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements

INGRID Les règles d’interopérabilité présentent les principes généraux

permettant de faire cohabiter les composants dans le système essentiellement d’un point de vue technique et préconisent des formats d’échanges pivots pour les données usuellement manipulées : images, géométrie..

Les règles ne peuvent pas tout exprimer concernant le formatage des données échangées :

Définition d’une ROI : Centre + Taille / Points HG + BD, Rapport exprimés en pourcentage ou sur une échelle de 0 à 1, …

Travaux d’intégration fastidieux nécessitant : Une couches supplémentaire d’adaptation pour tous les traitements

existants …

Un nombre important de petits traitements d’adaptation (jetables)

?

Page 27: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

COMPIL 27

25 novembre 2010

L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements

INGRID Besoin de maquettage : réaliser de façon ‘quick and dirty’ des

traitements jetables (accès bd, analyse d’un répertoire, …) pour un besoin temporaire d’analyse sans pour autant mettre en œuvre toutes les procédures d’intégration. Méthode légère.

Mise en œuvre d’une fonction de scripting sous la forme d’un traitement générique :

Page 28: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

COMPIL 28

25 novembre 2010

L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements

INGRID Implémentation Technique

Basé sur la capacité du langage JAVA a exécuter dynamiquement des scripts

Moteur d’exécution basée sur une interface standardisée (JSR-223), il existe de nombreux moteurs d’exécution prenant en compte des langages de script divers tels que : le javascript (RHINO), Python, Ruby, Tcl …

Le Script est exécuté au sein de même la JVM que celle de l’application appelante

Possibilité de partager des données entre l’application et le script

Possibilité d’utiliser les services et api proposées par JAVA (y compris les fonctions IHM (awt …)

Page 29: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

COMPIL 29

25 novembre 2010

L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements INGRID

Contexte d’exécution du Script dans INGRID

Lien entre paramètres du traitement et variables du script : Au déclenchement du script: pour chaque paramètre d’entrée

INGRID renseigné (in_*), une variable portant le nom du paramètre est instanciée.

A la fin du script ou lors d’un appel à la notification intermédiaire: un paramètre INGRID est généré en sortie du traitement pour chaque variable (out_*) déclarée dans le script.

Types gérés actuellement : boolean, int, double, string

Des classes de services permettant d’accéder aux API INGRID standards

ingridCallbackServices : classe des services de log & notification

ingridContextServices : classe d’accès aux informations du contexte d’exécution du traitement

Page 30: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements

INGRID Exemples de script

COMPIL 30

25 novembre 2010

Page 31: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

COMPIL 31

25 novembre 2010

L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements

INGRID Quelques liens :

Documentation technique sur le « scripting java »

http://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/

http://download.oracle.com/javase/6/docs/technotes/guides/scripting/programmer_guide/index.html

Javacscript RHINO

http://www.mozilla.org/rhino/

JavaDoc JAVA JRE 1.6

http://download.oracle.com/javase/6/docs/api/

Page 32: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

COMPIL 32

25 novembre 2010

Les pièges du SCRIPTING

Oui, mais attention :

ANT : Logiques récursives pas évidentes, « ticket d’entrée » non négligeable

Possibilité de créer de véritables usines à gaz difficilement maintenables

Certaine fragilité des Scripts face aux programmes compilés (possibilité d’édition en phase de runtime, pas de phase de compilation …) Nécessite une gestion en configuration

Page 33: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Sommaire

25 novembre 2010

COMPIL 33

Exemples d’usage du scripting à Magellium

1) Présentation de la société MAGELLIUM

2) Le Scripting comme outil d’exécution et de rédaction de plan de test et de validation (MAGVALID)

3) Le Scripting comme outil indispensable des processus d’intégration continue

4) L’utilisation du Scripting dans l’outil de modélisation de chaînes de traitements INGRID

5) Questions?

Page 34: 1 MAG-MOD.PPT-GEN-158-v1.0 COMPIL 3 expériences du Scripting

Cliquez pour modifier les styles du texte du masque Deuxième niveau Troisième niveau Quatrième niveau Cinquième niveau

QUESTIONS?En vous remerciant pour votre attention

COMPIL 34

25 novembre 2010