Outils de Qualimétrie Open Source pour PHP. Club Qualimétrie 15 janvier 2008

Documents pareils
Bonnes Pratiques de Développement PHP. Pascal MARTIN SQLI Forum PHP 2009, Paris

Squale Le portail qualimétrie open-source

XP DAY mai. Erwan Alliaume Nicolas Le Coz

L Intégration Continue & Agilité

Cours de Java. Sciences-U Lyon. Java - Introduction Java - Fondamentaux Java Avancé.

Méthode de Test. Pour WIKIROUTE. Rapport concernant les méthodes de tests à mettre en place pour assurer la fiabilité de notre projet annuel.

Environnements de développement (intégrés)

Loïc Rossignol Ingénieur Consultant

Plateforme de capture et d analyse de sites Web AspirWeb

Analyse statique de code dans un cycle de développement Web Retour d'expérience

Vérifier la qualité de vos applications logicielle de manière continue

COMPÉTENCES TECHNIQUES

PROJET DE SESSION. Présenté à : Alain April Professeur MGL804 Hivers Par:

ÉVALUATION DE LA MAINTENABILITÉ DE S3MDSS AVEC L OUTIL SONAR

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

Sécurité des applications Retour d'expérience

PHP 5. avancé. 3 e édition. Eric Daspet. Cyril Pierre de Geyer. Préface de Damien Seguy

Glassfish dans le milieu médical. Sun Aquarium Paris 26 Juin 2009 Jacky Renno

Catalogue des Formations Techniques

PHP et LeMonde.fr : passé, présent et avenir Olivier Grange-Labat <grange@lemonde.fr>

Introduction aux Bases de Données Relationnelles Conclusion - 1

Président d Inotekk Gestion de la société, développement du portefeuille clients, gestion et réalisation des projets informatiques

Description de l implantation dans le centre d examen (nom du service ou de l outil et caractéristiques techniques)

DÉVELOPPER DES APPLICATIONS WEB SÉCURISÉES

Revue de code Sécuritéou Test d Intrusion Applicatif. Quel est le plus efficace pour évaluer un niveau de sécurité applicatif?

Formation en Logiciels Libres. Fiche d inscription

laposte.net) Ministère de l'éducation nationale Atelier sécurité Rabat RALL 2007

Curriculum Vitae de Michel Casabianca

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Bases de données et environnements distribués Chapitre I : Architecture logicielle technologies de developpement en environnement

Adresse directe fichier : Adresse url spécifique sur laquelle le lien hypertext du Client doit être

Résoudre les problèmes PHP, les meilleures (et les pires) techniques

les techniques d'extraction, les formulaires et intégration dans un site WEB

Maarch Framework 3 - Maarch. Tests de charge. Professional Services. 11, bd du Sud Est Nanterre

Serveur Web Apache. Jean-Marc Robert Génie logiciel et des TI

REPUBLIQUE TUNISIENNE MINISTERE DES TECHNOLOGIES DE LA COMMUNICATION

Par l'exemple de. Laurent Destailleur

Profil. Formations Certifications. Etienne de LONGEAUX Architecte logiciel/ Lead développeur PHP5/SYMFONY2/ZEND 13 ans d expérience.

Sécurité des sites Web Pas un cours un recueil du net. INF340 Jean-François Berdjugin

PROFIL DU CANDIDAT. Ingénieur Etudes confirmé JAVA ans d expérience

Mercredi 15 Janvier 2014

ACCORD-CADRE DE TECHNIQUES DE L'INFORMATION ET DE LA COMMUNICATION. PROCEDURE ADAPTEE En application des articles 28 et 76 du Code des Marchés Publics

Youssef LYHYAOUI Ingénieur Java/J2EE, SOA, ESB, Web services 31 ans Statut : Indépendant SITUATION ACTUELLE

The Mozilla Art Of War. David Teller. 20 septembre Laboratoire d Informatique Fondamentale d Orléans. La sécurité des extensions.

Plan du cours. Historique du langage Nouveautés de Java 7

TYPO3, le CMS de référence

Pratique et administration des systèmes

Remote Cookies Stealing SIWAR JENHANI (RT4) SOUHIR FARES (RT4)

OWASP Code Review Guide Revue de code. Paris The OWASP Foundation. Victor Vuillard

La montée des bases de données open source

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS

Magento. Magento. Réussir son site e-commerce. Réussir son site e-commerce BLANCHARD. Préface de Sébastien L e p e r s

