assurer la qualité du code des projet symfony2
DESCRIPTION
Worshop à FST le 26-04-2014 : Assurer la Qualité du code des projet Symfony2TRANSCRIPT
![Page 1: Assurer la Qualité du code des projet Symfony2](https://reader033.vdocuments.net/reader033/viewer/2022042614/5584c611d8b42ae5138b482a/html5/thumbnails/1.jpg)
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
![Page 2: Assurer la Qualité du code des projet Symfony2](https://reader033.vdocuments.net/reader033/viewer/2022042614/5584c611d8b42ae5138b482a/html5/thumbnails/2.jpg)
Qui suis-je ?C’est quoi la Qualité ?
Outils d’assurance qualité
Qui suis-je ?
Mohammed Rhamnia
Symfonian depuis 6 ans.Ingénieur Développeurchez Edatis.Consultant SymfonyIndépandant.
Mohammed Rhamnia Assurance qualité sur les projets Symfony
![Page 3: Assurer la Qualité du code des projet Symfony2](https://reader033.vdocuments.net/reader033/viewer/2022042614/5584c611d8b42ae5138b482a/html5/thumbnails/3.jpg)
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
![Page 4: Assurer la Qualité du code des projet Symfony2](https://reader033.vdocuments.net/reader033/viewer/2022042614/5584c611d8b42ae5138b482a/html5/thumbnails/4.jpg)
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é fonctionelleFiabilitéFacilité d’utilisationMaintenabilitéRendement / ScalabilitéPortabilité
Mohammed Rhamnia Assurance qualité sur les projets Symfony
![Page 5: Assurer la Qualité du code des projet Symfony2](https://reader033.vdocuments.net/reader033/viewer/2022042614/5584c611d8b42ae5138b482a/html5/thumbnails/5.jpg)
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 formeTestsDocumentation
Mohammed Rhamnia Assurance qualité sur les projets Symfony
![Page 6: Assurer la Qualité du code des projet Symfony2](https://reader033.vdocuments.net/reader033/viewer/2022042614/5584c611d8b42ae5138b482a/html5/thumbnails/6.jpg)
Qui suis-je ?C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en formeTestsDocumentation
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
![Page 7: Assurer la Qualité du code des projet Symfony2](https://reader033.vdocuments.net/reader033/viewer/2022042614/5584c611d8b42ae5138b482a/html5/thumbnails/7.jpg)
Qui suis-je ?C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en formeTestsDocumentation
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
![Page 8: Assurer la Qualité du code des projet Symfony2](https://reader033.vdocuments.net/reader033/viewer/2022042614/5584c611d8b42ae5138b482a/html5/thumbnails/8.jpg)
Qui suis-je ?C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en formeTestsDocumentation
PHP CODE SNIFFER
Mohammed Rhamnia Assurance qualité sur les projets Symfony
![Page 9: Assurer la Qualité du code des projet Symfony2](https://reader033.vdocuments.net/reader033/viewer/2022042614/5584c611d8b42ae5138b482a/html5/thumbnails/9.jpg)
Qui suis-je ?C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en formeTestsDocumentation
PHP Mess Detector
PHPMD : Assurer la qualité de code.
Code inutile.Imbrications trop complexes.CPDDead Code
Mohammed Rhamnia Assurance qualité sur les projets Symfony
![Page 10: Assurer la Qualité du code des projet Symfony2](https://reader033.vdocuments.net/reader033/viewer/2022042614/5584c611d8b42ae5138b482a/html5/thumbnails/10.jpg)
Qui suis-je ?C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en formeTestsDocumentation
PHP Mess Detector
~$ pear channel -discover pear.phpmd.org~$~$ pear channel -discover pear.pdepend.org~$~$ pear install --alldeps phpmd/PHP_PMD
~$ phpmd repertoire_a_testerformat_de_sortie[text|html|xml] rulesets[codesize|unusedcode|naming|design]
Mohammed Rhamnia Assurance qualité sur les projets Symfony
![Page 11: Assurer la Qualité du code des projet Symfony2](https://reader033.vdocuments.net/reader033/viewer/2022042614/5584c611d8b42ae5138b482a/html5/thumbnails/11.jpg)
Qui suis-je ?C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en formeTestsDocumentation
PHP Mess Detector
Mohammed Rhamnia Assurance qualité sur les projets Symfony
![Page 12: Assurer la Qualité du code des projet Symfony2](https://reader033.vdocuments.net/reader033/viewer/2022042614/5584c611d8b42ae5138b482a/html5/thumbnails/12.jpg)
Qui suis-je ?C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en formeTestsDocumentation
Pourquoi Tester ?
BUT : Assurer la bonne qualité de projetTests fonctionnelsTests de performanceTests de robustesseTests de vulnérabilité
Mohammed Rhamnia Assurance qualité sur les projets Symfony
![Page 13: Assurer la Qualité du code des projet Symfony2](https://reader033.vdocuments.net/reader033/viewer/2022042614/5584c611d8b42ae5138b482a/html5/thumbnails/13.jpg)
Qui suis-je ?C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en formeTestsDocumentation
PhpUnit
PhpUnit : Framework pour créers des testes pour des applicationsphp.
Tests fonctionnelsTests Unitaire
~$ pear config -set auto_discover 1~$~$ pear install pear.phpunit.de/PHPUni
Mohammed Rhamnia Assurance qualité sur les projets Symfony
![Page 14: Assurer la Qualité du code des projet Symfony2](https://reader033.vdocuments.net/reader033/viewer/2022042614/5584c611d8b42ae5138b482a/html5/thumbnails/14.jpg)
Qui suis-je ?C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en formeTestsDocumentation
Exemple Test Unitaire
// src/Acme/DemoBundle/Utility/Calculator.php
namespace Acme\DemoBundle\Utility;
class Calculator{
public function add($a, $b){
return $a + $b;}
}
Mohammed Rhamnia Assurance qualité sur les projets Symfony
![Page 15: Assurer la Qualité du code des projet Symfony2](https://reader033.vdocuments.net/reader033/viewer/2022042614/5584c611d8b42ae5138b482a/html5/thumbnails/15.jpg)
Qui suis-je ?C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en formeTestsDocumentation
Exemple Test Unitaire
// src/Acme/DemoBundle/Tests/Utility/CalculatorTest.php
namespace Acme\DemoBundle\Tests\Utility;
use Acme\DemoBundle\Utility\Calculator;
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
![Page 16: Assurer la Qualité du code des projet Symfony2](https://reader033.vdocuments.net/reader033/viewer/2022042614/5584c611d8b42ae5138b482a/html5/thumbnails/16.jpg)
Qui suis-je ?C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en formeTestsDocumentation
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
![Page 17: Assurer la Qualité du code des projet Symfony2](https://reader033.vdocuments.net/reader033/viewer/2022042614/5584c611d8b42ae5138b482a/html5/thumbnails/17.jpg)
Qui suis-je ?C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en formeTestsDocumentation
Exemple Test Fonctionelle
Mohammed Rhamnia Assurance qualité sur les projets Symfony
![Page 18: Assurer la Qualité du code des projet Symfony2](https://reader033.vdocuments.net/reader033/viewer/2022042614/5584c611d8b42ae5138b482a/html5/thumbnails/18.jpg)
Qui suis-je ?C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en formeTestsDocumentation
Sami
Sami : Yet another PHP API documentation generator.
Facile à installerRapideModerne
~$ 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
![Page 19: Assurer la Qualité du code des projet Symfony2](https://reader033.vdocuments.net/reader033/viewer/2022042614/5584c611d8b42ae5138b482a/html5/thumbnails/19.jpg)
Qui suis-je ?C’est quoi la Qualité ?
Outils d’assurance qualité
Mise en formeTestsDocumentation
Merci
Mohammed Rhamnia Assurance qualité sur les projets Symfony