SlideShare une entreprise Scribd logo
1  sur  51
Télécharger pour lire hors ligne
www.parisjug.org




                                               Contrôle qualité
                                               « Open Source »                                                                                                     www.parisjug.org




Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Romain Pelisse
PMD, XRadar, QSOS, KDE,
     CKJM, Sonar...




François Le Droff
   Fna, FlexPMD, QSOS,
            XRadar




                                                   www.parisjug.org
      Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Intervenants
Romain Pelisse
      belaran-<at>-gmail.com
      http://belaran.eu/
      belaran@jabber.fr
      http://twitter.com/rpelisse
      https://www.xing.com/profile/Romain_PELISSE
      http://www.linkedin.com/in/rpelisse
François Le Droff
  ✔   francois.le.droff-<at>-gmail.com
  ✔   http://www.droff.com



      15 Sept 2009       Contrôle Qualité Open Source                                                                        www.parisjug.org                                              3
                        Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
“Any fool can write code that a computer can understand.
     Good programmers write code that humans can understand.”
                                                                                                                                                  ~M. Fowler
                “You can't control what you can't measure."
                                                                                                                                     ~Tom DeMarco


   “Controlling complexity is the essence of computer programming.”
                                                                                                                            ~Brian Kernighan.


“There does not now, nor will there ever exist, a programming language in
          which it is the least bit hard to write bad programs.”
                                                                                                                                  ~Lawrence Flon


        “Programs for sale: fast, reliable, cheap - choose two.”
                                                                                                                            ~Author Unknown

       15 Sept. 2009          Contrôle Qualité Open Source                                                                        www.parisjug.org                                              4
                             Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Pourquoi la qualité logicielle ?




   80% des entreprises négligent la qualité logicielle
   1 projet sur 3 n'est pas livré, 2/3 ne passent pas la recette
   9/10 sont livrés en retard
   70% du budget : maintenance
   40% de cette maintenance à la réécriture




      15 Sept 2009          Contrôle Qualité Open Source                                                                        www.parisjug.org                                              5
                           Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Une obligation professionnelle




                   ... Et parce qu'on n'aime plus concevoir que corriger...

    15 Sept 2009           Contrôle Qualité Open Source                                                                        www.parisjug.org                                              6
                          Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Pourquoi ? La qualité c'est fun !




... La qualité c'est fun, enrichissant, c'est à la mode, c'est sexy ... c'est agile,
c'est scrum et tdt friendly, c'est web2.0 c'est SOA nom mieux ! c'est la
QOA !

          15 Sept 2009          Contrôle Qualité Open Source                                                                        www.parisjug.org                                              7
                               Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Code, réputation, et publicité
✔   Programmer c'est « publier » (une API)
    ✔   « APIs are for ever »
✔   Une fois adoptée, on refuse d'en changer !


✔   Une API de qualité :
    ✔   Simple
    ✔   Addictif




            15 Sept 2009    Contrôle Qualité Open Source                                                                        www.parisjug.org                                              8
                           Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
La qualité rendra vos clients accro




     15 Sept 2009    Contrôle Qualité Open Source                                                                        www.parisjug.org                                              9
                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Pourquoi s'en priver ?




 En un mot : la qualité c'est bon, mangez-en !
     15 Sept 2009    Contrôle Qualité Open Source                                                                        www.parisjug.org                                              10
                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Pour qui ?
Le développeur :
  Assisté par les outils, intégré à l'IDE
  Qualité garantie à la source (démarche
  proactive)

L'intégrateur/recetteur/QA :
   veille au respect des règles au quotidien
   (intégration continue)
   assure la recevabilité technique.

Le chef de projet de la MOE :
   planifie et prend les mesures nécessaires
   au respect des exigences qualité

L'architecte
   Facilite le respect de l'ensemble des
   règles ;
   Définit les contraintes d'architecture
   spécifiques ;




         15 Sept 2009            Contrôle Qualité Open Source                                                                        www.parisjug.org                                              11
                                Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Quand ?
Tout au long du cycle de vie du projet
   Eviter l'effet tunnel
   Contractualiser les exigences
   Mode itératif




Contrôle qualité continu
   Au cours du développement
   Build, intégration continue
   Recette




         15 Sept 2009              Contrôle Qualité Open Source                                                                        www.parisjug.org                                              12
                                  Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Comment ?




c’est à ses outils qu’on reconnait un bon ouvrier  
Tour d'horizon des outils OS
ant, maven1, maven2, eclipse, PMD, CheckStyle, (bluecheckstyle, jjguidelines), Hammurapi,
FindBugs, PMD-CPD, JavaNCSS, squid, JDepend, Classycle, CKJM, Clirr, JUnit, Cobertura,
Emma, XRadar
et aussi PatternTesting, lint4j, jcsc, QJ-Pro, Spoon, TPTP, Netbeans, Jackpot, Simian,
Condenser, CAP, Metrics, ByeCycle, JarDiff, JCoverage, EclEmma, CVSStat, QALab, maven
dashboard




        15 Sept 2009              Contrôle Qualité Open Source                                                                        www.parisjug.org                                              14
                                 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Types d'outils
✔   Les outils d'analyse statique de code source Java (*.java)
    ✔   contrôle de validité javadoc
    ✔   contrôle de règles de style, de codage et d'anti-pattern
    ✔   indicateurs métriques
✔   Les outils d'analyse statique de byte code Java (*.class)
    ✔   indicateurs métriques
✔   Les outils d'analyse statique d'archive Java (*.jar)
    ✔   Les outils de vérification de compatibilité binaire, compatibilité API et de rapport de
        changement
✔   Test unitaires
    ✔   rapport de test
    ✔   rapport de couverture et taux de couverture de code
