SlideShare a Scribd company logo
1 of 19
Download to read offline
Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Assurance qualité sur les projets Symfony
Mohammed Rhamnia
Symfony-Tunisie
26 avril 2014
Mohammed Rhamnia Assurance qualité sur les projets Symfony
Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Qui suis-je ?
Mohammed Rhamnia
Symfonian depuis 6 ans.
Ingénieur Développeur
chez Edatis.
Consultant Symfony
Indépandant.
Mohammed Rhamnia Assurance qualité sur les projets Symfony
Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Les critères de qualité
Les critères pour un Symfonian
C’est quoi la Qualité ?
Pouvez-vous comprendre votre code aprés quelques temps ?
Es ce que les autres peuvent comprendre votre code ?
Es ce que votre application a été bien testé ?
Avez vous déjà publié un code buggé ?
Es ce que votre code a été bien documenter ?
Mohammed Rhamnia Assurance qualité sur les projets Symfony
Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Les critères de qualité
Les critères pour un Symfonian
Les critères de qualité
Capacité fonctionelle
Fiabilité
Facilité d’utilisation
Maintenabilité
Rendement / Scalabilité
Portabilité
Mohammed Rhamnia Assurance qualité sur les projets Symfony
Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Les critères de qualité
Les critères pour un Symfonian
Les critères de qualité pour un Symfonian
Mise en forme
Tests
Documentation
Mohammed Rhamnia Assurance qualité sur les projets Symfony
Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
PHP_CODE_SNIFFER
PHPCS : Detecteur des violation des conventions de codage
Une classe par fichier.
Tout documenter.
Organisation des méthodes.
camelCase
http://symfony.com/doc/current/contributing/code/
standards.html
Mohammed Rhamnia Assurance qualité sur les projets Symfony
Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
PHP CODE SNIFFER
~$ pear install PHP_CodeSniffer
~$
~$ pear config -show | grep php_dir
~$
~$ cd /path/to/pear/PHP/CodeSniffer/
Standards
~$
~$ git clone git :// github.com/opensky/
Symfony2 -coding -standard.git Symfony2
~$
~$ phpcs --config -set default_standard
Symfony2
Mohammed Rhamnia Assurance qualité sur les projets Symfony
Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
PHP CODE SNIFFER
Mohammed Rhamnia Assurance qualité sur les projets Symfony
Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
PHP Mess Detector
PHPMD : Assurer la qualité de code.
Code inutile.
Imbrications trop complexes.
CPD
Dead Code
Mohammed Rhamnia Assurance qualité sur les projets Symfony
Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
PHP Mess Detector
~$ pear channel -discover pear.phpmd.org
~$
~$ pear channel -discover pear.pdepend.org
~$
~$ pear install --alldeps phpmd/PHP_PMD
~$ phpmd repertoire_a_tester
format_de_sortie[text|html|xml] rulesets[
codesize|unusedcode|naming|design]
Mohammed Rhamnia Assurance qualité sur les projets Symfony
Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
PHP Mess Detector
Mohammed Rhamnia Assurance qualité sur les projets Symfony
Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
Pourquoi Tester ?
BUT : Assurer la bonne qualité de projet
Tests fonctionnels
Tests de performance
Tests de robustesse
Tests de vulnérabilité
Mohammed Rhamnia Assurance qualité sur les projets Symfony
Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
PhpUnit
PhpUnit : Framework pour créers des testes pour des applications
php.
Tests fonctionnels
Tests Unitaire
~$ pear config -set auto_discover 1
~$
~$ pear install pear.phpunit.de/PHPUni
Mohammed Rhamnia Assurance qualité sur les projets Symfony
Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
Exemple Test Unitaire
// src/Acme/DemoBundle/Utility/
Calculator.php
namespace AcmeDemoBundleUtility;
class Calculator
{
public function add($a , $b)
{
return $a + $b;
}
}
Mohammed Rhamnia Assurance qualité sur les projets Symfony
Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
Exemple Test Unitaire
// src/Acme/DemoBundle/Tests/Utility/
CalculatorTest.php
namespace AcmeDemoBundleTestsUtility;
use AcmeDemoBundleUtilityCalculator;
class CalculatorTest extends 
PHPUnit_Framework_TestCase
{
public function testAdd ()
{
$calc = new Calculator ();
$result = $calc ->add(10, 10);
$this ->assertEquals (20, $result);
}
} Mohammed Rhamnia Assurance qualité sur les projets Symfony
Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
Exemple Test Unitaire
~$ cp app/phpunit.xml.dist app/phpunit.
xml
~$
~$ phpunit -c app src/Acme/DemoBundle/
Tests/Utility/CalculatorTest.php
Mohammed Rhamnia Assurance qualité sur les projets Symfony
Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
Exemple Test Fonctionelle
Mohammed Rhamnia Assurance qualité sur les projets Symfony
Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
Sami
Sami : Yet another PHP API documentation generator.
Facile à installer
Rapide
Moderne
~$ git clone https :// github.com/fabpot/Sami.
git ./ sami
~$ cd sami
~$ composer install
~$ php sami.php update ../ pull/SamiConfig.
php
Mohammed Rhamnia Assurance qualité sur les projets Symfony
Qui suis-je ?
C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en forme
Tests
Documentation
Merci
Mohammed Rhamnia Assurance qualité sur les projets Symfony

