C’est Mike,
Connais tu l’homme oiseau ?
François Reichelt
Un inventeur qui est mort en sautant de la tour Eiffel en 1912.
Il voulais TESTER son parachute.
La mairie de Paris lui avait pourtant donné l’autorisation de tester ces prototypes avec des mannequins …
Trop confiant dans son invention il décida de se passer de TESTS
Le résultat fut dramatique
Il est mort en direct filmé par la TV de l’époque.
Quel rapport avec le code ?
Et bien c’est comme si tu développais un site, une application, un logiciel
Trop confiant en ton code
Tu le mets en PRODUCTION (disponible pour les utilisateurs finaux) sans passer les TESTS.
Il y a de fortes chances que l’application s’effondre !
Aujourd’hui je voudrais te parler des TESTS
C’est le sujet le plus mal aimé des codeurs débutants.
En règle générale ils s’y intéressent qu’après plusieurs années.
Pour simplifier, un codeur doit faire 2 types de tests
Le test de la FONCTIONNALITÉ qui est en train d’être codé
Ce test est souvent réalisé à minima …
Il s’agit de tester à l’écran le comportement
Par expérience je sais que les débutants testent uniquement les CAS PRINCIPAUX
Prenons l’exemple d’un site e-commerce avec un panier
Tu ne dois pas uniquement tester : L’ajout d’un produit au panier
As tu testé les autres cas ?
- Le produit n’est plus en stock
- L’utilisateur n’a pas sélectionné la couleur
- L’utilisateur a cliqué sur précédent
- etc
Si tu n’as pas testé un maximum de cas possibles,
je te garanti que même le meilleur codeur au monde passera à coté de quelque chose.
ENSUITE LES TESTS UNITAIRES
Alors là, c’est dramatique !
Peu de codeurs débutants se penchent sur le sujets dès le débuts
Ça pourrait se comprendre vu le nombre de choses à apprendre quand on débute
C’est une erreur !
MAIS avant : C’est quoi les Test Unitaires ?
Un test unitaire c’est quelque chose que tu codes
Dans le but de tester une petite portion de ton code
Les tests sont exécutés tout les jours
Exemple (un peu bidon mais bon …) :
Tu codes une fonction qui s’appelle : calculAir(a, b) qui a pour but de calculer l’air d’une pièce.
pour rappel l’aire = longueur x largeur
Tes tests unitaires vont être de tester avec des valeurs concrètes
- est ce que : calculAir(2, 3) donne bien 6 ?
- est ce que : calculAir(3, 7) donne bien 21 ?
- est ce que : calculAir(8, 3) donne bien 24 ?
Je te vois déjà te dire : Huuummm mais pourquoi faire ça ???
Je sais très bien que si je code une telle fonction
Je teste une fois que c’est ok et puis c’est tout.
Pourquoi perdre du temps à coder des tests unitaires ?
CAR tu ne vas pas tester tout les jours ta fonction !
Les tests unitaires eux, s’exécutent plusieurs fois par jours en automatique
1 an après avoir codé ta fonction, tu l’auras surement oubliée
Mais si elle est dans tes tests unitaires elle continuera à être testé tout les jours.
Si un jours toi ou quelqu’un d’autre modifie cette fonction et y introduit UN BUG.
Automatiquement il sera détecté
Tu éviteras comme cela d’embarquer un bug en production
Les tests unitaires sont devenus tellement ESSENTIELS
Qu’ils font systématiquement partie des entretiens d’embauches
Ils permettent de voir le sérieux d’un candidat
Il y a même des méthodologies basées sur les tests unitaires
TDD : Test Driven Development
Développement piloté par les TESTS
En gros tu codes ton test unitaire avant même de coder ta fonction
Cela fera peut être l’objet d’un prochain mail ou d’une vidéo
En attendant, si tu veux devenir un bon codeur : prends ce sujet au sérieux
À bientôt,
Mike
PS :
L’offre de -70% sur le pack codeur express se termine bientôt …
Tout est ici : www.codeur-nomade.com/pack-codeur-express
Il est encore temps de rejoindre la team des futurs codeurs