24/09/2024 Tech
Rencontre avec Nerea Enrique : Pourquoi les tests automatisés sont-ils essentiels ?
Vous ne connaissez peut-être pas encore Nerea Enrique, mais ça ne devrait pas durer ! Ingénieure PHP chez ekino depuis 6 ans, elle s’apprête à monter sur la scène au Forum PHP pour une conférence qui va vous donner un nouveau point de vue sur les tests automatisés. Avec un peu de technique mais surtout accessible, Nerea a choisi comme sujet : "StandAAArdisez vos tests”. Un thème à priori simple qui pourrait bien faire repenser la façon dont de nombreux·se·s développeurs·euses abordent leurs tests.
Le thème que tu vas aborder est ‘StandAAArdisez vos tests’. Qu’est-ce qui t’a motivé à choisir ce sujet ?
Nerea : Ce choix s’est imposé assez naturellement car les tests sont un sujet qui me tient particulièrement à cœur. Chez ekino, on y attache une grande importance, mais j’ai réalisé que c’est souvent un aspect négligé ou mal compris. Dans certains environnements, on doit produire presque à la chaine. Quand on se retrouve dans ces environnements, en tant que développeurs·euses, il est très simple de voir les tests comme une tâche secondaire ou chronophage, peut être par méconnaissance. Pourtant, les tests sont une assurance qualité indispensable. Ils nous permettent, s’ils sont bien faits, de détecter les erreurs en amont, avant même qu’un déploiement soit fait !
Ce que je trouve intéressant avec les tests, c’est qu’ils ne se résument pas à vérifier si une fonctionnalité marche ou non. C’est une démarche proactive pour améliorer constamment le code, en l’adaptant aux évolutions du projet et en nous servant de filet de sécurité lorsqu’on fait des améliorations. Et c’est là que le pattern Arrange-Act-Assert (AAA) que je vais présenter entre en jeu.
Pourquoi, selon toi, doit-on garder ce pattern en tête ?
Le pattern Arrange-Act-Assert, c’est un guide simple pour structurer nos tests. En trois étapes bien définies, il nous aide à organiser nos idées, à clarifier chaque phase et à garantir que chaque test soit non seulement clair, mais aussi efficace. En le gardant en tête, on s’assure de ne rien laisser au hasard et d’obtenir des résultats fiables !
Ce pattern se révèle très utile, car il rend chaque étape du test limpide et lisible. Il permet de décomposer le processus, de savoir précisément ce qu’on teste et d’éviter les erreurs. En résumé, il rend nos tests plus robustes. Une bonne couverture de tests, c’est comme un filet de sécurité pour les développeurs·euses, et ça nous offre une belle tranquillité d’esprit quand notre code entre en production.
Bien sûr, il existe une multitude d’outils/patterns pour écrire des tests, mais j’ai choisi le AAA car il aide vraiment à structurer la pensée, et c’est essentiel à garder en tête lors de l’écriture de nos tests. Lors de mon talk, vous verrez à quel point il peut être pratique, mais aussi que parfois, s’entêter à l’utiliser peut ne pas avoir de sens s’il ne correspond pas à votre besoin !
Si tu veux en discuter plus en détail, passe me voir au Forum PHP ! 😛
Les tests, ça a souvent l’air de rebuter pas mal de devs. Pourquoi, selon toi, est-ce que les développeurs·euses hésitent à les mettre en place ?
Je pense que cela vient de plusieurs facteurs. D’abord, beaucoup de développeurs·euses n’ont pas été formés dès le départ à l’importance des tests automatisés. Et dans certaines boîtes, la culture du test n’est pas encore bien ancrée. C’est perçu comme une tâche effrayante, chronophage ou juste qui sera faite s’il leur reste du temps par rapport à des deadlines serrées.
Mais c’est un faux calcul. En fait, ne pas faire de tests peut coûter beaucoup plus cher et prendre plus de temps sur le long terme, surtout quand il s’agit de corriger des bugs en production. Ça génère du stress, ça coûte cher, et finalement, ça mine la qualité globale du produit. Chez ekino, on a intégré les tests dans notre ADN, ce qui nous permet d’aller plus vite, de façon plus sécurisée.
Alors, selon toi, quels seraient les bénéfices principaux des tests automatisés ?
Les tests automatisés sont un véritable gain de temps sur le long terme. Ils garantissent que chaque fonctionnalité que l’on code est validée en continu. Ils sont mis à jour à chaque fonctionnalité, mais aussi à chaque bug rencontré pour éviter de retomber dans le panneau. En résumé, ils agissent comme une double vérification. On sait que ce qu’on vient de développer fonctionne et ne casse pas d’autres parties du projet. Ça réduit drastiquement le nombre de bugs, améliore la qualité du code, et rend le travail des développeurs·euses beaucoup plus fluide.
Je dirais même que les tests deviennent un outil d’apprentissage. En les intégrant au quotidien, on apprend à mieux structurer notre code, à l’optimiser. C’est une réflexion constante qui nous pousse à devenir de meilleurs ingénieur·e·s.
Si tu devais convaincre les devs qui hésitent encore, que leur dirais-tu ?
Je leur dirais de ne pas voir les tests comme une contrainte. C’est un investissement qui peut paraître lourd au début, mais qui te libère à terme. Avec des tests bien structurés, tu codes de manière plus sereine. Tu sais que ce que tu fais tient la route, que ça fonctionne dans tous les cas de figure, et que tu n’auras pas de mauvaises surprises à la fin (s’ils sont bien faits !). Bref, c’est une sécurité qui permet de se concentrer sur l’essentiel : faire des applications dont on est fier·e·s !
Merci Nerea pour cet échange ! On a hâte d’assister à ta conférence et de découvrir en détail ce fameux pattern “Arrange, Act, Assert”.
Lire plus d’articles
-
3 Minutes read
Quand Drupal et Kubernetes s'unissent : les nouvelles perspectives d’un duo qui réinvente le cloud
Lire la suite