✔   Autres
    ✔   activité GCL (CVS, SVN)

           15 Sept 2009             Contrôle Qualité Open Source                                                                        www.parisjug.org                                              15
                                   Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Quoi ? Faites votre marché




    15 Sept 2009    Contrôle Qualité Open Source                                                                        www.parisjug.org                                              16
                   Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Analyse statique de source
 ✔   Les Contrôleur de code :
     ✔   PMD, CheckStyle (bluecheckstyle, jjguidelines), Hammurapi, FindBugs,
         PatternTesting, lint4j, jcsc, QJ-Pro
     ✔   Contrôle et refactoring:
         ✔   Eclipse : Spoon, TPTP
         ✔   Netbeans : Jackpot
     ✔   Pré requis unique : un code syntaxiquement correct
         ✔   ré-utilise l'arbre syntaxique abstrait (AST)
     ✔   Fonctionnalités: contrôlent
         ✔   le style et les règles de nommage,
         ✔   les erreurs d'encapsulation,
         ✔   les erreurs de programmations, de design,
         ✔   les erreurs de gestion et l'utilisation des exceptions,
         ✔   les erreurs de gestion mémoire,
         ✔   les erreurs de synchronisation défectueuses
         ✔   et détecte une partie du code mort/inutile
              15 Sept 2009              Contrôle Qualité Open Source                                                                        www.parisjug.org                                              17
                                       Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Zoom sur quelques exemples




   15 Sept 2009    Contrôle Qualité Open Source                                                                        www.parisjug.org                                              18
                  Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Règles de nommages




         On ne retient que les bons mots...



   15 Sept 2009      Contrôle Qualité Open Source                                                                        www.parisjug.org                                              19
                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
La gestion des exceptions




   15 Sept 2009    Contrôle Qualité Open Source                                                                        www.parisjug.org                                              20
                  Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
✔




    ✔    Préserver la
        stacktrace
        ✔   Générer une exception
            depuis un bloc catch
            sans passer la première
            exception à la nouvelle
            exception entraîne la perte
            de la stacktrace, ce qui
            pourra poser des
            problèmes lors du
            débuggage de
            l'application.




            15 Sept 2009                   Contrôle Qualité Open Source                                                                        www.parisjug.org                                              21
                                          Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
log(1.00 – 9*.10);                  // surprise ! Il s'affiche : 0.09999999999999998



 ✔




     ✔    Eviter float et
         double si un
         résultat exact
         (monétaire) est
         requis
         ✔   Les types float et double ont été
             conçus pour les calculs scientifiques
             et l'ingénierie. Ils réalisent de
             l'arithmétique binaire à virgule
             flottante qui a été conçue pour
             fournir des approximations efficaces
             et rapides sur une large échelle. Ils
             ne fournissent pas cependant de
             résultats exacts et ne devraient pas
             être utilisés quand ils ne sont pas
             requis.




                 15 Sept 2009                         Contrôle Qualité Open Source                                                                        www.parisjug.org                                              22
                                                     Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Choississez vos règles! Faites votre marché




      15 Sept 2009    Contrôle Qualité Open Source                                                                        www.parisjug.org                                              23
                     Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Construisez votre réferentiel

  Communiquer et formaliser vos exigences qualité !




     15 Sept 2009     Contrôle Qualité Open Source                                                                        www.parisjug.org                                              24
                     Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Annonce FlexPMD




   15 Sept 2009    Contrôle Qualité Open Source                                                                        www.parisjug.org                                              25
                  Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Exemple de rapport PMD
Taille du code : le pire ennemi ?

 Nombre de lignes de code
   Total
   Par fichier/classes
   Par méthode

 Détection du copié-collé

 La complexité cyclomatique




        15 Sept 2009           Contrôle Qualité Open Source                                                                        www.parisjug.org                                              28
                              Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Autre type d'analyse statique de code source

 ✔   Détecteurs de copié-collé : PMD-CPD, Simian, Condenser :
     ✔   Pré requis unique : un code syntaxiquement correct
         ✔   ré-utilise l'arbre syntaxique abstrait (AST) fourni par javacc




 ✔   Calcul de métriques : JavaNCSS : Squid
     ✔   Pré requis unique : un code syntaxiquement correct
         ✔   ré-utilise l'arbre syntaxique abstrait (AST) fourni par javacc
     ✔   Fonctionnalités: calcul de métriques
         ✔   calcul de complexité cyclomatique
         ✔   de lignes de code : ncss, javadoc, commentaires


             15 Sept 2009            Contrôle Qualité Open Source                                                                        www.parisjug.org                                              29
                                    Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Exemple de rapport JavaNCSS
Règles d'encapsulation




  Rendre les choses aussi inaccessibles que possible



   15 Sept 2009    Contrôle Qualité Open Source                                                                        www.parisjug.org                                              31
                  Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Analyse de byte code Java

✔ Indicateurs métriques 00 et architecture :
   ✔ Squid, JDepend, Classycle, CKJM, Macker
   ✔ Eclipse plugins : CAP, Metrics, ByeCycle

✔ Exemple :
   ✔ calcul et graphe de dépendances
   ✔ Complexité cyclomatique
Analyse de byte code Java

✔ Métriques de package
   ✔ Nombres de classes concrètes, abstraites, publiq ues
     ✔ Nombres d'interfaces
     ✔ Graphe de dépendances de packages :
           ✔ couplage afférent et effér ent
     ✔ Détection de dépendances cycliques
     ✔ Degré d’abstraction
     ✔ Degré d'instabilité
     ✔ Distance normale
Analyse de byte code Java - 3/4
✔   Métriques de classes


    ✔   Nombres d'attributs, de méthodes, d'inner-class
    ✔   Nombre de classes enfants
    ✔   Profondeur d'héritage ( le nombre d’ancêtres de la classe en ligne directe)
    ✔   Nombre de méthodes implémentées (Weighted methods per class)
    ✔   Response for a Class (RFC)
        ✔   Nombre de Méthodes accessibles par la classe, qu’elles soient implémentées directement,
            surchargées ou disponibles via héritage (méthodes publiques, protégées et du package pour Java)


    ✔   Manque de cohésion des méthodes (LCOM)
        ✔   évalue la cohérence d’une classe entre ses attributs et ses méthodes et de vérifier qu’il n’y a pas
            d’ensembles disjoints.


    ✔   Couplage efférent (Ce) ou Coupling between object classes (CBO)
        ✔   Une classe est couplée à une autre selon Chidamber et Kemerer, si les méthodes de la classe utilisent
            des attributs ou des méthodes d’une autre classe.

            15 Sept 2009                    Contrôle Qualité Open Source                                                                        www.parisjug.org                                              34
    ✔   Couplage afférent (la réciproque de couplage efférent)
                                           Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Exemple plugin CAPS
Dépendances et compatibilités
✔ Gestion des dépendances externes
   ✔ Connaissance et maîtrise des dépendances
      ✔transitivité
   ✔ Détection des incompatibilités



✔ Quelques outils :
   ✔ Clirr, Maven, Ivy
Outils d'analyse statique d'archive Java (*.jar)

 ✔   Vérification de compatibilité binaire, rapport
     de changement d'API
     Clirr, JarDiff




         15 Sept 2009    Contrôle Qualité Open Source                                                                        www.parisjug.org                                              37
                        Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Autres outils
