36
Automatiser la qualité ParisFrance6 juin 2012 samedi 9 juin 12

Automatiser la qualite

Embed Size (px)

DESCRIPTION

Il faut tester pour vérifier son code. Et comme il faut le faire tout au long du cycle de vie d'un projet, il vaut mieux s'outiller pour laisser à la machine le travail laborieux et pouvoir intervenir. De la convention de code aux vérifications d'interfaces, nous passerons en revue les outils les plus pratiques à mettre en place, la discipline de projet à appliquer et comment montrer aux utilisateurs la somme des efforts réalisés.

Citation preview

Page 1: Automatiser la qualite

Automatiser la qualité

Paris,France,6 juin 2012

samedi 9 juin 12

Page 2: Automatiser la qualite

Intervenant

Damien Seguy

[email protected]

Directeur techniqueBysoft Chine

Expert LAMP

Auteur de livres

samedi 9 juin 12

Page 3: Automatiser la qualite

Agenda

Automatisation des testsOutils pour surveiller le codeRapports et extraits

samedi 9 juin 12

Page 4: Automatiser la qualite

Automatisation de la qualité

Pour adopter les bons réflexes dès le début du projetsPour assurer un suivi continuPour fixer des objectifs aux développeursPour traiter 50 projets en même temps

samedi 9 juin 12

Page 5: Automatiser la qualite

Objectifs

Peu de mise en placePas d’implication utilisateurPossibilité de faire apparaître valoriser la qualité auprès des clients

samedi 9 juin 12

Page 6: Automatiser la qualite

Contraintes

Fournir des données utilisables par les développeursFournir un bilan lisible à la direction de projet et aux clients

samedi 9 juin 12

Page 7: Automatiser la qualite

Solutions

Adopter les outils standards du marchéPublier des courbes d’évolutionsPublier des objectifsFaire fonctionner le tout avec un cron

samedi 9 juin 12

Page 8: Automatiser la qualite

Objet de suivi

Code PHPCode IHMAspects complémentaires

samedi 9 juin 12

Page 9: Automatiser la qualite

Révision SVN

Evolution de la version SVNMesure de l’activitéDécoupage par branche

samedi 9 juin 12

Page 10: Automatiser la qualite

samedi 9 juin 12

Page 11: Automatiser la qualite

phploc

PHP Lines of codeCompte les lignes de code

ainsi qu’un bon nombre de structures

samedi 9 juin 12

Page 12: Automatiser la qualite

Files: 9178

Lines of Code (LOC): 1403381 Cyclomatic Complexity / Lines of Code: 0.10Comment Lines of Code (CLOC): 608258Non-Comment Lines of Code (NCLOC): 795123

Namespaces: 0Interfaces: 172Classes: 7989 Abstract: 368 (4.61%) Concrete: 7621 (95.39%) Average Class Length (NCLOC): 91Methods: 44768 Scope: Non-Static: 43352 (96.84%) Static: 1416 (3.16%) Visibility: Public: 33467 (74.76%) Non-Public: 11301 (25.24%) Average Method Length (NCLOC): 16 Cyclomatic Complexity / Number of Methods: 2.72

Anonymous Functions: 4Functions: 153

Constants: 6174 Global constants: 303 Class constants: 5871

samedi 9 juin 12

Page 13: Automatiser la qualite

PHP_CodeSniffer

Conventions de codeÇa n’intéresse personne

samedi 9 juin 12

Page 14: Automatiser la qualite

Inventaire de nommage

Inverse de la conceptionExtrait tous les noms des classes, variables, constantes, fonctionsAppliquer la validation orthographiqueScripts maison

samedi 9 juin 12

Page 15: Automatiser la qualite

Revue rapide [$taxConfig] => 2 [$config] => 4 [$uid] => 36 [$type] => 19 [$id] => 43 [$obj] => 31 [$email] => 33 [$customer] => 75 [$newPassword] => 2 [$websiteId] => 13 [$collection] => 70 [$invitation] => 4 [$sender] => 8 [$recipients] => 8 [$template] => 13 [$category] => 61

