Gestions des tests et visibilité

Cela s’applique même avec des changements d’interface.

Cette discipline facilite même le changement d’interface. En pratique, l’interface change durant l’implémentation. Au début, elle est très simple. Au fil des ajouts de comportement, l’interface s’étoffe.

Ici l’interface n’est pas l’interface utilisateur, où il n’y a pas de tests automatisés. La discipline du TDD n’est pas applicable, car on ne connaît pas le résultat à l’avance. Il est possible d’adjoindre des tests via des screenshot, avec des outils comme chromatic.com.

Perso, si je veux voir des exemples, je vais voir les tests.
L’avantage, c’est une documentation exécutable, elle ne peut pas mentir.

Il y a des exceptions

  • Comme la documentation de l’architecture.
    Elle est couverte partiellement par les tests d’intégrations.
  • Comme la documentation des conventions de code utilisé.
    Bien que ce soit le code lui-même qui sert d’exemple.
    Et que cela peut être automatisé, avec des outils comme php-cs-fixer.

Pense qu’il y a une minute, la suite de teste passée.
Au lieu de débuger, tu annules les derniers changements. Puis essaye autre chose.

C’est bien plus rapide que de placer des console.log dans ton code.

Je te rejoins, c’est de bonnes ressources que tu partages pour faire ouvrir les yeux aux développeurs.

Je comprends entièrement pourquoi tu ne l’aimes pas, car elle est mal comprise.

Je comprends aussi, que des gens essaient de trouver de nouvelles manières de présenter en partant de cette incompréhension de base. C’est comme mettre un pansement sur une jambe de bois.

Les tests unitaires ne sont pas : des tests pour toutes les classes, toutes les méthodes et pour toutes les fonctions.

Quand un développeur logiciel le comprend, alors c’est le déclic.

La pyramide change de sens dans sa tête et se rapproche de ce que j’ai présenté plus haut.

Michaël AZERHAD l’explique à sa façon

1 « J'aime »

“Program testing can be used to show the presence of bugs, but never to show their absence!”

― Edsger W. Dijkstra

C’est faux. Ca s’appelle très prosaïquement des use-cases, c’est testable en end-to-end avec des frameworks diverses et variés (Selenium, Cypress, …). Et sans allez dans l’interface utilisateur, un use-case comme encapsulé dans DCI est testable, vu que c’est simplement une fonction.

Y’a pleins de moyens de faire mentir des tests. Suffit de donner les conditions nécessaires.

On ne documente pas l’architecture. Le code est l’architecture, et on ne documente pas le code plus précisément que par… le code.

Des exemples de quoi ? D’utilisation d’une méthode ? Tu as le code pour ça, non ?

Je pense que tu as dû survoler ce que j’ai partagé. Le propos n’est pas le même.

@Samuel_Abiassi nous parlons des mêmes concepts, mais avec un vocabulaire différent.

Je vois que vous avez continué les débats !

De notre côté notre vidéo est sortie aujourd’hui, si ça vous intéresse : Stratégie de Test Agile / Scrum : que contient ta Definition of Done ? - YouTube

1 « J'aime »

Je suis étonné de l’absence des tests exploratoires dans la vidéo. Certes, on « pourrait » tout automatiser, mais on apprendrait plus rien. Preuve en est du retour en arrière de Toyota dans leur processus d’automatisation. Comme dirait un vieux sage: « Machines don’t learn ». Toyota has just fired some robots, calling back the workers — Asia Waypoint

1 « J'aime »

De mon expérience, j’ai du mal à imaginer les tests exploratoires dans la Definition of Done de par leur côté exploratoire, justement. En pratique je l’intègre plutôt sous forme de travail explicite à faire, qu’il s’agisse d’une tâche technique d’un PBI voire sous la forme d’un PBI à forme entière (quand on est un peu en mode « grosse release »). Ce qui amène à se poser la question en amont du travail à faire et donc de ce que l’on veut apprendre ou dérisquer.

À noter que « test exploratoire » ne veut pas dire « free test » : ça se cadre, on pose clairement qu’est-ce qu’on veut tester, avec quels moyens, dans quel but. Ce n’est pas « manipuler le produit pendant 1 heure et voir ce que ça donne », ce qui pourrait rentrer dans une DoD (car suffisamment générique) mais côté test exploratoire c’est plutôt comme les critères d’acceptation, il faut les définir et c’est spécifique à chaque PBI.

Bon alors maintenant que j’ai écrit ça, je me dis qu’effectivement ça pourrait marcher, notamment en mode question : avoir « test exploratoire » dans la DoD ne voulant pas dire qu’il faut systématiquement en avoir fait mais qu’il faut les avoir fait si on en a défini, et qu’on doit donc se poser la question en amont de s’il est pertinent d’en faire et si oui les définir.

Merci Samuel, toujours au top sur le forum Scrum Life :smiling_face_with_three_hearts:

2 « J'aime »

Je ferais l’impasse sur la « pyramide de tests » en passant :stuck_out_tongue:

1 « J'aime »