✔   Test
    ✔   Emma, Cobertura avec ant et maven,
    ✔   de nombreux plugins eclipse : EclEmma par
        exemple
    ✔   rapport de test
    ✔   rapport de couverture et taux de couverture de code
✔   Autres
    ✔   CVSStat
        ✔   activité GCL (CVS, SVN)



            15 Sept 2009     Contrôle Qualité Open Source                                                                        www.parisjug.org                                              38
                            Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Comment industrialiser ?
Intégration & Qualité continue




   15 Sept 2009    Contrôle Qualité Open Source                                                                        www.parisjug.org                                              40
                  Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
XRadar

✔« Killing Features »
  ✔ Agrège les résulats de nombreux outils d'analyses de code OSS
  ✔ Intégration dans les outils de builds Ant et Maven
  ✔ Historisation, analyse de la tendance qualité du projet:
                                           ✔ Synthèse graphique:




  ✔ Analyse complète, du plus bas niveau ( code) au plus haut (architecture)
XRadar




   15 Sept 2009    Contrôle Qualité Open Source                                                                        www.parisjug.org                                              42
                  Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Aggrégateur : Sonar




   15 Sept 2009    Contrôle Qualité Open Source                                                                        www.parisjug.org                                              43
                  Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Conclusion
Ne pas mesurer pour mesurer

✔Usabilité / Lisibilité
✔Maintenabilité
✔Efficacité / Performance
✔Portabilité
✔Fiabilité
✔Testabilité
                            ✔ Ne pas mesurer pour mesurer
Facteurs clés de réussite:
          une qualité active
✔ Implication des sponsors
✔ Adhésion des développeurs,
   ✔chacun des acteurs du projet
✔ Ne pas repousser les tests et mesures en fin de projet
✔ Formaliser ses exigences
   ✔ne pas mesurer pour mesurer
   ✔intégrer la qualité à la recette aux contrats
✔ Outillage intégré et adapté
✔ Communiquer et fournir des rapports synthétiques aux
  décideurs.
Références : projets et outils OS
                                                      ✔   FindBugs : http://findbugs.sourceforge.net/
                                                      ✔   JavaNCSS : http://www.kclee.de/clemens/java/javancss/
✔   Ant : http://ant.apache.org/                      ✔   Jdepend : http://clarkware.com/software/JDepend.html
✔   Maven 2 :http://maven.apache.org/                 ✔   Macker : http://innig.net/macker/index.html
                                                      ✔   Ckjm : http://www.spinellis.gr/sw/ckjm/doc/indexw.html
✔   Ivy : http://www.jaya.free.fr/ivy/                ✔   Classcycle :http://classycle.sourceforge.net/
✔   Xradar: http://xradar.sourceforge.net/
✔   Sonar: http://sonar.codehaus.org/                 ✔ ... et encore d'autre sur :
                                                          http://en.wikipedia.org/wiki/List_of_tools_for_static_code_ana
✔   PMD : http://pmd.sourceforge.net/
✔   CheckStyle : http://checkstyle.sourceforge.net/
✔   Metrics : http://metrics.sourceforge.net/
                                                      ✔   Junit: http://www.junit.org/
                                                      ✔   Unitils: http://www.unitils.org/summary.html
                                                      ✔   Emma :http://emma.sourceforge.net/
                                                      ✔   Cobertura : http://cobertura.sourceforge.net/
                                                      ✔   Dbunit: http://www.dbunit.org/
                                                      ✔   HttpUnit: http://httpunit.sourceforge.net/
Références : biblio

✔ «  Effective Java: Programming Language Guide », Joshua Bloch
✔ « OO Design Quality Metrics », Robert Martin
✔ « Langage Java », Philippe Prados

✔   http://lil.univ-littoral.fr/~oumoumsack/qualite/
✔   http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf
✔   http://www.infoq.com/presentations/effective-api-design
✔   http://www.infoq.com/news/Ken-Schwaber-Sacrificing-Quality
✔   http://www.quotegarden.com/programming.html
Les photos
✔   http://flickr.com/photos/slimcoincidence/594599028/
✔   http://flickr.com/photos/jeanmi/210374309/
                                                          ✔   http://flickr.com/photos/lesloups/1907354379/
✔   http://flickr.com/photos/cheesebikini/804099102/
                                                          ✔   http://flickr.com/photos/marysia/514900457/
✔   http://flickr.com/photos/jurvetson/101046514/
                                                          ✔   http://flickr.com/photos/77945684@N00/310887851/
✔   http://flickr.com/photos/jeremybrooks/1399474069/
                                                          ✔   http://flickr.com/photos/invad3r/236233328/
✔   http://flickr.com/photos/el%2Dcatalejo/1474055306/
                                                          ✔   http://flickr.com/photo_zoom.gne?id=1039909856&size=l
✔   http://flickr.com/photos/cunaldo/271683015/
✔   http://flickr.com/photos/denial_land/2094163680/
✔   http://flickr.com/photos/clintjcl/382107734/
✔   http://flickr.com/photos/jurvetson/128666829/
✔   http://flickr.com/photos/opendemocracy/1417040538/
✔   http://www.flickr.com/photos/purplemattfish/3918004964/
✔   http://www.flickr.com/photos/stevendepolo/3096471361/
✔   http://www.flickr.com/photos/jamesjordan/3859026695/
✔   http://www.flickr.com/photos/summachphoto/3380254405/in/pool-shocking
Questions /
               Réponses


                                             www.parisjug.org
Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
Licence




  http://creativecommons.org/licenses/by-nc-sa/2.0/fr/




   15 Sept 2009     Contrôle Qualité Open Source                                                                        www.parisjug.org                                              51
                   Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique

Contenu connexe

Tendances

Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeSoirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeTelecomValley
 
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...TelecomValley
 
Introduction à la validation de logiciel
Introduction à la validation de logicielIntroduction à la validation de logiciel
Introduction à la validation de logicielJean-Paul CARMONA
 
Soirée du Test Logiciel - Les dernières tendances du test logiciel - B. LEGEA...
Soirée du Test Logiciel - Les dernières tendances du test logiciel - B. LEGEA...Soirée du Test Logiciel - Les dernières tendances du test logiciel - B. LEGEA...
Soirée du Test Logiciel - Les dernières tendances du test logiciel - B. LEGEA...TelecomValley
 
Clean code game - Agile France 2013
Clean code game - Agile France 2013Clean code game - Agile France 2013
Clean code game - Agile France 2013Michel Domenjoud
 
