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.
1. Automatiser
la qualité
Paris,France,6 juin 2012
samedi 9 juin 12
2. Intervenant
Damien Seguy
damien.seguy@gmail.com
Directeur technique
Bysoft Chine
Expert LAMP
Auteur de livres
samedi 9 juin 12
3. Agenda
Automatisation des tests
Outils pour surveiller le code
Rapports et extraits
samedi 9 juin 12
4. Automatisation de la qualité
Pour adopter les bons réflexes dès le
début du projets
Pour assurer un suivi continu
Pour fixer des objectifs aux développeurs
Pour traiter 50 projets en même temps
samedi 9 juin 12
5. Objectifs
Peu de mise en place
Pas d’implication utilisateur
Possibilité de faire apparaître valoriser
la qualité auprès des clients
samedi 9 juin 12
6. Contraintes
Fournir des données utilisables par les
développeurs
Fournir un bilan lisible à la direction de
projet et aux clients
samedi 9 juin 12
7. Solutions
Adopter les outils standards du marché
Publier des courbes d’évolutions
Publier des objectifs
Faire fonctionner le tout avec un cron
samedi 9 juin 12
8. Objet de suivi
Code PHP
Code IHM
Aspects complémentaires
samedi 9 juin 12
9. Révision SVN
Evolution de la version SVN
Mesure de l’activité
Découpage par branche
samedi 9 juin 12
11. phploc
PHP Lines of code
Compte les lignes de code
ainsi qu’un bon nombre de structures
samedi 9 juin 12
12. Files: 9178
Lines of Code (LOC): 1403381
Cyclomatic Complexity / Lines of Code: 0.10
Comment Lines of Code (CLOC): 608258
Non-Comment Lines of Code (NCLOC): 795123
Namespaces: 0
Interfaces: 172
Classes: 7989
Abstract: 368 (4.61%)
Concrete: 7621 (95.39%)
Average Class Length (NCLOC): 91
Methods: 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: 4
Functions: 153
Constants: 6174
Global constants: 303
Class constants: 5871
samedi 9 juin 12
13. PHP_CodeSniffer
Conventions de code
Ça n’intéresse personne
samedi 9 juin 12
14. Inventaire de nommage
Inverse de la conception
Extrait tous les noms des classes,
variables, constantes, fonctions
Appliquer la validation orthographique
Scripts maison
samedi 9 juin 12
16. Validateur HTML
Fonctionne sur les pages entières
Nécessite un test sur un serveur en
fonctionnement
Utilise le validateur du W3C
Choisir la version HTML cible
samedi 9 juin 12
17. Css-validator
Emis directement par le W3C
Applique les standards 1,2,2.1,3
Bonne implication des intégrateurs
A mort IE6
samedi 9 juin 12
19. Images
Vérifie la compression
Vérifie le format
Liste les suggestions de corrections
Attention, impact sur le code...
samedi 9 juin 12
20. Non modification du framework
Valable sur Magento, Zend Framework
Pas sur Drupal..
Liste les fichiers ajoutés, modifiés,
effacés
Pratique ultérieurement pour éviter
les frameworks externes
samedi 9 juin 12
21. Performance ab
Effectue un test de performance sur le
site de tests
Mesure la performance, et indique le
temps moyen de traitement
Intéressant au niveau de l’évolution
A compléter avec les tests phantomjs
pour inclure les media
samedi 9 juin 12
23. Capture d’écran
Avec phantomjs : capture la home page,
puis produit une image
Parfait a produire aux clients
Utiliser un outil de différence d’image
pour mesurer l’évolution de la home
page
samedi 9 juin 12
27. Audit SQL
maatkit
Faire la différence entre les tables déjà
existantes et les nouvelles
samedi 9 juin 12
28. Fuzzing
Tests automatique des formulaires
Injections de valeurs au hasard
Vérification du résultat correct
samedi 9 juin 12
29. Lecture des logs
Logs Apache, PHP et MySQL
Extraire simplement les erreurs, les
fichiers et produire une liste courte
Travailler sur les erreurs les plus
récentes, puis par ordre de fréquence
samedi 9 juin 12
30. Tests de navigation
Ajouter un proxy sur le serveur de tests
Enregistrer l’utilisation du site
URL, post, cookies
Produire un scénario JMeter
Surveiller les erreurs?
samedi 9 juin 12
31. Mise en place
Faire le tri entre le code maison et celui
des frameworks
Installation des logiciels
Surveillance de leur configuration
Exécution 2 fois par jour
samedi 9 juin 12
32. Ignoré
Parallèlisation des tâches
Travail sur les diff
samedi 9 juin 12
33. Rapports
Développeurs
Liste de résultats, Evolutions
Management
Evolutions, indicateurs (ROV)
Clients
Indicateurs, captures, résumé manuel
samedi 9 juin 12
34. Bilan
47 projets suivis en même temps
Basé sur le dépot SVN et 1 URL
Temps total de traitement : 6h30
Mise en place sur 2 semaines
Adoption par la direction lente
Présentations pour les clients délicate
samedi 9 juin 12
35. Merci!
damien.seguy@gmail.com
http://www.slideshare.net/
dseguy
samedi 9 juin 12
36. 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