Intégration continue & Qualité logicielle

Preview:

Citation preview

INTEGRATION CONTINUE

&QUALITE

LOGICIELLEDavid Buros

Ingénieur R&D - Profilsoft

About.me

Développeur PHP depuis 4 ans.

Trois belles expériences en entreprise.

Du code, mais pas que.

Veille, veille, veille !

AU SECOURS« Chérie, j'ai oublié les bases »« Chérie, j'ai oublié les bases »

http://technopolis.blogspot.com/2011/07/age-of-austerity-obama-asks-america-to.html

6REGLES D'OR

… à suivre pour bien planter son projet.

† Partir du principe que les

spécifications fonctionnelles ne bougent pas en cours de projet,

jamais.

† Partir du principe que les

spécifications fonctionnelles ne bougent pas en cours de projet,

jamais.LOL

http://wdict.net/fr/word/souplesse+(gymnastique)/

L'AGILE« Tarte à la scrum »« Tarte à la scrum »

- LE MANIFESTE AGILE -

« Les individus et leurs interactions plus que les processus et les outils. »

« Des logiciels opérationnels plus qu’une documentation exhaustive. »

« La collaboration avec les clients plus que la négociation contractuelle. »

« L’adaptation au changement plus que le suivi d’un plan. »

User Story

En tant que ROLE, je souhaite ACTION pour BUT.

« En tant que client, je souhaite uploader des documents pour compléter ma bibliothèque »

† †Se dire qu'écrire une

application from scratch pour hier, c'est facile. On est large

même.

† †Se dire qu'écrire une

application from scratch pour hier, c'est facile. On est large

même.OMG

http://www.lizardheadone.com/Engine.html

LES OUTILS« Les mains dans le cambouis »« Les mains dans le cambouis »

OUTILS MAITRISES

≠OUTILS ADAPTES

≠PRISE DE RISQUE INCONSCIDEREE

† † †Livrer ses développements sans

les tester. Ou à la rigueur effectuer quelques clics sur la

page.

† † †Livrer ses développements sans

les tester. Ou à la rigueur effectuer quelques clics sur la

page.FAUX

http://www.historyofinformation.com/narrative/restating-the-problem.php

LES TESTS« Finalement, on gagne du temps »« Finalement, on gagne du temps »

TESTS UNITAIRES

class Request { /* CODE */

public function getPost($name = null) { if (null === $name) { return $this->_post; } return array_key_exists($name, $this->_post)?$this->_post[$name]:null; }}

class RequestTest extends \PHPUnit_Framework_TestCase { /* CODE */

public function testGetPost() { $this->assertInternalType('array', $this->object->getPost()); $this->assertNull($this->object->getPost('test')); $this->object->setPost(array('test' => 'value')); $this->assertEquals('value', $this->object->getPost('test')); $this->assertEquals(array('test' => 'value'), $this->object->getPost()); }}

TESTS FONCTIONNELS

† † † †Convenir que le meilleur moyen de partager son travail c'est de mettre un zip des sources sur

Megaupload Dropbox.

† † † †Convenir que le meilleur moyen de partager son travail c'est de mettre un zip des sources sur

Megaupload Dropbox.O RLY ?

http://events.2hweb.net/scrapbook04su.html

LE VERSIONNING« Retour vers le futur »« Retour vers le futur »

CENTRALISE VS DISTRIBUE

† † † † †Garder à l'esprit que le suivi

de la qualité d'un projet tient avant tout dans la relecture

aléatoire des sources.

† † † † †Garder à l'esprit que le suivi

de la qualité d'un projet tient avant tout dans la relecture

aléatoire des sources.FAIL

http://www.pptbackgrounds.net/

INTEGRATIONCONTINUE

« Big Brother »« Big Brother »

1 ; Commiter votre travail de la journée.

2 : Faite un build.

3 : Mergez vos branches.

4 : Mettez les sources en production en un clic.

5 : Allez vous reposer, demain on recommence.

† † † † † †Se dire qu'une mise en

production c'est ni plus ni moins que quelques fichiers à faire glisser dans un client FTP

† † † † † †Se dire qu'une mise en

production c'est ni plus ni moins que quelques fichiers à faire glisser dans un client FTP

FUUFU FUFFUUU FFUUUFF FUFUFUF FUUUFFUUF FUUFU FUFFUUU FFUUUFF FUFUFUF FUUUFFUUF FUUFU FUFFUUU FFUUUFF FUFUFUF FUUUFFUUF

http://adnm-grp.com/services/solutions-et-lhebergement.html

LE DEVOP« La tête dans les nuages »« La tête dans les nuages »

DEV + OP

Cloud ComputingCloud Computing

IaaS - PaaSIaaS - PaaS

Chef - PuppetChef - Puppet

CapistranoCapistrano

?Contact : dburos@profilsoft.com

Recommended