More Related Content

Recently uploaded

webinaire eBIS n°9 La génétique du Méthane_02_20240321_SFresco_Methabreed.pdf
webinaire eBIS n°9 La génétique du Méthane_02_20240321_SFresco_Methabreed.pdfwebinaire eBIS n°9 La génétique du Méthane_02_20240321_SFresco_Methabreed.pdf
webinaire eBIS n°9 La génétique du Méthane_02_20240321_SFresco_Methabreed.pdfInstitut de l'Elevage - Idele
 
rapport stage OCP : Elaboration plan des machines : La machine stockeuse et ...
rapport stage OCP : Elaboration plan des machines :  La machine stockeuse et ...rapport stage OCP : Elaboration plan des machines :  La machine stockeuse et ...
rapport stage OCP : Elaboration plan des machines : La machine stockeuse et ...NiHad27
 
QCM Réseaux informatique V19.02.2017.pdf
QCM Réseaux informatique V19.02.2017.pdfQCM Réseaux informatique V19.02.2017.pdf
QCM Réseaux informatique V19.02.2017.pdfAyoub893663
 
webinaire eBIS n°9 La génétique du Méthane_03_20240321_JPromp_presentation_Mé...
webinaire eBIS n°9 La génétique du Méthane_03_20240321_JPromp_presentation_Mé...webinaire eBIS n°9 La génétique du Méthane_03_20240321_JPromp_presentation_Mé...
webinaire eBIS n°9 La génétique du Méthane_03_20240321_JPromp_presentation_Mé...Institut de l'Elevage - Idele
 
2021 - Rapport STAGE BASSAM 4eme GEII ULT
2021 - Rapport STAGE BASSAM 4eme GEII ULT2021 - Rapport STAGE BASSAM 4eme GEII ULT
2021 - Rapport STAGE BASSAM 4eme GEII ULTBassamRhouma
 
2022-PRESENTATION DE PROJET FIN D'ETUDE-REHOUMA BASSEM.pptx
2022-PRESENTATION DE PROJET FIN D'ETUDE-REHOUMA BASSEM.pptx2022-PRESENTATION DE PROJET FIN D'ETUDE-REHOUMA BASSEM.pptx
2022-PRESENTATION DE PROJET FIN D'ETUDE-REHOUMA BASSEM.pptxBassamRhouma
 
webinaire eBIS n°9 La génétique du Méthane_01_20240321_DBoichard_contexte.pdf
webinaire eBIS n°9 La génétique du Méthane_01_20240321_DBoichard_contexte.pdfwebinaire eBIS n°9 La génétique du Méthane_01_20240321_DBoichard_contexte.pdf
webinaire eBIS n°9 La génétique du Méthane_01_20240321_DBoichard_contexte.pdfInstitut de l'Elevage - Idele
 

Recently uploaded (7)

webinaire eBIS n°9 La génétique du Méthane_02_20240321_SFresco_Methabreed.pdf
webinaire eBIS n°9 La génétique du Méthane_02_20240321_SFresco_Methabreed.pdfwebinaire eBIS n°9 La génétique du Méthane_02_20240321_SFresco_Methabreed.pdf
webinaire eBIS n°9 La génétique du Méthane_02_20240321_SFresco_Methabreed.pdf
 
rapport stage OCP : Elaboration plan des machines : La machine stockeuse et ...
rapport stage OCP : Elaboration plan des machines :  La machine stockeuse et ...rapport stage OCP : Elaboration plan des machines :  La machine stockeuse et ...
rapport stage OCP : Elaboration plan des machines : La machine stockeuse et ...
 
