Des tests et des responsabilités

TL;DR

Dans nos métiers, nous avons l’habitude de classer les tests en fonction du périmètre testé (tests unitaires, d’intégration, fonctionnels), potentiellement en fonction de comment on test (en boite noire, en boite blanche, par fuzzing, par mutation), et on a une petite place supplémentaire pour les tests de performance, les tests d’intrusions, voir deux trois petites choses à coté. Voilà. On a des tests, potentiellement pour différentes raisons (facilité de developpement, bonnes pratiques, habitudes), les devs les écrivent lorsqu’ils produisent les fonctionnalités ou lorsqu’ils corrigent des bugs. Et c’est très bien. Cet article a pour but de présenter une façon différente d’aborder les tests : les aborder par «qui garanti quoi vis à vis de qui ?». Une fois qu’on a répondu à cette question ça change grandement la façon de catégoriser les tests et la façon de le écrire.

Un exemple industriel

Mon approche sur les tests étant lourdement influencée par mon expérience chez EDF, on va commencer par résumer grossièrement comment fonctionne une centrale de production d’électricité.

On va globalement séparer les services en deux : le service conduite qui assure l’exploitation du réacteur (et donc la production énergie) et les services de maintenance qui assurent les opérations sur le matériel (en préventif ou correctif).

Comment va se passer une opération de maintenance ?

Prenons un exemple.

Pour une raison quelconque (anomalie constatée, opération périodique…), il faut faire le contrôle d’une pompe. Si on purge tous les éléments de procédure pour se concentrer sur ce qui nous intéresse :

  • la conduite va poser des scellés sur les disjoncteurs et vannes pour isoler la pompe du reste de l’installation,
  • les différents services vont faire ce qu’ils ont à faire (débrancher la pompe, retirer les capteurs, déposer la pompe, la visiter, reposer la pompe, remettre les capteurs, etc)

Et là, avant de remettre le matériel en exploitation, il va y avoir deux choses à faire : une requalification intrinsèque et une requalification fonctionnelle.

La requalification intrinsèque est faite par le service de maintenance, alors que le matériel est encore isolé. C’est une première étape de vérification de la performance du matériel permettant de dire «De ce qu’on peut évaluer en isolation, le matériel va fonctionner normalement». Un peu comme lorsqu’on a changé une chambre a air sur un vélo, il est encore à l’envers sur le guidon, on vérifie que le pneu est gonflé uniformément et on considère qu’on peut faire un test plus poussé.

Si tout est bon, on va opérer une requalification fonctionnelle. Là, l’exploitant à partir de ses connaissances sur le matériel et des contraintes auxquels il est soumis va décider de comment il test le matériel avant de le remettre en condition d’exploitation. Un peu comme après avoir remis le vélo à l’endroit, on sautille sur le vélo, on accélère un coup puis on freine ; histoire de vérifier que tout réagit normalement avant de repartir «pour de vrai».

L’élément que je tiens à souligner dans cette requalification fonctionnelle, c’est que c’est l’exploitant qui décide comment il teste le matériel avant de le remettre en exploitation. Ce qui est logique puisque c’est lui qui est responsable de l’exploitation. L’autre élément important qui est en filigrane est que l’exploitant a besoin d’avoir une excellente connaissance sur les équipements.

Et les essais périodiques ?

Les essais périodiques sont… des essais… fait régulièrement… pour s’assurer que l’exploitation fonctionne normalement. Par exemple, on va s’assurer qu’entre le moment où on appui sur l’interrupteur pour actionner un générateur de secours et le moment où il démarre il s’écoule moins d’un certain temps.

Pour résumer

Si on résume, on a :

Une requalification intrinsèque faite par la maintenance, dans un environnement isolé, pour garantir à l’exploitant qu’il n’y a rien d’évident qui serait bloquant (une vis manquante, un axe voilé, etc)

Une requalification fonctionnelle faite par l’exploitant, en environnement contrôlé, pour lui garantir qu’il peut remettre le matériel en exploitation et garantir à l’autorité de contrôle qu’il respecte les normes attendues.

Des essais périodique piloté par l’exploitant, en production, qui garantissent à l’autorité de contrôle que les équipements fonctionnent correctement.

Que retirer de tout ça ?