Qualification Et Cycle De Vie Du Logiciel
Qualification Et Cycle De Vie Du LogicielQualification Et Cycle De Vie Du Logiciel
Qualification Et Cycle De Vie Du Logicieldanaobrest
 
Altran soirée du test logiciel - assez des c 05-10-17
Altran   soirée du test logiciel - assez des c 05-10-17Altran   soirée du test logiciel - assez des c 05-10-17
Altran soirée du test logiciel - assez des c 05-10-17Marc Hage Chahine
 
Contrôle de la qualité logiciel
Contrôle de la qualité logicielContrôle de la qualité logiciel
Contrôle de la qualité logicielSylvain Leroy
 
20120612 05 - Etude de maturité d'une organisation de tests avec TPI Next
20120612 05 - Etude de maturité d'une organisation de tests avec TPI Next20120612 05 - Etude de maturité d'une organisation de tests avec TPI Next
20120612 05 - Etude de maturité d'une organisation de tests avec TPI NextLeClubQualiteLogicielle
 
Les Tests : une évolution, pas une révolution
Les Tests : une évolution, pas une révolutionLes Tests : une évolution, pas une révolution
Les Tests : une évolution, pas une révolutionZeenat Nazaroudine
 
20090113 03 - Exigences et mise en oeuvre du processus mesure et analyse
20090113 03 - Exigences et mise en oeuvre du processus mesure et analyse20090113 03 - Exigences et mise en oeuvre du processus mesure et analyse
20090113 03 - Exigences et mise en oeuvre du processus mesure et analyseLeClubQualiteLogicielle
 
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...LeClubQualiteLogicielle
 
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...TelecomValley
 
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
20130523 04 - Grille d'évaluation - Gestion du patrimoine de testLeClubQualiteLogicielle
 
Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Sylvain Leroy
 
Model de qualité @ msdevmtl
Model de qualité @ msdevmtlModel de qualité @ msdevmtl
Model de qualité @ msdevmtlMSDEVMTL
 
Qualité de code, sonar, la dette
Qualité de code, sonar, la detteQualité de code, sonar, la dette
Qualité de code, sonar, la detteNovencia Groupe
 

Tendances (20)

Assurance qualité
Assurance qualitéAssurance qualité
Assurance qualité
 
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualifeSoirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
Soirée du Test Logiciel - Démystifier les xDD - C. TARDIEU, Acp qualife
 
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
Soirée du Test Logiciel - Intelligence Artificielle dans le test - J. VAN QUA...
 
Qualité logiciel - Generalités
Qualité logiciel - GeneralitésQualité logiciel - Generalités
Qualité logiciel - Generalités
 
Introduction à la validation de logiciel
Introduction à la validation de logicielIntroduction à la validation de logiciel
Introduction à la validation de logiciel
 
Soirée du Test Logiciel - Les dernières tendances du test logiciel - B. LEGEA...
Soirée du Test Logiciel - Les dernières tendances du test logiciel - B. LEGEA...Soirée du Test Logiciel - Les dernières tendances du test logiciel - B. LEGEA...
Soirée du Test Logiciel - Les dernières tendances du test logiciel - B. LEGEA...
 
Clean code game - Agile France 2013
Clean code game - Agile France 2013Clean code game - Agile France 2013
Clean code game - Agile France 2013
 
Qualification Et Cycle De Vie Du Logiciel
Qualification Et Cycle De Vie Du LogicielQualification Et Cycle De Vie Du Logiciel
Qualification Et Cycle De Vie Du Logiciel
 
Altran soirée du test logiciel - assez des c 05-10-17
Altran   soirée du test logiciel - assez des c 05-10-17Altran   soirée du test logiciel - assez des c 05-10-17
Altran soirée du test logiciel - assez des c 05-10-17
 
Contrôle de la qualité logiciel
Contrôle de la qualité logicielContrôle de la qualité logiciel
Contrôle de la qualité logiciel
 
20120612 05 - Etude de maturité d'une organisation de tests avec TPI Next
20120612 05 - Etude de maturité d'une organisation de tests avec TPI Next20120612 05 - Etude de maturité d'une organisation de tests avec TPI Next
20120612 05 - Etude de maturité d'une organisation de tests avec TPI Next
 
Les Tests : une évolution, pas une révolution
Les Tests : une évolution, pas une révolutionLes Tests : une évolution, pas une révolution
Les Tests : une évolution, pas une révolution
 
20090113 03 - Exigences et mise en oeuvre du processus mesure et analyse
20090113 03 - Exigences et mise en oeuvre du processus mesure et analyse20090113 03 - Exigences et mise en oeuvre du processus mesure et analyse
20090113 03 - Exigences et mise en oeuvre du processus mesure et analyse
 
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
 
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
Soirée du Test Logiciel - Administration et orchestration des tests avec Refe...
 
Tests Logiciel
Tests LogicielTests Logiciel
Tests Logiciel
 
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
20130523 04 - Grille d'évaluation - Gestion du patrimoine de test
 
Rappels Modularisation application C/C++
Rappels Modularisation application C/C++Rappels Modularisation application C/C++
Rappels Modularisation application C/C++
 
Model de qualité @ msdevmtl
Model de qualité @ msdevmtlModel de qualité @ msdevmtl
Model de qualité @ msdevmtl
 
Qualité de code, sonar, la dette
Qualité de code, sonar, la detteQualité de code, sonar, la dette
Qualité de code, sonar, la dette
 

En vedette

Procédure de contrôle qualité
Procédure de contrôle qualité Procédure de contrôle qualité
Procédure de contrôle qualité Marwoua Ben Salem
 
RAINBOW by ECS-3.COM: Contrôle qualité (version française)
RAINBOW by ECS-3.COM: Contrôle qualité  (version française)RAINBOW by ECS-3.COM: Contrôle qualité  (version française)
RAINBOW by ECS-3.COM: Contrôle qualité (version française)RAINBOW by ECS-3.COM
 
Le controle de qualite au laboratoire
Le controle de qualite au laboratoireLe controle de qualite au laboratoire
Le controle de qualite au laboratoireS/Abdessemed
 
Gestionnaires des ressources humaines
Gestionnaires des ressources humaines Gestionnaires des ressources humaines
Gestionnaires des ressources humaines Ifact-dz Formation HSE
 
Audit technique de code
Audit technique de codeAudit technique de code
Audit technique de codeMehdi TAZI
 