QCM Réseaux informatique V19.02.2017.pdf
QCM Réseaux informatique V19.02.2017.pdfQCM Réseaux informatique V19.02.2017.pdf
QCM Réseaux informatique V19.02.2017.pdf
 
webinaire eBIS n°9 La génétique du Méthane_03_20240321_JPromp_presentation_Mé...
webinaire eBIS n°9 La génétique du Méthane_03_20240321_JPromp_presentation_Mé...webinaire eBIS n°9 La génétique du Méthane_03_20240321_JPromp_presentation_Mé...
webinaire eBIS n°9 La génétique du Méthane_03_20240321_JPromp_presentation_Mé...
 
2021 - Rapport STAGE BASSAM 4eme GEII ULT
2021 - Rapport STAGE BASSAM 4eme GEII ULT2021 - Rapport STAGE BASSAM 4eme GEII ULT
2021 - Rapport STAGE BASSAM 4eme GEII ULT
 
2022-PRESENTATION DE PROJET FIN D'ETUDE-REHOUMA BASSEM.pptx
2022-PRESENTATION DE PROJET FIN D'ETUDE-REHOUMA BASSEM.pptx2022-PRESENTATION DE PROJET FIN D'ETUDE-REHOUMA BASSEM.pptx
2022-PRESENTATION DE PROJET FIN D'ETUDE-REHOUMA BASSEM.pptx
 
webinaire eBIS n°9 La génétique du Méthane_01_20240321_DBoichard_contexte.pdf
webinaire eBIS n°9 La génétique du Méthane_01_20240321_DBoichard_contexte.pdfwebinaire eBIS n°9 La génétique du Méthane_01_20240321_DBoichard_contexte.pdf
webinaire eBIS n°9 La génétique du Méthane_01_20240321_DBoichard_contexte.pdf
 

