• €159 ou 3 paiements mensuels de €53

Transforme tes tests frustrants en atouts RENTABLES

  • Cours
  • 26 Leçons

Apprends à tirer le meilleur parti de tes tests et à enfin les aimer !

Finis les tests fragiles et chronophages — Maîtrise des techniques qui font gagner du temps et de la confiance

Si tu as l'impression que tes tests te font perdre plus de temps qu'ils ne t'en font gagner, cette formation est pour toi !

⚠️ Attention ⚠️

Ceci n'est pas la formation sur les tests que tu vois partout !

Les autres formations t'expliquent comment mettre en place deux ou trois tests pour t'assurer que ton getter retourne ce que tu as passé au setter. Si tu as un peu de chance, elles te montrent qu'il y a une méthode de setup ou comment mettre en place des mocks, et puis ciao, salut, bonne chance ! 👋🤞

Alors tu te lances, et quelques semaines plus tard tu te retrouves avec des tests que tu ne comprends pas, qui cassent dès que tu changes ton code, qui sont lents, qui te frustrent, qui te font perdre ton temps... 💩🤮🤢😭

Si c'est ton cas et que tu veux changer les choses, tu es au bon endroit. 👊

Tu as bien raison, on va faire ça ensemble !

Ouais, parce qu'en fait personne ne le dit mais...

Écrire des tests correctement c'est dur !

Tu as peut-être déjà écrit des tests automatisés mais malheureusement...
  • 🐌 Ils sont terriblement lents
  • 💔 Ils cassent à chaque fois que tu modifies ton code
  • 🎲 Ils échouent de manière aléatoire
  • 🤨 Ils sont incompréhensibles
  • 😭Au final, ils te font perdre plus de temps qu'ils ne t'en font gagner

À tel point que tu ne rêves que d'une chose : t'en débarrasser.
Mais tout le monde dit que c'est important d'avoir des tests alors tu ne sais pas quoi faire.

Le cauchemar peut s’arrêter aujourd'hui !

Dans cette formation, je te donne toutes les techniques nécessaires à la conception de tests qui te rendront  — enfin — service !

Ces techniques sont le fruit de plusieurs années d'apprentissage, de veille à lire des livres et regarder des conférences, d'essais et d'erreurs.

Tu n'auras pas besoin de passer par là puisque je t'explique tout dans cette formation !

Avec ces techniques, tu sauras...

Le résultat de 634 tests lancés avec PHPUnit en un peu plus d'une seconde

Écrire des tests plus utiles...

Avoir des tests qui s'exécutent rapidement et n'échouent qu'en cas de réel problème, c'est le rêve non ?

Ensemble, au travers d'exemples et de passages théoriques nous verrons :

  • Comment obtenir un ensemble de tests rapide
  • Pourquoi les tests cassent tout le temps et explorerons plusieurs solutions pour régler ces problèmes
  • Comment avoir des tests qui donnent des informations précises
  • Comment créer un filet de sécurité qui permette de refactorer sans crainte
  • Que les tests peuvent servir de documentation
Un test beaucoup plus lisible que la moyenne grâce à l'utilisation de builders

... et aussi super lisibles

Fini de perdre du temps à essayer de comprendre ce que cherche à vérifier un test.

À la fin de la formation tu auras de nouvelles idées pour :

  • Organiser tes tests pour t'y retrouver plus facilement
  • Avoir des tests si lisibles que même les personnes non techniques de ton équipe pourraient les lire
  • Documenter des règles métiers de façon claire


Un exemple de test avec un stub créé sans utiliser de framework de mock.

Comment bien gérer les mocks

Bien utiliser les mocks est loin d'être aussi simple qu'il y parait, mais tu vas devenir un expert.

Tu sauras :

  • Qu'on ne dit pas mock mais doublure
  • Différencier les types de doublures et quand les utiliser
  • Éviter les pièges que tendent les mocks
  • Écrire tes doublures sans frameworks
  • Maitriser la date et les informations aléatoires
  • Comment avoir confiance en tes doublures
  • Pourquoi il ne faut pas créer une doublure d'un code qui ne t'appartient pas et quoi faire à la place

Et comment bien t'en sortir avec

Des tests qui touchent à la base de données

On a besoin de tests d'intégration avec la base de données, mais ils sont souvent flaky et difficiles à maintenir. Pour éviter ça je te partagerai :

  • Plusieurs techniques pour nettoyer la base de données, chacune avec ces avantages et inconvénients
  • Comment créer et insérer des données sans que cela devienne un cauchemar à maintenir

Mais c'est pas tout. Tu vas encore aller plus loin !

