La parole est aux speakers : Charles Desneuf

Publié le

Jusqu’à l’AFUP Day 2023, retrouvez nos interviews de speakers pour mieux comprendre leur parcours et le sujet qu’ils ou elles aborderont lors de leur conférence !

La conférence

Tester du legacy grace à l'Approval testing

L’approval testing permet de mettre en place des tests pour du code sur lequel on n’a que très peu la main. En nous laissant guider par le code coverage et en utilisant quelques refactoring très simples nous verrons comment mettre en place un filet de sécurité nous permettant d'envisager la modification du système avec un peu plus de sérénité.

Nous verrons comment affronter certains challenges tels que la présence d'appels au système de gestion du temps, la présence de données aléatoires, et d'avoir à garantir l'ordre de certains appels.

Université Catholique de Lille
12/05/2023
10:05-10:45

L’approval Testing récemment popularisé par Emilie Bache, se positionne essentiellement comme une solution de test d’un code disons agé. Est-ce qu’il s’inscrit plutôt dans un cadre de refactorisation, ou de perennisation d’un projet ?

J’ai tendance à dire que s’il n’y a pas besoin de toucher à du code, autant le laisser dans la forme dans laquelle il est. L’approval Testing va être très pratique à partir du moment où on va devoir s’y coller, et que l’on a pas encore de filet de sécurité via des tests existants. Il y a de fortes chances que les tests que l’on pose de cette façon ne soient pas super explicites et qu’ils soient assez peu clairs. Ils vont servir à nous rassurer sur le fait de bien garder les comportements actuels du système. Une fois que l’on a emmené le système vers une nouvelle forme qui nous convient mieux, ou même pendant que l’on est en train de le faire, ça vaut aussi le coup d’écrire de nouveaux tests plus parlants. Ce sont plutôt ces tests que je garderais à la fin.

T’appuies-tu sur le « Gilded Rose Approval Kata » de Emilie Bache ?

Je crois que ce doit être le premier kata de refactoring que j’ai eu l’occasion de faire. Il est accessible assez facilement parce qu’il ne demande pas forcément de connaître tout un tas d’astuces pour poser des tests et en même temps il permet de s’exercer à des techniques plus avancées. Puisque tu mentionnes Emilie Bache, je conseille vraiment de regarder les quelques vidéos dans lesquelles elle travaille sur ce Kata et montre un refactoring qu’elle appelle « lift conditionnal ». Ce refactoring permet de remettre de l’ordre dans du code avec plein de branches en se laissant guider par le code coverage. Je trouve que c’est une technique super élégante.

Tu as créé une formation à propos des tests automatisés. Peux-tu nous en dire plus sur cette expérience ?

Une sacrée expérience. Ça a été beaucoup de travail et d’apprentissages. Je me suis lancé là dedans un peu par défi, mais je ne savais ni faire de la captation vidéo, faire du montage, gérer un micro, du marketing… Beaucoup de nouveautés. En plus de ça, il fallait écrire des histoires pour chaque chapitre, pour pouvoir montrer le problème avec la manière dont étaient faits les tests existants et comment on pouvait les amener vers quelque chose de mieux, puisque l’idée de la formation est de montrer comment améliorer des tests et ne pas avoir à jeter tout ceux que l’on a. J’avais vraiment envie de faire quelque chose de très quali, et j’ai sans doute placé la barre trop haut par rapport à ce que je savais faire, ça m’a pris beaucoup plus de temps que ce que je pensais. J’ai toujours envie d’ajouter d’autres chapitres parce que je pense qu’il y a encore pas mal de choses à raconter sur les tests. En tout cas je suis assez fier de ce que j’ai sorti, les personnes qui l’ont suivi m’ont fait plein de retours super positifs et ont appris des choses, donc de ce côté là c’est un pari gagnant.

Une conférence présentée par

Charles DESNEUF
Charles DESNEUF
Charles est développeur web depuis plusieurs années et s'intéresse aux manières de réaliser des applications répondant aux besoins des utilisateurs et utilisatrices. Il s'est pour cela beaucoup penché sur ce qui permet de délivrer des logiciels de qualité. Au quotidien, il accompagne des équipes dans la mise en place de ces pratiques, de la compréhension du besoin à la création de logiciels maintenables.

Autres intervenants