LANGAGUE JAVA. Public Développeurs souhaitant étendre leur panel de langages de programmation

DÉVELOPPEUR WEB - PHP/SQL


Alexandre Buge Epitech 5 Promo Soutenance de stage du 01/03/2004 au 31/08/2004

Alexandru V. Vlad RADIAN Solution Architect, Lead IT developer

Comparatif CMS. Laurent BAUREN S Bérenger VIDAL Julie NOVI Tautu IENFA

Plan. Tests. 1. Introduction. 1. Introduction

Open Source Professional Training

Qualité du logiciel: Méthodes de test

Grégoire de Lassence. Copyright 2006, SAS Institute Inc. All rights reserved.

Failles XSS : Principes, Catégories Démonstrations, Contre mesures

CMS Open Source : état de l'art et méthodologie de choix

Expert technique J2EE

Hébergement de site web Damien Nouvel

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Groupe Eyrolles, 2004, ISBN :

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Contexte et motivations Les techniques envisagées Evolution des processus Conclusion

MySQL. (Administrateur) (Dernière édition) Programme de formation. France, Belgique, Suisse, Roumanie - Canada

SCIENCES & TECHNOLOGIES - SANTÉ ET STAPS MASTER INFORMATIQUE. Parcours Ingénierie du Logiciel Libre (I2L)

Curriculum Vitae 1 er février 2008

Projet de Java Enterprise Edition

Cahiers des Clauses Techniques

Attaques applicatives

DenyAll Detect. Documentation technique 27/07/2015

Sommaire : Pourquoi créer un site web? Qu est-ce qu un site Web? Les différents types de sites. Quelles solutions peuvent être employées?

Informatique & Systèmes de Communication. Stages de 12 à 16 semaines aux Etats-Unis

ANNEXES. Evaluation de la formation à Polytech Lille Département GIS. Enseignements les plus utiles. Enseignements à renforcer

Expertises Métiers & e-business. Technologies Microsoft & OpenSource. Méthodologies et gestion de projet

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

LICENCE PROFESSIONNELLE SYSTEMES INFORMATIQUES & LOGICIELS

May Lopez PETIT COUTEAU SUISSE CRÉATIF. May Lopez Petit couteau suisse créatif

Systèmes en réseau : Linux 1ère partie : Introduction

Le guide du chercheur. Créer des logiciels à l Université Libre de Bruxelles

Web Application Firewalls (WAF)

Rapport de stage. Développement d un logiciel de vidéoconférence : Enjeux 3. Guillaume DOTT 2009

SQL Server, MySQL, Toad (client MySQL), PowerAMC (modélisation) Proxy SLIS

Hassene BELGACEM. Expériences Professionnelles. JEE architect / Technical leader. Ingénieur Informatique. Cycle Préparatoire

Création d un «Web Worm»

Développement de site web dynaùique Dot.NET

Stage ingénieur : Participation à un projet de convergence des Systèmes d Information de retraite

Tolérance aux Fautes des Grappes d Applications J2EE. Applications Internet dynamiques

Dossier de Presse. Ergonomie. E-commerce. Portails internet. Applications Facebook. Logiciels «prêts à adapter» Logiciels sur mesure

Entraînement au concours ACM-ICPC

Bibliothèque Numérique L'intégrale Collection Ressources Informatiques

Processus d Informatisation

Transcription:

Outils de Qualimétrie Open Source pour PHP Club Qualimétrie 15 janvier 2008

Plan Les outils de qualimétrie Présentation des outils Vérification de règles Production de métriques Sécurité Synthèse 2

Sélection d outils abordés Vérification de règles PHPCheckstyle PHP-Sat PHP_CodeSniffer PHP_Beautifier PHPUnit Production de métriques (statiques) Lint_php SLOCCOUNT PHPUnit Production de métriques (dynamique) PHPUnit PHPCoverage Détection de vulnérabilités (sécurité) Pixy 3

Vérification de règles

Spike PHPCheckstyle http://sourceforge.net/projects/phpcheckstyle Rules Checking PHP Equivalent de l outil CheckStyle pour Java Avantages Facile à installer Règles de mise en forme, nommage, programmation et PHPDoc Inconvénients Outil récent (version initiale sortie en Juillet 2005) Peu de feedback de la communauté Open Source 5

Spike PHPCheckstyle : illustration 6

