Download - Automatiser la qualite
Automatiser la qualité
Paris,France,6 juin 2012
samedi 9 juin 12
Intervenant
Damien Seguy
Directeur techniqueBysoft Chine
Expert LAMP
Auteur de livres
samedi 9 juin 12
Agenda
Automatisation des testsOutils pour surveiller le codeRapports et extraits
samedi 9 juin 12
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
Objectifs
Peu de mise en placePas d’implication utilisateurPossibilité de faire apparaître valoriser la qualité auprès des clients
samedi 9 juin 12
Contraintes
Fournir des données utilisables par les développeursFournir un bilan lisible à la direction de projet et aux clients
samedi 9 juin 12
Solutions
Adopter les outils standards du marchéPublier des courbes d’évolutionsPublier des objectifsFaire fonctionner le tout avec un cron
samedi 9 juin 12
Objet de suivi
Code PHPCode IHMAspects complémentaires
samedi 9 juin 12
Révision SVN
Evolution de la version SVNMesure de l’activitéDécoupage par branche
samedi 9 juin 12
samedi 9 juin 12
phploc
PHP Lines of codeCompte les lignes de code
ainsi qu’un bon nombre de structures
samedi 9 juin 12
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
PHP_CodeSniffer
Conventions de codeÇa n’intéresse personne
samedi 9 juin 12
Inventaire de nommage
Inverse de la conceptionExtrait tous les noms des classes, variables, constantes, fonctionsAppliquer la validation orthographiqueScripts maison
samedi 9 juin 12
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
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
Css-validator
Emis directement par le W3CApplique les standards 1,2,2.1,3Bonne implication des intégrateursA mort IE6
samedi 9 juin 12
samedi 9 juin 12
Images
Vérifie la compressionVérifie le format
Liste les suggestions de correctionsAttention, impact sur le code...
samedi 9 juin 12
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
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
samedi 9 juin 12
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
samedi 9 juin 12
JSlint pour javascript
phantomjs + jslintPenser a le mettre a jour souvent
samedi 9 juin 12
D’autres idées
samedi 9 juin 12
Audit SQL
maatkitFaire la différence entre les tables déjà existantes et les nouvelles
samedi 9 juin 12
Fuzzing
Tests automatique des formulairesInjections de valeurs au hasardVérification du résultat correct
samedi 9 juin 12
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
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
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
Ignoré
Parallèlisation des tâchesTravail sur les diff
samedi 9 juin 12
Rapports
DéveloppeursListe de résultats, Evolutions
ManagementEvolutions, indicateurs (ROV)
ClientsIndicateurs, captures, résumé manuel
samedi 9 juin 12
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
Merci!
http://www.slideshare.net/dseguy
samedi 9 juin 12
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