Une transformation agile n’est décidément pas chose aisée, entre acculturation et immunité au changement : il faut désapprendre pour réapprendre, ainsi qu’accepter les vertus du changement permanent pour la dynamique bénéfique d’ouverture qu’il favorise. Et dans ce contexte, on ne devrait jamais sous-estimer la portée des fondamentaux. Nous allons nous intéresser non pas aux valeurs déjà énormément reprises et diffusées, mais aux principes du Manifeste pour les Développements Logiciels Agiles. Nous verrons ainsi que de très nombreuses transformations sont mal engagées car aux antipodes de ces principes. Cela peut paraître surprenant, ce n’en est pas moins un constat général. …

Un débat épineux fait rage depuis la nuit des temps — ou presque — à propos des tests unitaires de TDD. Voyons plutôt à côté de quoi tellement de développeurs et de passionnés sont passés. Remontons aux origines de TDD pour découvrir ensemble la vérité ! Tout un travail d’enquête ne sera pas de trop pour résoudre enfin cette triste et sombre histoire… J’indiquerai à la fin de l’article mes sources pour prouver et soutenir son contenu.

Aux prémisses de TDD, il s’agissait simplement d’écrire les tests avant de coder, et cela s’appelait Test First Design. Puis la méthode évolua…

Si l’absence de test a un coût — celui des anomalies et de la non-qualité — , le coût des tests réalisés est plus difficile à appréhender, entre un retour sur investissement issu de gains espérés supérieurs aux coûts d’implémentation et des surcoûts cachés ou superflus. Alors comment réduire le coût des tests pour optimiser une stratégie de test et augmenter ses chances de succès ?

Des Tests Utiles

Qu’un test réussisse ou qu’il échoue, on veut tous qu’il le fasse, mais pour de bonnes raisons. Rien de plus frustrant qu’un test qui échouerait alors que le code testé n’a pas de défaut…

Que pourrait donner l’application des principes de Test-Driven Development (TDD) à la réécriture d’une page de Wikipédia ? Et quitte à le faire, et si cette page était précisément celle de TDD ! Je m’étais donné comme objectif en 2018 de réécrire entièrement la page de TDD sur Wikipédia, à l’état d’ébauche. C’est maintenant chose faite, après une première étape en 2015 où j’avais déjà remplacé le schéma du cycle de développement de TDD.

Schéma du cycle de TDD

Ma démarche de réécriture a été semblable au cycle micro-itératif de TDD. Je cible un paragraphe, puis une idée tirée de ce paragraphe. Quelle est précisément…

Qui a dit que les tests logiciels sont des personnages ennuyeux ? Trop lents, trop prévisibles, trop répétitifs ? Ce ne serait pas leur rendre justice. Voyons un peu et jouons beaucoup.

Parmi toutes les formes de test que l’on rencontre, certains s’éloignent du déterminisme habituel, pour soumettre le sujet de test à des aléas. Il pourrait même s’agir de deux catégories de test d’ailleurs : d’un côté les tests déterministes pour effectuer encore et toujours les mêmes contrôles un nombre infini de fois, de l’autre les tests aléatoires pour contrôler ce qui n’a pas été anticipé.

Au départ, je…

Vous avez sans doute déjà été confronté à la situation où vous avez mené quelque expérimentation dans un dépôt Git existant. Pour autant, vous aimeriez par la suite séparer le fruit de cette expérimentation et l’existant dans des dépôts Git distincts. C’est tout à fait faisable, en toute simplicité, et c’est ce que nous allons voir ensemble ici. Si vous souhaitez zapper les explications, allez directement à la fin de cet article.

Préparation

Commencez par créer un fork du dépôt de départ et clonez le fork.

S’il vous reste des branches distantes autres que master, c’est le moment de décider ce…

Mes précédents articles sont disponibles ici.

En matière de qualité logicielle, il existe deux visions antagonistes et irréconciliables. La manière historique de gérer la qualité nous vient, dirons-nous, d’un pays fort fort lointain.

Dans cette contrée reculée, les processus règnent en maître, ils sont aux commandes des humains qui doivent les appliquer docilement. Dans de tels processus, la qualité est envisagée comme un événement ponctuel, qui survient dans le flux immuable d’une séquence. Comme les humains sont au service du processus, ils réalisent eux-mêmes les tests, à la main, à la force de leurs poignets, afin que le processus accepte leurs offrandes binaires. Le processus a…

Les recruteurs rivalisent d’imagination pour rebaptiser les fiches de poste, voire les requalifier de bout en bout, dans une quête d’originalité. Même si cela peut partir d’une bonne intention comme se démarquer, la démarche n’est pas toujours exempte de quelques dérapages. Par exemple, le bidouilleur ou le bricoleur rejoignent assez mal l’image professionnelle d’un développeur logiciel. En plus d’être teintés d’amateurisme, ils désignent aussi des travaux manuels et sans qualification. …

« Pourquoi faire des tests ? N’ai-je pas déjà assez d’écrire le code ? 😇 »

Ce qu’il y a de merveilleux dans les tests (automatisés), c’est qu’ils font la synthèse des maux du code. Non seulement ils fournissent une documentation vivante du comportement du logiciel, mais en plus ils facilitent les revues de code ou les audits en documentant la dette logicielle.

Exemples… Un test nécessite une préparation conséquente de dépendances : se pourrait-il que le sujet de test soit un objet divin ? Un test nécessite de préparer les arguments en de nombreuses étapes : la méthode testée…

Xavier Pigeon

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store