You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
La programmation test-safe est une méthode de programmation centrée sur les tests. C'est du TDD, mais natif, du TDD par design ! Plus concrétement c'est l'idée que les tests sont la source du programme, et que l'implémentation est le produit des tests. L'idée est belle, mais comment ça marche ? Ce talk est un début d'aventure, en live coding, vers une librairie de programmation test-safe. En scala, mais pas de panique, aucune notion de scala n'est requise pour comprendre.
Détails
Dans le monde Java, et dans beaucoup d'autres langages :
les tests dépendent de l'implémentation, car l'objet testé est construit par la classe de test.
les tests sont à l'écart du code de production : le code de production est dans src/main et les tests sont dans src/tests
La programmation test-safe inverse la dépendance entre la classe de test, qu'on appellera spécification, et l'implémentation qu'elle teste. Autrement dit, la spécification s'exprime sur l'interface, aussi appelé trait, et l'implémentation est un produit de la spécification.
Le programme est test-safe car l'implémentation valide les tests par définition. Le programme ne compilerait pas sinon.
Ainsi on change la façon de penser et de programmer le logiciel par les tests, comme avec TDD mais structurellement :
l'ajout d'une fonctionnalité se traduit par l'ajout d'une spécification (de tests)
un bug se corrige par l'ajout d'un test, pour préciser la spécification
si le besoin change on change la spécification
On peut combiner plusieurs spécifications d'un même trait. Par exemple spécification fonctionnelle et technique, ou pourquoi pas spécification de sécurité. On peut aussi combiner plusieurs traits en une même implémentation.
Au cours du talk je développerait l'idée de "test safety" en codant en live un petit programme, probléme algorithmique ou petit jeu.
Cette méthode de programmation s'inspire du paradigme déclaratif, car elle décrit d'abord le "quoi" par la spécification avant le "comment", l'implémentation. On peut déléguer au systéme la construction de l'implémentation par combinaison d'éléments atomiques qui lui sont fournis. C'est ainsi que sera ouvert le talk, par d'autres pistes de réfléxions: génération automatique de code ? language de programmation test-safe ?
Informations diverses
Niveau de difficulté : intermédiaire
Durée : 1h
Format : les slides + live-coding
Dispo ou indispo : dès que possible
The text was updated successfully, but these errors were encountered:
arnaudbos
added
the
Misc
Retex, Conf review, Methodologies, Tools and whatever doesn't fit in other labels
label
Apr 27, 2019
Programmation Test-Safe
Le(s) speaker(s)
Piquerez Adrien, Développeur à Ippon Technologie
Abstract
La programmation test-safe est une méthode de programmation centrée sur les tests. C'est du TDD, mais natif, du TDD par design ! Plus concrétement c'est l'idée que les tests sont la source du programme, et que l'implémentation est le produit des tests. L'idée est belle, mais comment ça marche ? Ce talk est un début d'aventure, en live coding, vers une librairie de programmation test-safe. En scala, mais pas de panique, aucune notion de scala n'est requise pour comprendre.
Détails
Dans le monde Java, et dans beaucoup d'autres langages :
src/main
et les tests sont danssrc/tests
La programmation test-safe inverse la dépendance entre la classe de test, qu'on appellera spécification, et l'implémentation qu'elle teste. Autrement dit, la spécification s'exprime sur l'interface, aussi appelé trait, et l'implémentation est un produit de la spécification.
Le programme est test-safe car l'implémentation valide les tests par définition. Le programme ne compilerait pas sinon.
Ainsi on change la façon de penser et de programmer le logiciel par les tests, comme avec TDD mais structurellement :
On peut combiner plusieurs spécifications d'un même trait. Par exemple spécification fonctionnelle et technique, ou pourquoi pas spécification de sécurité. On peut aussi combiner plusieurs traits en une même implémentation.
Au cours du talk je développerait l'idée de "test safety" en codant en live un petit programme, probléme algorithmique ou petit jeu.
Cette méthode de programmation s'inspire du paradigme déclaratif, car elle décrit d'abord le "quoi" par la spécification avant le "comment", l'implémentation. On peut déléguer au systéme la construction de l'implémentation par combinaison d'éléments atomiques qui lui sont fournis. C'est ainsi que sera ouvert le talk, par d'autres pistes de réfléxions: génération automatique de code ? language de programmation test-safe ?
Informations diverses
The text was updated successfully, but these errors were encountered: