“Les tests sont super importants mais dans ce cas, pourquoi la plupart des tutoriels ne commencent pas par ça, voire n'en parlent pas du tout?”
Cette question a été posée en commentaire sur une des vidéos Youtube de la chaîne, merci à Zizou VB, cette question est très intéressante !
Dans ce mail, je vais te donner mon avis.
Tester c’est un métier, un métier que peu de développeurs connaissent…
Il fût un temps et c’est encore le cas pour beaucoup d’entreprises, tester les logiciels était la responsabilité des équipes QA (Quality Assurance).
Autrement dit, des équipes de testeurs. Leur but, s’assurer que le code produit correspond aux attentes métier.
Je compare souvent les tests dans d’autres industries avec le Testing en software.
Dans ces industries, on délègue parfois les tests sur le produit fini, ou on monte un département entier pour s’assurer de la qualité… Bizarrement dans le milieu du software quand on n’a pas le budget pour se payer une équipe de QA et de testeurs, on passe l’importance des tests sous le tapis.
Manoeuvre digne d’un parti politique en proie aux scandales, de quoi faire rougir les anciens du RPR !
Si on imagine le pire, ne pas tester son code peut avoir des conséquences catastrophiques.
Imagine que le site de ta banque n’implémente pas un standard de qualité suffisant, tu essaies de faire un virement pour les 50 ans de tata et tu te retrouves avec 50 euros partis dans la nature, le tout à cause d’une variable Javascript mal initialisée qui a impacté le numéro de compte vers lequel tu étais censé envoyer de l’argent. Si tu fais du Javascript et que tu t’intéresses à la coercion de types, tu dois sûrement comprendre de quoi je parle… 50 + ‘5’ === ‘505’ mais comment est-ce poss…
Donc le pire dans cette histoire, c’est qu’on fait confiance à un langage (dont la première version a été conçue en seulement 11 jours) qui ne t'empêche pas d’additionner un number et une string… Deux primitifs différents qui d’une manière assez obscure et magique vont créer une nouvelle chaîne de caractères. Et je ne te parle même pas de la valeur undefined …
Effectivement, personne n’aborde le sujet...
Non les tests ne sont pas innés.
Tester ça s’apprend.
Personnellement, quand j’ai commencé le Dev, je ne testais pas mon code. J’ai appris avec le temps, quand j’ai découvert le Software Craftmanship, j’ai enfin compris.
Considérer le code comme un art et pas seulement un empilement de techniques aide à se rendre compte que le même résultat visible peut être atteint de différentes manières.
Peu de développeurs se penchent vraiment sur le Testing parce que cela demande du temps, cela demande des compétences supplémentaires et de l’engagement.
Un engagement que tu dois fournir en amont, dont le ROI n’est visible qu’une fois que tes tests t’ont empêché de faire exploser la production. Au lieu de ça, on préfère trouver les bugs normaux...
Ton client ne verra pas la face cachée de l’iceberg…
C’est ce qui pousse selon moi la plupart des gens à ne pas tester leur code.
Si ton application n’est pas testée et qu’elle fonctionne, on se dira que les tests ne servent à rien. Ce que tu ne vois pas, c’est que rajouter du code dans une base de code de 50000 lignes sans filet de sécurité, c’est risqué.
Donc je préfère 100 fois tester mon code et être capable de modifier une base de code sereinement avec des centaines de tests me permettant d’identifier le moindre problème avant d’arriver en production...
Imagine que ton plombier change ta baignoire mais qu’elle fuie… Tu vas accepter tranquillement en te disant c’est pas grave, je vais payer une deuxième fois pour colmater la fuite ?
Pour tester, il faut d’abord savoir par où commencer…
Il existe une multitude de types de tests !
Certains sont mis en places par des QA, d’autres peuvent être mis en place par le développeur lui-même. Ne pas tester ton code, si tu as une équipe de SDT (Software Developer in Tests), ce n’est pas si grave…
Les tests c’est un peu comme la Bourse, des mots compliqués, un jargon spécifique… De quoi effrayer les développeurs, assez pour leur faire croire que ce n’est pas pour eux.
Tu seras étonné de la différence de salaire que tu peux négocier quand tu as un profil Software Craftmanship...
J’ai créé une formation qui t’explique tous les types de tests que tu as besoin de connaître avant de te lancer dans le Testing.
Cette formation ne contient pas de code, elle te permet de comprendre les concepts et le vocabulaire autour du Testing. Elle s’adresse seulement à ceux qui n’ont jamais mis un pied dans le Testing!
Les résultats attendus
Ne plus être effrayé à l’idée de tester.
Comprendre les différents types de tests pour les développeurs.
Comprendre les stratégies de tests afin de choisir la bonne.
Mettre un pied dans le Software Craftsmanship et propulser sa carrière.
Travailler avec des crafts
Développer sur un projet bien testé, c’est travailler avec sérénité.
Je ne vais pas m’en vanter mais ça m’est déjà arrivé de déployer une fonctionnalité que je n’avait pas testé, manuellement. Un projet mixant TDD et BDD, j’étais tellement confiant que j’ai cliqué sur le bouton déployer sans même faire un test manuel.
Le résultat ? Zero bug, aucune régression, des vrais tests qui couvrent tous les scénarios fonctionnels.
Bien sûr, les tests c’est pas magique...
Les tests peuvent être utilisés pour montrer la présence de bugs mais jamais pour en montrer l’absence - Edsger Dijkstra
Tu as le choix !
Option 1: Tu peux commencer tes recherches, essayer de comprendre la terminologie, croiser les sources … Au pire, ça te prendra quelques heures.
Option 2: En une heure, je t’explique tout ce que tu as besoin de savoir, c’est juste un raccourci. Mais si tu as compris que ton temps, c’est de l’argent...
Le Testing sur ton CV…
- Travailler sur des projets à haute criticités
- Passer moins de temps à résoudre des bugs qui auraient pu être facilement évités
- Déployer sereinement en production ton code
- Avoir une compétence rare et demandée sur le marché
- ...
Comment suivre la formation ?
C’est une formation vidéo, tu n’as pas besoin de prendre de notes, je te fournis la MindMap.
Pas de code dans cette formation, juste des concepts à retenir.
Tu peux la commander dès aujourd’hui !
Il y a-t-il des pré-requis ?
Avoir déjà fait un peu de Dev
Avoir une heure devant soi pour se mettre dans un endroit calme :)
Elle dure combien de temps ?
Je fais du montage sur mes formations, le but est de les garder les plus courtes possible en délivrant un maximum de valeur !
Si tu préfères une formation 10x trop long, remplie de blabla, j’ai peur de ne pas être la bonne personne...
Si j’ai un problème ?
A tout de suite dans la formation !