les metriques de processus, de produit et de qualité
les metriques de processus, de produit et de qualitéles metriques de processus, de produit et de qualité
les metriques de processus, de produit et de qualitésoregh
 

En vedette (7)

Procédure de contrôle qualité
Procédure de contrôle qualité Procédure de contrôle qualité
Procédure de contrôle qualité
 
RAINBOW by ECS-3.COM: Contrôle qualité (version française)
RAINBOW by ECS-3.COM: Contrôle qualité  (version française)RAINBOW by ECS-3.COM: Contrôle qualité  (version française)
RAINBOW by ECS-3.COM: Contrôle qualité (version française)
 
Le controle de qualite au laboratoire
Le controle de qualite au laboratoireLe controle de qualite au laboratoire
Le controle de qualite au laboratoire
 
Gestionnaires des ressources humaines
Gestionnaires des ressources humaines Gestionnaires des ressources humaines
Gestionnaires des ressources humaines
 
Audit technique de code
Audit technique de codeAudit technique de code
Audit technique de code
 
Metrique
MetriqueMetrique
Metrique
 
les metriques de processus, de produit et de qualité
les metriques de processus, de produit et de qualitéles metriques de processus, de produit et de qualité
les metriques de processus, de produit et de qualité
 

Similaire à Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open source

Agile tour 2015 alliés contre les défauts
Agile tour 2015   alliés contre les défautsAgile tour 2015   alliés contre les défauts
Agile tour 2015 alliés contre les défautsJulien Jakubowski
 
Agile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defautsAgile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defautsAntoine Blk
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation MavenArnaud Héritier
 
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009JUG Lausanne
 
Mener des experimentations sans sacrifier la qualite - Meetup Agile Testing P...
Mener des experimentations sans sacrifier la qualite - Meetup Agile Testing P...Mener des experimentations sans sacrifier la qualite - Meetup Agile Testing P...
Mener des experimentations sans sacrifier la qualite - Meetup Agile Testing P...Christopher Parola
 
20090609 05 - Audit de code automatisé chez Renault
20090609 05 - Audit de code automatisé chez Renault20090609 05 - Audit de code automatisé chez Renault
20090609 05 - Audit de code automatisé chez RenaultLeClubQualiteLogicielle
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache MavenArnaud Héritier
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarElsassJUG
 
Session Spring et TDD du ParisJUG
Session Spring et TDD du ParisJUGSession Spring et TDD du ParisJUG
Session Spring et TDD du ParisJUGChristian Blavier
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Ippon
 
Be Googley, a corporate culture for innovation
Be Googley, a corporate culture for innovationBe Googley, a corporate culture for innovation
Be Googley, a corporate culture for innovationPatrick Chanezon
 
Êtes-vous API dans votre organisation ?
Êtes-vous API dans votre organisation ?Êtes-vous API dans votre organisation ?
Êtes-vous API dans votre organisation ?OCTO Technology Suisse
 
ABTest : un outil indispensable pour être « data-driven » ? par Laurent VION
ABTest : un outil indispensable pour être « data-driven » ? par Laurent VIONABTest : un outil indispensable pour être « data-driven » ? par Laurent VION
ABTest : un outil indispensable pour être « data-driven » ? par Laurent VIONLa Cuisine du Web
 
symfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnelssymfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les ProfessionnelsFabien Potencier
 
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...Olivier Destrebecq
 
Une application sans framework en 2019
Une application sans framework en 2019Une application sans framework en 2019
Une application sans framework en 2019Rodrigue Villetard
 
Présentations séminaire OSSA - mai 2010
Présentations séminaire OSSA - mai 2010Présentations séminaire OSSA - mai 2010
Présentations séminaire OSSA - mai 2010LINAGORA
 
SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...
SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...
SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...TelecomValley
 

Similaire à Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open source (20)

Agile tour 2015 alliés contre les défauts
Agile tour 2015   alliés contre les défautsAgile tour 2015   alliés contre les défauts
Agile tour 2015 alliés contre les défauts
 
Agile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defautsAgile tour Lille 2015 allies ensemble contre les defauts
Agile tour Lille 2015 allies ensemble contre les defauts
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
 
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
 
Mener des experimentations sans sacrifier la qualite - Meetup Agile Testing P...
Mener des experimentations sans sacrifier la qualite - Meetup Agile Testing P...Mener des experimentations sans sacrifier la qualite - Meetup Agile Testing P...
Mener des experimentations sans sacrifier la qualite - Meetup Agile Testing P...
 
20090609 05 - Audit de code automatisé chez Renault
20090609 05 - Audit de code automatisé chez Renault20090609 05 - Audit de code automatisé chez Renault
20090609 05 - Audit de code automatisé chez Renault
 
20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven20090615 - Ch'ti JUG - Apache Maven
20090615 - Ch'ti JUG - Apache Maven
 
Soirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec SonarSoirée Qualité Logicielle avec Sonar
Soirée Qualité Logicielle avec Sonar
 
Le prix de la pub
Le prix de la pubLe prix de la pub
Le prix de la pub
 
Session Spring et TDD du ParisJUG
Session Spring et TDD du ParisJUGSession Spring et TDD du ParisJUG
Session Spring et TDD du ParisJUG
 
Présentation Rex GWT 2.0
Présentation Rex GWT 2.0Présentation Rex GWT 2.0
Présentation Rex GWT 2.0
 
Be Googley, a corporate culture for innovation
Be Googley, a corporate culture for innovationBe Googley, a corporate culture for innovation
Be Googley, a corporate culture for innovation
 
Êtes-vous API dans votre organisation ?
Êtes-vous API dans votre organisation ?Êtes-vous API dans votre organisation ?
Êtes-vous API dans votre organisation ?
 
ABTest : un outil indispensable pour être « data-driven » ? par Laurent VION
ABTest : un outil indispensable pour être « data-driven » ? par Laurent VIONABTest : un outil indispensable pour être « data-driven » ? par Laurent VION
ABTest : un outil indispensable pour être « data-driven » ? par Laurent VION
 
symfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnelssymfony : Un Framework Open-Source pour les Professionnels
symfony : Un Framework Open-Source pour les Professionnels
 
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
DevMobCA #16: Comment arrêter de perdre des clients sur votre site ou appli s...
 
Une application sans framework en 2019
Une application sans framework en 2019Une application sans framework en 2019
Une application sans framework en 2019
 
