36
INTEGRATION CONTINUE & QUALITE LOGICIELLE David Buros Ingénieur R&D - Profilsoft

Intégration continue & Qualité logicielle

Embed Size (px)

Citation preview

Page 1: Intégration continue & Qualité logicielle

INTEGRATION CONTINUE

&QUALITE

LOGICIELLEDavid Buros

Ingénieur R&D - Profilsoft

Page 2: Intégration continue & Qualité logicielle

About.me

Développeur PHP depuis 4 ans.

Trois belles expériences en entreprise.

Du code, mais pas que.

Veille, veille, veille !

Page 3: Intégration continue & Qualité logicielle

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

Page 4: Intégration continue & Qualité logicielle

6REGLES D'OR

… à suivre pour bien planter son projet.

Page 5: Intégration continue & Qualité logicielle

† Partir du principe que les

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

jamais.

Page 6: Intégration continue & Qualité logicielle

† Partir du principe que les

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

jamais.LOL

Page 7: Intégration continue & Qualité logicielle

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

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

Page 8: Intégration continue & Qualité logicielle

- 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. »

Page 9: Intégration continue & Qualité logicielle

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 »

Page 10: Intégration continue & Qualité logicielle
Page 11: Intégration continue & Qualité logicielle

† †Se dire qu'écrire une

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

même.

Page 12: Intégration continue & Qualité logicielle

† †Se dire qu'écrire une

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

même.OMG

Page 13: Intégration continue & Qualité logicielle

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

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

Page 14: Intégration continue & Qualité logicielle
Page 15: Intégration continue & Qualité logicielle

OUTILS MAITRISES

≠OUTILS ADAPTES

≠PRISE DE RISQUE INCONSCIDEREE

Page 16: Intégration continue & Qualité logicielle

† † †Livrer ses développements sans

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

page.

Page 17: Intégration continue & Qualité logicielle

† † †Livrer ses développements sans

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

page.FAUX

Page 18: Intégration continue & Qualité logicielle

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

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

Page 19: Intégration continue & Qualité logicielle

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()); }}

Page 20: Intégration continue & Qualité logicielle

TESTS FONCTIONNELS

Page 21: Intégration continue & Qualité logicielle

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

Megaupload Dropbox.

Page 22: Intégration continue & Qualité logicielle

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

Megaupload Dropbox.O RLY ?

Page 23: Intégration continue & Qualité logicielle

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

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

Page 24: Intégration continue & Qualité logicielle

CENTRALISE VS DISTRIBUE

Page 25: Intégration continue & Qualité logicielle
Page 26: Intégration continue & Qualité logicielle

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

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

aléatoire des sources.

Page 27: Intégration continue & Qualité logicielle

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

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

aléatoire des sources.FAIL

Page 28: Intégration continue & Qualité logicielle

http://www.pptbackgrounds.net/

INTEGRATIONCONTINUE

« Big Brother »« Big Brother »

Page 29: Intégration continue & Qualité logicielle
Page 30: Intégration continue & Qualité logicielle

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.

Page 31: Intégration continue & Qualité logicielle

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

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

Page 32: Intégration continue & Qualité logicielle

† † † † † †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

Page 33: Intégration continue & Qualité logicielle

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

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

Page 34: Intégration continue & Qualité logicielle

DEV + OP

Page 35: Intégration continue & Qualité logicielle

Cloud ComputingCloud Computing

IaaS - PaaSIaaS - PaaS

Chef - PuppetChef - Puppet

CapistranoCapistrano

Page 36: Intégration continue & Qualité logicielle

?Contact : [email protected]