[$shippingAddressId] => 3 [$billingResult] => 3 [$shippingResult] => 3 [$isNewCustomer] => 2 [$service] => 4 [$redirectUrl] => 9 [$agreement] => 3 [$customerAddressId] => 2 [$sale_quote_id] => 6 [$invoice_type] => 3 [$invoice_content] => 3 [$invoice_id] => 4 [$methdelivery] => 27 [$citys] => 10 [$e] => 72 [$category_id] => 2

samedi 9 juin 12

Page 16: Automatiser la qualite

Validateur HTML

Fonctionne sur les pages entièresNécessite un test sur un serveur en fonctionnementUtilise le validateur du W3CChoisir la version HTML cible

samedi 9 juin 12

Page 17: Automatiser la qualite

Css-validator

Emis directement par le W3CApplique les standards 1,2,2.1,3Bonne implication des intégrateursA mort IE6

samedi 9 juin 12

Page 18: Automatiser la qualite

samedi 9 juin 12

Page 19: Automatiser la qualite

Images

Vérifie la compressionVérifie le format

Liste les suggestions de correctionsAttention, impact sur le code...

samedi 9 juin 12

Page 20: Automatiser la qualite

Non modification du framework

Valable sur Magento, Zend FrameworkPas sur Drupal..

Liste les fichiers ajoutés, modifiés, effacés

Pratique ultérieurement pour éviter les frameworks externes

samedi 9 juin 12

Page 21: Automatiser la qualite

Performance ab

Effectue un test de performance sur le site de testsMesure la performance, et indique le temps moyen de traitementIntéressant au niveau de l’évolutionA compléter avec les tests phantomjs pour inclure les media

samedi 9 juin 12

Page 22: Automatiser la qualite

samedi 9 juin 12

Page 23: Automatiser la qualite

Capture d’écran

Avec phantomjs : capture la home page, puis produit une imageParfait a produire aux clientsUtiliser un outil de différence d’image pour mesurer l’évolution de la home page

samedi 9 juin 12

Page 24: Automatiser la qualite

samedi 9 juin 12

Page 25: Automatiser la qualite

JSlint pour javascript

phantomjs + jslintPenser a le mettre a jour souvent

samedi 9 juin 12

Page 26: Automatiser la qualite

D’autres idées

samedi 9 juin 12

Page 27: Automatiser la qualite

Audit SQL

maatkitFaire la différence entre les tables déjà existantes et les nouvelles

samedi 9 juin 12

Page 28: Automatiser la qualite

Fuzzing

Tests automatique des formulairesInjections de valeurs au hasardVérification du résultat correct

samedi 9 juin 12

Page 29: Automatiser la qualite

Lecture des logs

Logs Apache, PHP et MySQL

Extraire simplement les erreurs, les fichiers et produire une liste courteTravailler sur les erreurs les plus récentes, puis par ordre de fréquence

samedi 9 juin 12

Page 30: Automatiser la qualite

Tests de navigation

Ajouter un proxy sur le serveur de testsEnregistrer l’utilisation du site

URL, post, cookiesProduire un scénario JMeterSurveiller les erreurs?

samedi 9 juin 12

Page 31: Automatiser la qualite

Mise en place

Faire le tri entre le code maison et celui des frameworksInstallation des logiciels

Surveillance de leur configurationExécution 2 fois par jour

samedi 9 juin 12

Page 32: Automatiser la qualite

Ignoré

Parallèlisation des tâchesTravail sur les diff

samedi 9 juin 12

Page 33: Automatiser la qualite

Rapports

DéveloppeursListe de résultats, Evolutions

ManagementEvolutions, indicateurs (ROV)

ClientsIndicateurs, captures, résumé manuel

samedi 9 juin 12

Page 34: Automatiser la qualite

Bilan

47 projets suivis en même tempsBasé sur le dépot SVN et 1 URLTemps total de traitement : 6h30

Mise en place sur 2 semainesAdoption par la direction lentePrésentations pour les clients délicate

samedi 9 juin 12

Page 36: Automatiser la qualite

Il faut tester pour vérifier son code. Et comme il faut le faire tout au long du cycle de vie d'un projet, il vaut mieux s'outiller pour laisser à la machine le travail laborieux et pouvoir intervenir. De la convention de code aux vérifications d'interfaces, nous passerons en revue les outils les plus pratiques à mettre en place, la discipline de projet à appliquer et comment montrer aux utilisateurs la somme des efforts réalisés.

samedi 9 juin 12