Présentations séminaire OSSA - mai 2010
Présentations séminaire OSSA - mai 2010Présentations séminaire OSSA - mai 2010
Présentations séminaire OSSA - mai 2010
 
SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...
SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...
SophiaConf 2010 Présentation de la conférence du 30 Juin - Gestion des identi...
 
20100121 01 - Présentation Renault
20100121 01 - Présentation Renault20100121 01 - Présentation Renault
20100121 01 - Présentation Renault
 

Plus de François Le Droff

Implémentez une intégration avec AEM presque sans code
Implémentez une intégration avec AEM presque sans codeImplémentez une intégration avec AEM presque sans code
Implémentez une intégration avec AEM presque sans codeFrançois Le Droff
 
Master chef and puppet show - Devoxx France 2014
Master chef and puppet show - Devoxx France 2014Master chef and puppet show - Devoxx France 2014
Master chef and puppet show - Devoxx France 2014François Le Droff
 
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresMaster Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresFrançois Le Droff
 
Soirée Flex/RIA au Nantes jug
Soirée Flex/RIA au Nantes jugSoirée Flex/RIA au Nantes jug
Soirée Flex/RIA au Nantes jugFrançois Le Droff
 
Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...
Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...
Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...François Le Droff
 
Quality Best Practices & Toolkit for Enterprise Flex
Quality Best Practices & Toolkit for Enterprise FlexQuality Best Practices & Toolkit for Enterprise Flex
Quality Best Practices & Toolkit for Enterprise FlexFrançois Le Droff
 
Flex Services And Spring with Spring-Flex ParisJug
Flex Services And Spring with Spring-Flex ParisJugFlex Services And Spring with Spring-Flex ParisJug
Flex Services And Spring with Spring-Flex ParisJugFrançois Le Droff
 
The Spring of Adobe Flex Remoting
The Spring of Adobe Flex RemotingThe Spring of Adobe Flex Remoting
The Spring of Adobe Flex RemotingFrançois Le Droff
 
Flex Continuous Quality Builds Flex & (Ant || Maven)
Flex Continuous Quality Builds Flex & (Ant || Maven)Flex Continuous Quality Builds Flex & (Ant || Maven)
Flex Continuous Quality Builds Flex & (Ant || Maven)François Le Droff
 
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFlex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFrançois Le Droff
 

Plus de François Le Droff (13)

Implémentez une intégration avec AEM presque sans code
Implémentez une intégration avec AEM presque sans codeImplémentez une intégration avec AEM presque sans code
Implémentez une intégration avec AEM presque sans code
 
Master chef and puppet show - Devoxx France 2014
Master chef and puppet show - Devoxx France 2014Master chef and puppet show - Devoxx France 2014
Master chef and puppet show - Devoxx France 2014
 
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructuresMaster Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
Master Chef class: learn how to quickly cook delightful CQ/AEM infrastructures
 
