Vincent Tencé
http://noncomplexstuff.com
http://github.com/testinfected
@testinfected
100% de couverture
      en finir avec les fuites
75%


25%
        95%
Aucun sens
100%
“That’s the goal”
        - Uncle Bob
99%
Code vert
Couverture

    Domaine                             98%




Infrastructure                          100%




  Controllers                           100%




       Views                            100%
                                               ?
                 0%   25%   50%   75%     100%
100%
Code vert et rouge
Statistiques
 1368 lignes de code de production en Java
 2048 lignes de code d’infrastructure de test
 2395 lignes de code de test
     7 tests systèmes
   21 tests d’intégration
   87 tests unitaires
Pourquoi s’en soucier
Trop de projets agiles
font naufrages
Un phenomène
connu sous le nom
de ...



                “Flaccid Scrum”


                         http://www.flickr.com/photos/beansandgrapes/5253690227/
“Your Scrum has gone weak at the knees”
                            - Martin Fowler
Impact sur la vélocité
                                   re
                              l ib
                           te
                  100




                      c h u
                    n
                   75

                  e
               té
Travail à faire




         tiv i     50


     u c
  rod              25

 P
                    0
                        0   1   2     3       4   5   6
                                    Sprints
“Legacy Software”
Impact sur les coûts
                   Bonne qualité             Qualité typique

$400,000
                                             v u e
                                       e n
                          li te
$300,000


$200,000
                    F ail
$100,000


     $0
           1   2     3       4     5    6      7      8        9   10
                                   Années
“Iterative and incremental
development only works if
you write clean code and
tests around it”
               - Ken Schwaber
L’option la plus risquée
Tyrannie de l’urgence
Planifier le futur ...
... en ayant du plaisir
N’écrivez pas une
ligne de code sans
un test rouge.
Simple.
0
0
Java
0
SQL
0
Annotation
0
Configuration
0
Javascript
0
HTML
T.D.D.
Améliorer le
             message d’erreur




Écrire un test                  Faire passer
 qui échoue                        le test




                 Refactoriser
Améliorer le message
                                                      d’erreur




     Écrire un test          Écrire un test
d’acceptance qui échoue                                                Faire passer le test
                          unitaire qui échoue




                                                    Refactoriser
Test système
                                    Pa
                            m ent      ym
                       ip                 e nt
                    Sh


   User Interface




                                                 Persistence
                     Ma                     e
                       il             Tim




Test
Un exemple
Test unitaire
                                 Pa
                         m ent      ym
                    ip                 e nt
                 Sh


User Interface




                                              Persistence
                  Ma                     e
                    il             Tim



                 Test
Un exemple
Test d’intégration
                                   Pa
                           m ent      ym
                      ip                 e nt
                   Sh


  User Interface




                                                Persistence
                    Ma                     e
                      il             Tim
                                                              Test
Un exemple
Pur plaisir ?
Vostechnologies vous
  rendrons la vie dure
Vos   frameworks vous ferons
                   suer
Vos   outils se mettront en travers



                    de votre   route
L’urgence dictera sa loi
Choisissez
                   qui
    des
               vous aident
technologies
Investissez dans vos outils
Concevez vos propres
       outils
Adoptez une architecture
 qui supporte les tests
User Interface



          API


Tim
 e


       adapter

      Persistence
                       “Ports and Adapters”
Conclusion ?
“A Journey of a thousand
miles being with a single
step”
                  - Lao-Tzu
Lancez-vous !
Pour en savoir plus

•   Le cours Professional Scrum Developer Java
•   Offert en version 3 jours et 5 jours
•   Visitez http://pyxis-tech.com/fr/notre-offre/
    formation-agile/professional-scrum-developer-
    java
Bonne route !

100% couverture de code par les tests