Le hasard fait bien les tests
DevFest Toulouse
Toulouse
🇫🇷France
Nov. 2025
Slides
Abstract
Le hasard fait bien les choses.
Si on applique cette idée aux tests unitaires ou aux tests d’intégration, on peut rendre nos tests beaucoup plus imprévisibles et du coup trouver des problèmes que notre esprit n’aurait jamais osé imaginer ! Par exemple, récemment, j’ai découvert dans une bibliothèque de gestion de configuration, un bug
qui se produit lorsque la Locale est configuré en AZ. 🤦🏼♂️
Un autre exemple encore plus simple :
int input = generateInteger(Integer.MIN_VALUE, Integer.MAX_VALUE);
int output = Math.abs(input);
Peut générer -2147483648… Ce qui est assez inattendu pour une valeur absolue ! 😉
Les tests aléatoires peuvent découvrir ces cas tordus… C’est ce que l’équipe elasticsearch a mis en place depuis plusieurs années à l’aide du framework RandomizedTesting
pour tester tout le code Java.
Après cette conférence, vous ne verrez plus jamais la fonction random() comme avant et découvrirez comment la (mal)chance peut vous aider ! 🍀
Resources
The following resources were mentioned during the presentation or are useful additional information.
Demo project
The source code for the demo project
RandomizedTesting framework
The framework provided by Carrot Search
Ariane 5 launch video
The Ariane 5 first launch on June 4th, 1996
FSCrawler project
FSCrawler is running tests with RandomizedTesting framework
A weird CI error in FSCrawler
The error I could not reproduce locally
Gestalt issue 242
The issue I opened after my findings