Soirée Flex/RIA au Nantes jug
Soirée Flex/RIA au Nantes jugSoirée Flex/RIA au Nantes jug
Soirée Flex/RIA au Nantes jug
 
Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...
Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...
Flex and LiveCycle Data Services Best Practices from the Trenches (Adobe MAX ...
 
Flex & Java @ TourJUG
Flex & Java @ TourJUGFlex & Java @ TourJUG
Flex & Java @ TourJUG
 
Flex & Java @ NormandieJUG
Flex & Java @ NormandieJUGFlex & Java @ NormandieJUG
Flex & Java @ NormandieJUG
 
Quality Best Practices & Toolkit for Enterprise Flex
Quality Best Practices & Toolkit for Enterprise FlexQuality Best Practices & Toolkit for Enterprise Flex
Quality Best Practices & Toolkit for Enterprise Flex
 
Flash Catalyst Jug
Flash Catalyst JugFlash Catalyst Jug
Flash Catalyst Jug
 
Flex Services And Spring with Spring-Flex ParisJug
Flex Services And Spring with Spring-Flex ParisJugFlex Services And Spring with Spring-Flex ParisJug
Flex Services And Spring with Spring-Flex ParisJug
 
The Spring of Adobe Flex Remoting
The Spring of Adobe Flex RemotingThe Spring of Adobe Flex Remoting
The Spring of Adobe Flex Remoting
 
Flex Continuous Quality Builds Flex & (Ant || Maven)
Flex Continuous Quality Builds Flex & (Ant || Maven)Flex Continuous Quality Builds Flex & (Ant || Maven)
Flex Continuous Quality Builds Flex & (Ant || Maven)
 
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog CcFlex For Java Architects Ledroff Breizh Jug V Blog Cc
Flex For Java Architects Ledroff Breizh Jug V Blog Cc
 

Soirée Qualite Logicielle Paris JUG : Tour d'horizon des outils open source

  • 1. www.parisjug.org Contrôle qualité « Open Source » www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 2. Romain Pelisse PMD, XRadar, QSOS, KDE, CKJM, Sonar... François Le Droff Fna, FlexPMD, QSOS, XRadar www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 3. Intervenants Romain Pelisse belaran-<at>-gmail.com http://belaran.eu/ belaran@jabber.fr http://twitter.com/rpelisse https://www.xing.com/profile/Romain_PELISSE http://www.linkedin.com/in/rpelisse François Le Droff ✔ francois.le.droff-<at>-gmail.com ✔ http://www.droff.com 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 3 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 4. “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” ~M. Fowler “You can't control what you can't measure." ~Tom DeMarco “Controlling complexity is the essence of computer programming.” ~Brian Kernighan. “There does not now, nor will there ever exist, a programming language in which it is the least bit hard to write bad programs.” ~Lawrence Flon “Programs for sale: fast, reliable, cheap - choose two.” ~Author Unknown 15 Sept. 2009 Contrôle Qualité Open Source www.parisjug.org 4 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 5. Pourquoi la qualité logicielle ? 80% des entreprises négligent la qualité logicielle 1 projet sur 3 n'est pas livré, 2/3 ne passent pas la recette 9/10 sont livrés en retard 70% du budget : maintenance 40% de cette maintenance à la réécriture 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 5 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 6. Une obligation professionnelle ... Et parce qu'on n'aime plus concevoir que corriger... 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 6 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 7. Pourquoi ? La qualité c'est fun ! ... La qualité c'est fun, enrichissant, c'est à la mode, c'est sexy ... c'est agile, c'est scrum et tdt friendly, c'est web2.0 c'est SOA nom mieux ! c'est la QOA ! 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 7 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 8. Code, réputation, et publicité ✔ Programmer c'est « publier » (une API) ✔ « APIs are for ever » ✔ Une fois adoptée, on refuse d'en changer ! ✔ Une API de qualité : ✔ Simple ✔ Addictif 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 8 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 9. La qualité rendra vos clients accro 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 9 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 10. Pourquoi s'en priver ? En un mot : la qualité c'est bon, mangez-en ! 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 10 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 11. Pour qui ? Le développeur : Assisté par les outils, intégré à l'IDE Qualité garantie à la source (démarche proactive) L'intégrateur/recetteur/QA : veille au respect des règles au quotidien (intégration continue) assure la recevabilité technique. Le chef de projet de la MOE : planifie et prend les mesures nécessaires au respect des exigences qualité L'architecte Facilite le respect de l'ensemble des règles ; Définit les contraintes d'architecture spécifiques ; 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 11 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 12. Quand ? Tout au long du cycle de vie du projet Eviter l'effet tunnel Contractualiser les exigences Mode itératif Contrôle qualité continu Au cours du développement Build, intégration continue Recette 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 12 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 13. Comment ? c’est à ses outils qu’on reconnait un bon ouvrier  
  • 14. Tour d'horizon des outils OS ant, maven1, maven2, eclipse, PMD, CheckStyle, (bluecheckstyle, jjguidelines), Hammurapi, FindBugs, PMD-CPD, JavaNCSS, squid, JDepend, Classycle, CKJM, Clirr, JUnit, Cobertura, Emma, XRadar et aussi PatternTesting, lint4j, jcsc, QJ-Pro, Spoon, TPTP, Netbeans, Jackpot, Simian, Condenser, CAP, Metrics, ByeCycle, JarDiff, JCoverage, EclEmma, CVSStat, QALab, maven dashboard 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 14 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 15. Types d'outils ✔ Les outils d'analyse statique de code source Java (*.java) ✔ contrôle de validité javadoc ✔ contrôle de règles de style, de codage et d'anti-pattern ✔ indicateurs métriques ✔ Les outils d'analyse statique de byte code Java (*.class) ✔ indicateurs métriques ✔ Les outils d'analyse statique d'archive Java (*.jar) ✔ Les outils de vérification de compatibilité binaire, compatibilité API et de rapport de changement ✔ Test unitaires ✔ rapport de test ✔ rapport de couverture et taux de couverture de code ✔ Autres ✔ activité GCL (CVS, SVN) 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 15 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 16. Quoi ? Faites votre marché 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 16 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 17. Analyse statique de source ✔ Les Contrôleur de code : ✔ PMD, CheckStyle (bluecheckstyle, jjguidelines), Hammurapi, FindBugs, PatternTesting, lint4j, jcsc, QJ-Pro ✔ Contrôle et refactoring: ✔ Eclipse : Spoon, TPTP ✔ Netbeans : Jackpot ✔ Pré requis unique : un code syntaxiquement correct ✔ ré-utilise l'arbre syntaxique abstrait (AST) ✔ Fonctionnalités: contrôlent ✔ le style et les règles de nommage, ✔ les erreurs d'encapsulation, ✔ les erreurs de programmations, de design, ✔ les erreurs de gestion et l'utilisation des exceptions, ✔ les erreurs de gestion mémoire, ✔ les erreurs de synchronisation défectueuses ✔ et détecte une partie du code mort/inutile 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 17 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 18. Zoom sur quelques exemples 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 18 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 19. Règles de nommages On ne retient que les bons mots... 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 19 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 20. La gestion des exceptions 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 20 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 21. ✔ Préserver la stacktrace ✔ Générer une exception depuis un bloc catch sans passer la première exception à la nouvelle exception entraîne la perte de la stacktrace, ce qui pourra poser des problèmes lors du débuggage de l'application. 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 21 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 22. log(1.00 – 9*.10); // surprise ! Il s'affiche : 0.09999999999999998 ✔ ✔ Eviter float et double si un résultat exact (monétaire) est requis ✔ Les types float et double ont été conçus pour les calculs scientifiques et l'ingénierie. Ils réalisent de l'arithmétique binaire à virgule flottante qui a été conçue pour fournir des approximations efficaces et rapides sur une large échelle. Ils ne fournissent pas cependant de résultats exacts et ne devraient pas être utilisés quand ils ne sont pas requis. 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 22 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 23. Choississez vos règles! Faites votre marché 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 23 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 24. Construisez votre réferentiel Communiquer et formaliser vos exigences qualité ! 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 24 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 25. Annonce FlexPMD 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 25 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 27.
  • 28. Taille du code : le pire ennemi ? Nombre de lignes de code Total Par fichier/classes Par méthode Détection du copié-collé La complexité cyclomatique 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 28 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 29. Autre type d'analyse statique de code source ✔ Détecteurs de copié-collé : PMD-CPD, Simian, Condenser : ✔ Pré requis unique : un code syntaxiquement correct ✔ ré-utilise l'arbre syntaxique abstrait (AST) fourni par javacc ✔ Calcul de métriques : JavaNCSS : Squid ✔ Pré requis unique : un code syntaxiquement correct ✔ ré-utilise l'arbre syntaxique abstrait (AST) fourni par javacc ✔ Fonctionnalités: calcul de métriques ✔ calcul de complexité cyclomatique ✔ de lignes de code : ncss, javadoc, commentaires 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 29 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 30. Exemple de rapport JavaNCSS
  • 31. Règles d'encapsulation Rendre les choses aussi inaccessibles que possible 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 31 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 32. Analyse de byte code Java ✔ Indicateurs métriques 00 et architecture : ✔ Squid, JDepend, Classycle, CKJM, Macker ✔ Eclipse plugins : CAP, Metrics, ByeCycle ✔ Exemple : ✔ calcul et graphe de dépendances ✔ Complexité cyclomatique
  • 33. Analyse de byte code Java ✔ Métriques de package ✔ Nombres de classes concrètes, abstraites, publiq ues ✔ Nombres d'interfaces ✔ Graphe de dépendances de packages : ✔ couplage afférent et effér ent ✔ Détection de dépendances cycliques ✔ Degré d’abstraction ✔ Degré d'instabilité ✔ Distance normale
  • 34. Analyse de byte code Java - 3/4 ✔ Métriques de classes ✔ Nombres d'attributs, de méthodes, d'inner-class ✔ Nombre de classes enfants ✔ Profondeur d'héritage ( le nombre d’ancêtres de la classe en ligne directe) ✔ Nombre de méthodes implémentées (Weighted methods per class) ✔ Response for a Class (RFC) ✔ Nombre de Méthodes accessibles par la classe, qu’elles soient implémentées directement, surchargées ou disponibles via héritage (méthodes publiques, protégées et du package pour Java) ✔ Manque de cohésion des méthodes (LCOM) ✔ évalue la cohérence d’une classe entre ses attributs et ses méthodes et de vérifier qu’il n’y a pas d’ensembles disjoints. ✔ Couplage efférent (Ce) ou Coupling between object classes (CBO) ✔ Une classe est couplée à une autre selon Chidamber et Kemerer, si les méthodes de la classe utilisent des attributs ou des méthodes d’une autre classe. 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 34 ✔ Couplage afférent (la réciproque de couplage efférent) Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 36. Dépendances et compatibilités ✔ Gestion des dépendances externes ✔ Connaissance et maîtrise des dépendances ✔transitivité ✔ Détection des incompatibilités ✔ Quelques outils : ✔ Clirr, Maven, Ivy
  • 37. Outils d'analyse statique d'archive Java (*.jar) ✔ Vérification de compatibilité binaire, rapport de changement d'API Clirr, JarDiff 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 37 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 38. Autres outils ✔ Test ✔ Emma, Cobertura avec ant et maven, ✔ de nombreux plugins eclipse : EclEmma par exemple ✔ rapport de test ✔ rapport de couverture et taux de couverture de code ✔ Autres ✔ CVSStat ✔ activité GCL (CVS, SVN) 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 38 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 40. Intégration & Qualité continue 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 40 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 41. XRadar ✔« Killing Features » ✔ Agrège les résulats de nombreux outils d'analyses de code OSS ✔ Intégration dans les outils de builds Ant et Maven ✔ Historisation, analyse de la tendance qualité du projet: ✔ Synthèse graphique: ✔ Analyse complète, du plus bas niveau ( code) au plus haut (architecture)
  • 42. XRadar 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 42 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 43. Aggrégateur : Sonar 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 43 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 45. Ne pas mesurer pour mesurer ✔Usabilité / Lisibilité ✔Maintenabilité ✔Efficacité / Performance ✔Portabilité ✔Fiabilité ✔Testabilité ✔ Ne pas mesurer pour mesurer
  • 46. Facteurs clés de réussite: une qualité active ✔ Implication des sponsors ✔ Adhésion des développeurs, ✔chacun des acteurs du projet ✔ Ne pas repousser les tests et mesures en fin de projet ✔ Formaliser ses exigences ✔ne pas mesurer pour mesurer ✔intégrer la qualité à la recette aux contrats ✔ Outillage intégré et adapté ✔ Communiquer et fournir des rapports synthétiques aux décideurs.
  • 47. Références : projets et outils OS ✔ FindBugs : http://findbugs.sourceforge.net/ ✔ JavaNCSS : http://www.kclee.de/clemens/java/javancss/ ✔ Ant : http://ant.apache.org/ ✔ Jdepend : http://clarkware.com/software/JDepend.html ✔ Maven 2 :http://maven.apache.org/ ✔ Macker : http://innig.net/macker/index.html ✔ Ckjm : http://www.spinellis.gr/sw/ckjm/doc/indexw.html ✔ Ivy : http://www.jaya.free.fr/ivy/ ✔ Classcycle :http://classycle.sourceforge.net/ ✔ Xradar: http://xradar.sourceforge.net/ ✔ Sonar: http://sonar.codehaus.org/ ✔ ... et encore d'autre sur : http://en.wikipedia.org/wiki/List_of_tools_for_static_code_ana ✔ PMD : http://pmd.sourceforge.net/ ✔ CheckStyle : http://checkstyle.sourceforge.net/ ✔ Metrics : http://metrics.sourceforge.net/ ✔ Junit: http://www.junit.org/ ✔ Unitils: http://www.unitils.org/summary.html ✔ Emma :http://emma.sourceforge.net/ ✔ Cobertura : http://cobertura.sourceforge.net/ ✔ Dbunit: http://www.dbunit.org/ ✔ HttpUnit: http://httpunit.sourceforge.net/
  • 48. Références : biblio ✔ «  Effective Java: Programming Language Guide », Joshua Bloch ✔ « OO Design Quality Metrics », Robert Martin ✔ « Langage Java », Philippe Prados ✔ http://lil.univ-littoral.fr/~oumoumsack/qualite/ ✔ http://www.objectmentor.com/resources/articles/Principles_and_Patterns.pdf ✔ http://www.infoq.com/presentations/effective-api-design ✔ http://www.infoq.com/news/Ken-Schwaber-Sacrificing-Quality ✔ http://www.quotegarden.com/programming.html
  • 49. Les photos ✔ http://flickr.com/photos/slimcoincidence/594599028/ ✔ http://flickr.com/photos/jeanmi/210374309/ ✔ http://flickr.com/photos/lesloups/1907354379/ ✔ http://flickr.com/photos/cheesebikini/804099102/ ✔ http://flickr.com/photos/marysia/514900457/ ✔ http://flickr.com/photos/jurvetson/101046514/ ✔ http://flickr.com/photos/77945684@N00/310887851/ ✔ http://flickr.com/photos/jeremybrooks/1399474069/ ✔ http://flickr.com/photos/invad3r/236233328/ ✔ http://flickr.com/photos/el%2Dcatalejo/1474055306/ ✔ http://flickr.com/photo_zoom.gne?id=1039909856&size=l ✔ http://flickr.com/photos/cunaldo/271683015/ ✔ http://flickr.com/photos/denial_land/2094163680/ ✔ http://flickr.com/photos/clintjcl/382107734/ ✔ http://flickr.com/photos/jurvetson/128666829/ ✔ http://flickr.com/photos/opendemocracy/1417040538/ ✔ http://www.flickr.com/photos/purplemattfish/3918004964/ ✔ http://www.flickr.com/photos/stevendepolo/3096471361/ ✔ http://www.flickr.com/photos/jamesjordan/3859026695/ ✔ http://www.flickr.com/photos/summachphoto/3380254405/in/pool-shocking
  • 50. Questions / Réponses www.parisjug.org Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique
  • 51. Licence http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ 15 Sept 2009 Contrôle Qualité Open Source www.parisjug.org 51 Copyright © 2008 ParisJug. Licence CC – Creative Commons 2.0 France – Paternité – Pas d'Utilisation Commerciale – Partage des Conditions Initiales à l'Identique