Assurer la Qualité du code des projet Symfony2

  • 1. Qui suis-je ? C’est quoi la Qualité ? Outils d’assurance qualité Assurance qualité sur les projets Symfony Mohammed Rhamnia Symfony-Tunisie 26 avril 2014 Mohammed Rhamnia Assurance qualité sur les projets Symfony
  • 2. Qui suis-je ? C’est quoi la Qualité ? Outils d’assurance qualité Qui suis-je ? Mohammed Rhamnia Symfonian depuis 6 ans. Ingénieur Développeur chez Edatis. Consultant Symfony Indépandant. Mohammed Rhamnia Assurance qualité sur les projets Symfony
  • 3. Qui suis-je ? C’est quoi la Qualité ? Outils d’assurance qualité Les critères de qualité Les critères pour un Symfonian C’est quoi la Qualité ? Pouvez-vous comprendre votre code aprés quelques temps ? Es ce que les autres peuvent comprendre votre code ? Es ce que votre application a été bien testé ? Avez vous déjà publié un code buggé ? Es ce que votre code a été bien documenter ? Mohammed Rhamnia Assurance qualité sur les projets Symfony
  • 4. Qui suis-je ? C’est quoi la Qualité ? Outils d’assurance qualité Les critères de qualité Les critères pour un Symfonian Les critères de qualité Capacité fonctionelle Fiabilité Facilité d’utilisation Maintenabilité Rendement / Scalabilité Portabilité Mohammed Rhamnia Assurance qualité sur les projets Symfony
  • 5. Qui suis-je ? C’est quoi la Qualité ? Outils d’assurance qualité Les critères de qualité Les critères pour un Symfonian Les critères de qualité pour un Symfonian Mise en forme Tests Documentation Mohammed Rhamnia Assurance qualité sur les projets Symfony
  • 6. Qui suis-je ? C’est quoi la Qualité ? Outils d’assurance qualité Mise en forme Tests Documentation PHP_CODE_SNIFFER PHPCS : Detecteur des violation des conventions de codage Une classe par fichier. Tout documenter. Organisation des méthodes. camelCase http://symfony.com/doc/current/contributing/code/ standards.html Mohammed Rhamnia Assurance qualité sur les projets Symfony
  • 7. Qui suis-je ? C’est quoi la Qualité ? Outils d’assurance qualité Mise en forme Tests Documentation PHP CODE SNIFFER ~$ pear install PHP_CodeSniffer ~$ ~$ pear config -show | grep php_dir ~$ ~$ cd /path/to/pear/PHP/CodeSniffer/ Standards ~$ ~$ git clone git :// github.com/opensky/ Symfony2 -coding -standard.git Symfony2 ~$ ~$ phpcs --config -set default_standard Symfony2 Mohammed Rhamnia Assurance qualité sur les projets Symfony
  • 8. Qui suis-je ? C’est quoi la Qualité ? Outils d’assurance qualité Mise en forme Tests Documentation PHP CODE SNIFFER Mohammed Rhamnia Assurance qualité sur les projets Symfony
  • 9. Qui suis-je ? C’est quoi la Qualité ? Outils d’assurance qualité Mise en forme Tests Documentation PHP Mess Detector PHPMD : Assurer la qualité de code. Code inutile. Imbrications trop complexes. CPD Dead Code Mohammed Rhamnia Assurance qualité sur les projets Symfony
  • 10. Qui suis-je ? C’est quoi la Qualité ? Outils d’assurance qualité Mise en forme Tests Documentation PHP Mess Detector ~$ pear channel -discover pear.phpmd.org ~$ ~$ pear channel -discover pear.pdepend.org ~$ ~$ pear install --alldeps phpmd/PHP_PMD ~$ phpmd repertoire_a_tester format_de_sortie[text|html|xml] rulesets[ codesize|unusedcode|naming|design] Mohammed Rhamnia Assurance qualité sur les projets Symfony
  • 11. Qui suis-je ? C’est quoi la Qualité ? Outils d’assurance qualité Mise en forme Tests Documentation PHP Mess Detector Mohammed Rhamnia Assurance qualité sur les projets Symfony
  • 12. Qui suis-je ? C’est quoi la Qualité ? Outils d’assurance qualité Mise en forme Tests Documentation Pourquoi Tester ? BUT : Assurer la bonne qualité de projet Tests fonctionnels Tests de performance Tests de robustesse Tests de vulnérabilité Mohammed Rhamnia Assurance qualité sur les projets Symfony
  • 13. Qui suis-je ? C’est quoi la Qualité ? Outils d’assurance qualité Mise en forme Tests Documentation PhpUnit PhpUnit : Framework pour créers des testes pour des applications php. Tests fonctionnels Tests Unitaire ~$ pear config -set auto_discover 1 ~$ ~$ pear install pear.phpunit.de/PHPUni Mohammed Rhamnia Assurance qualité sur les projets Symfony
  • 14. Qui suis-je ? C’est quoi la Qualité ? Outils d’assurance qualité Mise en forme Tests Documentation Exemple Test Unitaire // src/Acme/DemoBundle/Utility/ Calculator.php namespace AcmeDemoBundleUtility; class Calculator { public function add($a , $b) { return $a + $b; } } Mohammed Rhamnia Assurance qualité sur les projets Symfony
  • 15. Qui suis-je ? C’est quoi la Qualité ? Outils d’assurance qualité Mise en forme Tests Documentation Exemple Test Unitaire // src/Acme/DemoBundle/Tests/Utility/ CalculatorTest.php namespace AcmeDemoBundleTestsUtility; use AcmeDemoBundleUtilityCalculator; class CalculatorTest extends PHPUnit_Framework_TestCase { public function testAdd () { $calc = new Calculator (); $result = $calc ->add(10, 10); $this ->assertEquals (20, $result); } } Mohammed Rhamnia Assurance qualité sur les projets Symfony
  • 16. Qui suis-je ? C’est quoi la Qualité ? Outils d’assurance qualité Mise en forme Tests Documentation Exemple Test Unitaire ~$ cp app/phpunit.xml.dist app/phpunit. xml ~$ ~$ phpunit -c app src/Acme/DemoBundle/ Tests/Utility/CalculatorTest.php Mohammed Rhamnia Assurance qualité sur les projets Symfony
  • 17. Qui suis-je ? C’est quoi la Qualité ? Outils d’assurance qualité Mise en forme Tests Documentation Exemple Test Fonctionelle Mohammed Rhamnia Assurance qualité sur les projets Symfony
  • 18. Qui suis-je ? C’est quoi la Qualité ? Outils d’assurance qualité Mise en forme Tests Documentation Sami Sami : Yet another PHP API documentation generator. Facile à installer Rapide Moderne ~$ git clone https :// github.com/fabpot/Sami. git ./ sami ~$ cd sami ~$ composer install ~$ php sami.php update ../ pull/SamiConfig. php Mohammed Rhamnia Assurance qualité sur les projets Symfony
  • 19. Qui suis-je ? C’est quoi la Qualité ? Outils d’assurance qualité Mise en forme Tests Documentation Merci Mohammed Rhamnia Assurance qualité sur les projets Symfony