Pour te permettre d'aller encore plus loin certains chapitres proposent des ressources connexes. Ce sont les ressources qui m'ont fait réfléchir, et m'ont aidées dans mon apprentissage. Elles t'apporteront parfois d'autres points de vue et t'aideront à faire murir tes idées.

Les avis

Les retours sur la formation sont tous très positifs, voici quelques exemples:

"À acheter les yeux fermés."

Une excellente formation, à la fois claire, complète, poussée et accessible.
Que l'on soit dév junior ou expérimenté, on en ressort avec des actions concrètes, simples et efficaces à mettre en place le jour même sur chacun de nos projets.
À acheter les yeux fermés.

"Il est rare de retrouver ce genre de ressources aussi détaillées"

La formation sur les tests proposées par Charles est qualitative, précise et synthétique.

Étant habitué à écrire des tests en Typescript, je craignais ne pas être la cible puisque les exemples sont en PHP. En réalité, les explications couplées à des mises en situations proche de la réalité permettent de parcourir des concepts sur les tests qui sont agnostiques d'un langage.

Il est rare de retrouver ce genre de ressources aussi détaillées et le fait qu'elles soient disponible en français apporte énormément de clarté.

"Je trouve la formation de Charles vraiment excellente"

Je trouve la formation de Charles vraiment excellente, les explications sont claires et concises. On y voit un cas concret avec des vraies règles métier avec en bonus des astuces et bonnes pratiques à suivre.

Je n’ai pas vu d’autre formation en français aussi complète sur les tests.

À recommander à tous ceux qui souhaitent se mettre aux tests ou améliorer leur pratique, étudiants comme les plus avancés.

"J'ai trouvé un nouveau job grace à toi !"

Aujourd'hui il faut que je te remercie car j'ai trouvé un nouveau job en grande partie grace à toi !

C'est un projet en Archi hexagonal avec une grosse importante accordée aux tests ... grâce notamment à ta formation j'ai pu défendre mon bout de gras à l'oral mais aussi pendant le test technique qui portait sur une refacto.

Raphaël Geffroy

Développeur Backend

"Aujourd’hui, nos tests sont un vrai levier de qualité et non plus une contrainte."

J'ai longtemps vu les tests unitaires comme une contrainte dans mon cycle de développement, long à écrire, répétitifs, valeur ajoutée perçue faible... Mes projets grandissant, ils sont devenus en réalité indispensables à la bonne stabilité des projets.

Mais j'avais un peu de retard dans la façon de les concevoir, de les organiser, de les maintenir. Cette formation m'a permis à la fois d'assimiler toutes les bases techniques pour écrire des tests efficacement, mais j'ai surtout désormais une vision différente des tests unitaires. Ils sont maintenant pleinement intégrés dans mes cycles de développement. Leur écriture est organisée, j'ai réussi à diffuser des bonnes pratiques auprès de mes équipes.

Aujourd’hui, nos tests sont un vrai levier de qualité et non plus une contrainte. Tout cela se ressent donc à la fois dans la stabilité des projets et dans l'expérience de développement.

Qui suis-je ?

Je m'appelle Charles, je code depuis mes 12 ans, et je suis développeur professionel depuis plus une quinzaine d'années.

Je m'intéresse à tout ce qui permet de concevoir des applications qui rendent véritablement service à nos utilisateurs et utilisatrices. Et les tests ont un rôle à jouer.