À partir de là, j’ai plusieurs impressions qui ressortent :

  • On a l’habitude de faire de la qualification fonctionnelle. Les équipes de développement écrivent des tests unitaires et fonctionnels avant de livrer une feature. Ça fait partie du process, mais c’est un process interne aux équipes.
  • Grâce à la conteneurisation, on en déduit qu’on est iso-prod et que ça va marcher pareil en prod.
  • On est bien outillé pour surveiller ce qu’il se passe en production, surveiller la disponibilité, avoir des métriques

Alors quel est le souci ?

Le souci, c’est que la responsabilité «L’ensemble doit fonctionner en prod» est à la fois dilué un peu partout entre les équipes «système» et les équipe de «dev». Et du fait de cette dilution, le poids de cette responsabilité va être plus écrasant. Prenons l’exemple d’un test fonctionnel de création d’un compte. Est-ce que j’ai beaucoup moins confiance dans le test s’il utilise une BDD sqlite en mémoire plutôt qu’un vrai serveur MySQL comme en production ?

Et si on est un peu plus confiant avec le vrai serveur MySQL, est-ce que ce niveau de confiance vaut l’effort supplémentaire de suivi des versions sur les environnement de développement ?

Cette question est intéressante. Elle vient assez naturellement à toute équipe de Dev, surtout si l’équipe n’est pas homogène d’un point de vue technologie et système d’exploitation. Et surtout,elle n’est pas du tout liée au fait d’être serein sur les productions. Pour prendre un exemple un peu concret : dans mon souci d’avoir une exploitation fonctionnelle, je ne me pose même pas la question de si les équipes front compilent leurs framework depuis l’env «iso-prod» ou s’il le font depuis leur environnement host parce que pour des soucis de performance, c’est plus pratique pour eux. Et je peux me permettre de ne pas m’intéresser à ce sujet parce que j’ai des tests end-to-end qui tournent avec un système d’installation et d’exécution que j’estime suffisamment proche de la réalité pour être serein. Mais si ça n’avait pas été spécifiquement mon rôle de faire en sorte que ça marche en prod, ça aurait été beaucoup plus compliqué de justifier le temps passé à la mise en place de cet environnement.

In fine, avoir des gens qui ont formellement la responsabilité de faire en sorte que «ça marche» fait que de solutions créées spécifiquement pour s’assurer que «ça marche» émergent. Créez des rôles spécifiquement pour s’assurer de la pérennité de la production et des solutions adaptées à votre environnement émergeront.

Critique : BOXing dolls

Le concept

Je découvre «Petite bulle d’univers» avec le dixième numéro et donc le titre «BOXing dolls». Apparemment, les autres ont été fait avec la même approche.

Plutôt que de faire les illustrations à partir d’un récit, là, on part de l’œuvre d’un plasticien (Laura Vicédo dans notre cas) et l’auteur (Pierre Bordage) s’inspire pour créer une histoire autour qui n’est du coup plus totalement la sienne. Et ça marche très bien.

Pour information un coffret est sorti en trente exemplaires à l’occasion des dix ans de «Bulles d’univers». Il contient des textes inédit des différents auteur et 10 dessins (un par numéro) en grand et numérotés.

Les poupées

Je ne suis pas sur qu’il soit pertinent de séparer la partie «graphique» de la partie «écrite» puisque le tout forme un ensemble. Mais dans le doute, ça va quand même être plus simple.

Tout d’abord, le rendu sur le papier est excellent. On m’a parlé de sechage aux UV. Pour être tout à fait honnete, je suis loin de m’interesser à la technique ; mais il est indéniable que le rendu des couleures participe à donner vie aux poupées. On aurait presque l’impression de pouvoir voir notre reflet dans les pupilles si on se rapproche suffisament.

Sur les poupées en elles-mêmes, elles n’ont pas toutes le même niveau de détails, et cependant, toutes transmettent un sentiment fort. Tristesse, curiosité, sur la défensive, désespoir (oui, je n’ai pas dit «amour, joie de vivre, félicitée», c’est volontaire). Après je ne suis pas spécialiste, mais c’est assez rare que je m’attarde sur des illustrations, et là, il m’arrive de le feuilleter juste pour revoir ces petites poupées charmantes, bien qu’assez angoissantes dans leur ensemble.

La nouvelle

Les éléments qui m’ont perturbé

