Génération de tests aléatoires pour des types numériques contraints
Vincent Botbol (Nomadic labs), Matthieu Dien (GREYC), Ghiles Ziat (IRIF, Univ. Paris)Il est fréquent de manipuler des valeurs numériques avec des contraintes non explicitées par leur types. Par exemple, les intervalles sont des couples de nombres avec la contraintes que le premier (la borne inférieure) soit plus petit que le deuxième (borne supérieure). Nos travaux proposent de générer automatiquement des tests unitaires pour à partir de la définition de ce genre de types. Nous présenterons des exemples en OCaml.
Pour générer des tests automatiquement à partir d’un type :
- nous dérivons les contraintes le concernant ;
- nous calculons, à l’aide de programmation par contrainte, une représentation de l’espace des habitants de ce type sous forme de domaines abstraits
- enfin nous générons le code du test qui générera aléatoirement des valeurs à l’aide de la méthode de la densité.
Cette présentation couvrira les différentes notions (typage, programmation par contraintes, domaines abstraits, génération aléatoire) “à partir de zéro”.