Assurer la Qualité du code des projet Symfony2

Preview:

DESCRIPTION

Worshop à FST le 26-04-2014 : Assurer la Qualité du code des projet Symfony2

Citation preview

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éveloppeurchez Edatis.Consultant SymfonyIndé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é fonctionelleFiabilitéFacilité d’utilisationMaintenabilité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 formeTestsDocumentation

Mohammed Rhamnia Assurance qualité sur les projets Symfony

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

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

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

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

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

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

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

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

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

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

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

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

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

Qui suis-je ?C’est quoi la Qualité ?

Outils d’assurance qualité

Mise en formeTestsDocumentation

Merci

Mohammed Rhamnia Assurance qualité sur les projets Symfony

Recommended