PHP-sat http://www.program-transformation.org/php/phpsat Rules Checking PHP Analyse statique du code pour détection de «bugs-patterns» Correctness Exposing Info Optimization Style Malicious Code Vulnerability Met en forme le code automatiquement Permet également de détecter des failles de sécurité applicative injections SQL et XSS Avantages Couteau suisse Sensibilisation à la sécurité applicative Inconvénients Produit encore jeune (Google SoC 2006) LGPL 7

PHP_CodeSniffer Rules Checking PHP Détecte les violations de convention de codage Package du framework Pear http://pear.php.net/package/php_codesniffer Avantages Intégré au framework Pear Inconvénients Nombre de règle par défaut limité Obligation de personnalisation Plus un framwork qu un outil 8

PHP_CodeSniffer : illustration Exemple de Fichier résultat : FILE: /chemin/du/code/myfile.php -------------------------------------------------------------------------------- FOUND 5 ERROR(S) AND 1 WARNING(S) AFFECTING 5 LINE(S) -------------------------------------------------------------------------------- 2 ERROR Missing file doc comment 20 ERROR PHP keywords must be lowercase; expected "false" but found "FALSE" 47 ERROR Line not indented correctly; expected 4 spaces but found 1 47 WARNING Equals sign not aligned with surrounding assignments 51 ERROR Missing function doc comment 88 ERROR Line not indented correctly; expected 9 spaces but found 6 -------------------------------------------------------------------------------- 9

PHP_Beautifier Mise en forme du code source PHP Met en forme le code source selon des conventions prédéfinies Package du framework Pear http://pear.php.net/package/php_beautifier Avantages Intégré au framework Pear Fonctionne en ligne de commande Inconvénients Encore en version béta Un certain nombre de bugs recensés 10

Production de métriques

Lint_php Calcul de métrique Permet de calculer la complexité cyclomatique de McCabe Outil utilisable en ligne http://ars.altervista.org/lint_php/lint_php.php Avantages Calcul fiable, algorithme disponible et modifiable Inconvénients N analyse pas plusieurs fichiers en même temps Obligation de copier/coller le code Utilisation peu pratique GPL 12

SLOCCount Calcul de métrique Permet de calculer le nombre de lignes de code (SLOC) Écrit à la base pour calculer le nombre de lignes de code du noyau Linux Supporte bien plus que PHP Avantages Fiabilité du calcul Fonctionne sur de multiples langages en même temps Répartition par technologie Inconvénients Uniquement sur plate-forme Unix et apparentées Une seule métrique http://www.dwheeler.com/sloccount/ GPL 13

PHPUnit Calcul de métriques procédurales Framework pour l écriture de tests unitaires Assure la mesure du taux de couverture des test http://www.phpunit.de/ eq. PHPCoverage La version 3.2 permet le calcul de métriques à différents niveaux (projet, fichier, classe, méthode) tels que Ligne de codes (LOC) Ligne de commentaires (CLOC) Complexité Cyclomatique Et autres. Vérifications de règles type «PMD» Avantages Calcule un nombre important de métriques. Un seul outil pour toutes les métriques (contrairement à Java où plusieurs outils sont nécessaires pour l obtention des mêmes métriques) Inconvénients Calcule les métriques uniquement pour les programmes testés. «Sans bonne couverture de code, les métriques ne seront pas représentatives» 14

PHPUnit : illustration Exemple : code coverage 15

Spike PHPCoverage : illustration 16

Détection de failles dans la sécurité

pixy http://pixybox.seclab.tuwien.ac.at/pixy/ Rules Checking PHP Permet de détecter des failles dans la sécurité de l application (injections SQL et XSS) Avantages Analyse le programme dans son ensemble Rapport documenté fournit après l analyse Inconvénients N analyse pas plusieurs fichiers en même temps. Écrit en Java pour analyser du PHP 18

Résumé : outils pour Java/php Domaine Java Langage PHP Java Outil PHP Rules Checking Checkstyle / PMD PHP Checkstyle PHP Unit / PHP-sat Respect architecture X Macker Métriques procédurales JavaNCSS / IDE PHPUnit / Lint_php Métriques OO X CKJM / JDepend Tests Junit PHPUnit Couverture de test Cobertura/Emma PHPUnit / PHPCoverage Documentation Javadoc PHPDocumentor Sécurité Applicative X PHP-sat / Pixy Mise en forme automatique IDE PHP-sat / PHP Beautifier 19