19
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

Assurer la Qualité du code des projet Symfony2

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Assurer la Qualité du code des projet Symfony2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Outils d’assurance qualité

Mise en formeTestsDocumentation

Merci

Mohammed Rhamnia Assurance qualité sur les projets Symfony