C'est un sujet que j'affectionne particulièrement, sur lequel j'écris depuis des années, j'ai même présenté plusieurs conférences (Recettes de tests, De Crud à DDD pas à pas, Tester du legacy grace à l'Approval testing) sur ce sujet. En tant que Coach Craft freelance j'accompagne également des équipes sur la refonte de leurs tests ou sur leur apprentissage du TDD.

Contenu

Chaque chapitre est une leçon en vidéo accompagnée d'une fiche récapitulative.

📺 La vidéo nous permet d'explorer ensemble un problème avec les tests, d'y trouver une solution et de voir comment refactorer le test petit à petit pour arriver à cette solution.

📝La fiche récapitulative te permet d'avoir un aide mémoire facilement accessible pour retrouver les informations les plus importantes rapidement.

Introduction

Bienvenue !

    Théorie

    Pour écrire des tests qui nous rendent véritablement service il est important de bien comprendre les différents intérêts des tests, les caractéristiques qui permettent à un test d'être utile et comment réfléchir pour construire une stratégie de test pertinente.
    Pourquoi tester ?
    • 4 mins
    • 165 Mo
    Caractéristiques des bons tests : Qu'est-ce qui fait un bon test ?
    • 8 mins
    • 328 Mo
    Unitaire, Intégration, ... : Une définition parmi tant d'autres
    • 7 mins
    • 286 Mo
    Économie des tests : Des stratégies à géométrie variable
    • 12 mins
    • 537 Mo
    Nommer les tests : Ce que l'on conçoit bien s'énonce clairement
    • 12 mins
    • 518 Mo

    Des tests davantage lisibles et maintenables

    Comment faire en sorte d'avoir des tests qui soient lisibles facilement, faciles à maintenir, qui ne doivent pas être modifiés à chaque changement de code ? Des tests qui échouent quand il y a véritablement un problème et donnent une information précise sur ce qui doit être fait sans y passer des heures ?

    C'est ce que nous verrons dans cette section !
    Arrange Act Assert : Une structure de test reconnaissable au premier coup d'œil
    • 4 mins
    • 157 Mo
    Aperçu
    Une assertion par test : Comprendre facilement pourquoi un test échoue
    • 9 mins
    • 407 Mo
    Aperçu
    Assertions sur mesure : Faciliter la compréhension de ce qui est vérifié
    • 11 mins
    • 538 Mo
    Méthodes de création : Encapsuler la logique de création des objets
    • 11 mins
    • 523 Mo
    Attention aux structures de contrôle : Ne pas se perdre dans les tests
    • 14 mins
    • 716 Mo
    Pas de calcul dans les tests : Garder la logique dans le code de prod
    • 11 mins
    • 512 Mo
    Expected object : Vérifier l'intégralité de l'état d'un objet d'un seul coup
    • 9 mins
    • 419 Mo
    Convention des variables : Connaitre leur rôle à la vitesse de l'éclair
    • 3 mins
    • 163 Mo
    Object mother : Créer facilement les types courants
    • 6 mins
    • 278 Mo
    Builders : Écrire les tests comme une histoire
    • 13 mins
    • 694 Mo
    Data driven tests : Améliorer la documentation en supprimant la duplication
    • 13 mins
    • 618 Mo
    Organisation des classes de tests : Sortir du classique mapping 1-1
    • 9 mins
    • 469 Mo

    Mocks, Stub, Fake, Spy, Doubles ?

    Les doublures sont une des causes principales de la fragilité des tests. Dans cette section nous verrons les pièges tendus et les principes qui permettent des les éviter.
    Différents types de doublures : S'en sortir dans les batailles de vocabulaire
    • 18 mins
    • 1 Go
    Problème de mocks : Figer une implémentation à jamais
    • 18 mins
    • 824 Mo
    Don't mock what you don't own : Mettre de la distance avec les affaires des autres
    • 17 mins
    • 957 Mo
    Fake en mémoire : Remplacer une implémentation pénible
    • 7 mins
    • 349 Mo
    Test de contrat : Ne pas découvrir le pot aux rose en production
    • 10 mins
    • 539 Mo
    Stubbing du temps : Prendre le contrôle du système
    • 9 mins
    • 506 Mo

    Tester avec une base de données

    Les tests qui accèdent à la base de données offrent quelques challenges. Ici, nous verrons quelles peuvent être les fausses bonnes idées présentent dans de nombreux projets, les problèmes qu'elles causent et de meilleures alternatives.
    Attention aux données partagées : Ne pas coupler les tests discrètement
    • 9 mins
    • 387 Mo
    Nettoyer les fixtures : Merci de laisser la base de données dans l'état où vous voudriez la trouver
    • 12 mins
    • 714 Mo

    F.A.Q

    Est-ce que ça marchera pour mes tests ?

    Tu as déjà des tests existants et tu as peur que cette formation ne t'aide pas à les améliorer.

    Contrairement aux autres formations qui te font tout jeter pour recommencer, ici tu vas transformer tes tests problématiques en alliés fiables, pas à pas, sans tout reconstruire. Je vais te montrer comment transformer tes tests actuels, avec leurs problèmes, vers des tests qui te rendront vraiment service.

    Avec cette formation tu auras les outils pour modifier tes tests petit à petit, sans avoir besoin de tout changer d'un coup.

    C'est d'ailleurs ce qui fait la particularité de cette formation. 

    À la différence de beaucoup d'autres formations sur les tests, elle n'est pas là pour te donner une unique manière de faire, qui ne fonctionne que quand tout va bien, avec un framework bien défini dans un langage donné.

    Elle sert à te donner les bons réflexes pour écrire tes tests et te montre comment améliorer des tests existants. Beaucoup de chapitres sont structurés sous la forme d'histoires dans lesquelles on remarque un problème avec nos tests et on les modifie pour régler ce problème une bonne fois pour toutes. Tu sauras donc comment faire pour modifier tes tests l'un après l'autre et améliorer ton quotidien un pas après l'autre.

    Est-ce que tu parles de ...

    Tu peux trouver la liste des sujets dont traite la formation dans la rubrique contenu de cette page.

    Je suis encore en train de travailler sur cette formation et s'il te semble qu'il manque un sujet, que tu as une problématique pour laquelle tu voudrais en savoir plus n'hésite pas à me contacter. Peut-être que ce sujet pour faire l'objet d'un futur chapitre et dans tous les cas je me ferais un plaisir de transmettre les ressources qui pourraient t'aider.

    En quel langage sont les exemples ?

    Les exemples sont en PHP mais les idées et principes dont parle cette formation devraient pouvoir se transposer sans problème dans n'importe quel langage orienté objet.

    Quels sont les outils utilisés ?

    Dans les vidéos l'IDE utilisé est PhpStorm, simplement parce que c'est l'outil que j'utilise au quotidien et qu'il a de très bonnes fonctionnalités de refactoring.

    Le framework de test utilisé est PhpUnit avec ses outils de mocks. Dans un chapitre Prophecy, l'outil de mock de PhpSpec est également utilisé brièvement.

    Là encore, les idées partagées dans cette formation sont suffisament générales pour pouvoir être transposés à d'autres outils et à d'autres langages.

    Je suis développeur/développeuse front, est-ce que cette formation est pour moi ?

    Les exemples qui illustrent cette formation sont basés sur mon expérience de développeur principalement back-end. Pour autant, je pense que bon nombre de pratiques et d'idées vues peuvent également servir à améliorer des tests pour une application front et les tests qui font le lien entre un front-end et un back-end.

    Les développeurs front qui ont eu accès à ce cours jusque là y ont trouvé des idées intéressantes qu'ils ont pu utiliser sur leurs projets. Tu peux lire l'avis de Lucas dans les témoignages.

    Je ne sais que te dire d'autre que d'essayer de voir si tu y trouves du contenu qui t'aide, et si ce n'est pas le cas de me contacter pour un remboursement.

    Je suis testeur/testeuse, est-ce que cette formation est pour moi ?

    Très franchement, je ne sais pas. Cette formation est principalement à destination des développeurs et développeuses. Il s'agit du métier que je connais et j'ai une connaissance très limitée de ton métier.

    Ceci étant-dit, si tu es à la recherche d'idées pour améliorer des tests automatisés cette formation peut sans doute t'aider.

    Le plus simple est d'essayer, et si ça ne marche pas pour toi on procèdera à  un remboursement. 

    Je voudrais acheter plusieurs fois cette formation pour une équipe, puis-je avoir une réduction ?

    J'ai peur que ce soit trop cher...

    Oui, le prix de la formation peut te paraitre élevé mais je suis certain que ton investissement sera très vite rentabilisé.

    Il n'y a ma connaissance aucune autre formation en français qui aborde ces sujets de manière aussi complète et les formations en anglais qui vont aussi loin sont 2 à 3 fois plus chères.

    Mais surtout, pense à tout le temps que te font perdre tes tests au quotidien
    • Quand ils s'exécutent
    • Quand tu dois les comprendre
    • Quand tu dois en modifier plusieurs à chaque changement de code
    • Quand tu dois maintenir des jeux de données gigantesques
    • Quand tu dois comprendre pourquoi ils échouent de manière aléatoire
    • ...

    Si tu veux te faire une idée de ce que te coûtent tes tests tu peux utiliser mon estimateur.

    Cette formation va te permettre de gagner du temps et de la sérénité. Fini la frustration liée aux tests !

    En plus, si ton employeur est prêt à payer cette formation à ton équipe il peut bénéficier d'une réduction de 30% en achetant plusieurs licences en une fois. Et crois-moi, s'il y en a un qui a y gagner, c'est bien lui. Après tout, c'est lui qui te paye quand tu perds ton temps.

    De quels types de tests parle cette formation ?

    Dans cette formation on va voir des techniques qui s'appliquent à différents types de tests, que ce soit des tests unitaires, des tests d'intégration, des tests d'acceptance, ou des tests end-2-end...

    Existe-t-il un programme d'affiliation ?

    Tu as aimé la formation et tu souhaites la recommander ?

    Tu peux gagner 30% sur chaque vente grâce au programme d'affiliation.

    Je ne trouve pas la réponse à ma question...

    Pas de problème, envoie-moi un mail et je tâcherai d'y répondre.