La première chose qui m’a un peu dérouté est la forme du récit. Le premier chapitre a pour titre une date, le deux premier § sont assez formels. Du coup, je me suis attendu à un tableau de bord. Et finalement c’est un récit à la première personne, absolument pas dans un style «journal de bord».

Ensuite, il y a une distinction qui est faite plusieurs fois dans le récit entre le «temps standard» et le temps sur la planète où le héros se trouve. Et je ne vois pas ce que ça apporte au récit. C’est anecdotique, je le concède.

La seule petite chose qui me chagrine, c’est que le personnage secondaire aurait mérité d’être un peu plus approfondi. Le récit aurait pu prendre une portée philosophique un peu plus large en consacrant un peu de temps à ce qui arrive à ce personnage. Surtout que j’ai cru à plusieurs reprises que ça allait être le cas.

Ce qui m’a plu

Le récit est très plaisant à lire (pour résumer succinctement).

L’ambiance va crescendo pendant toute la durée du récit. Il n’y a pas de cassure dans l’immersion, comme on peut en trouver parfois lorsqu’un auteur ne place pas au bon endroit un élément de l’histoire ou une explication. Là, les éléments de contexte accompagne les scènes sans les perturber. Le récit est du coup très immersif.

On est dans un univers de science fiction, mais en fait la nouvelle est dans le plus pur style «fantastique» . Dans le sens où la partie science fiction est vraiment juste le contexte de l’histoire. Finalement, on situerai l’histoire en pleine foret au milieu de la Creuse, ça ne changerait pas grand chose.

Il y a une réelle synergie entre les poupées et le récit. Et il y a aussi un jeu implicite avec l’auteur : «Qu’est ce que lui a vu dans ces poupées que je vois différemment». Comme la partie graphique est venue avant le récit, les poupées ne sont pas la représentation du récit. Quand une illustration est faite à partir d’un texte, les éléments qui sont dans le texte sont sensé se retrouver dans l’illustration, et ce qui est en plus, c’est l’illustrateur qui s’est fait plaisir ou qui a eu besoin de boucher un trou d’un élément non précisé dans le texte. Là comme la poupée est le point de départ, l’auteur décide de rentre certains éléments de la poupée comme principaux, mais on peut complètement se dire que les choses pourraient être différentes.

J’ai fait plusieurs fois des aller-retours entre le texte et les poupées pour vérifier les détails du texte et me demander si je n’aurai pas plutôt mis autre chose en avant sur cette poupée là.

Bilan

On est très loin d’un «simple» livre. Les poupées sont magnifiques, le texte est fabuleux. Bref, je suis tombé sous le charme. 🙂

Critique : Géniteurs et fils

Je tenais à commencer par cette œuvre vu que j’ai vraiment apprécié ce recueil. Ceci dit, je l’ai lu il y a un certain temps, du coup, on va faire en mode « free-style » et de mémoire.

Donc c’est un recueil de nouvelles, hétéroclite sur le style (parfois fantastique, parfois littérature blanche… varié en somme), mais constant sur la qualité. L’ensemble a été lu d’une traite avec beaucoup de plaisir.

En toute franchise, deux nouvelles ont une fin un peu attendue, ceci dit, ça ne gêne pas la lecture. De toutes façons, si le seul intérêt d’une nouvelle est la chute, c’est qu’elle n’est pas vraiment bonne. Je connais quasiment par cœur «Au prix du papyrus» (d’Isaac Asimov) et pourtant c’est un réel plaisir à chaque fois.

Ce que j’ai beaucoup aimé, c’est qu’en plus d’avoir un éventail d’univers, on a aussi un éventail de «conclusions», de la plus optimiste à la plus pessimiste.

Bref, un recueil bien écrit, agréable à lire, pleins d’histoire franchement différentes les unes des autres. Bref, foncez !

La version papier : http://www.editionsduchatnoir.fr/catalogue/griffe-sombre/geniteurs-fils/

La version numérique (sans DRM, juste une watermark)  : https://www.7switch.com/fr/ebook/9791090627376/geniteurs-fils

Bienvenue à vous

Voici le premier article de ce blog.

Pour l’instant le design est relativement basique et il n’y a pas encore de critique de livres, mais ça va venir.

Pour vous situer le contexte, j’ai décidé d’ouvrir un blog «littéraire» pour me forcer à me remettre à lire. Du coup, je me fixe comme objectif de publier une petite critique d’un ou deux bouquins par semaine.

Je vous souhaite une bonne visite.