La résolution de contraintes, ca consiste à définir:
- un certain nombre de paramètres et leur types (par exemple, définir qu'un "id" est un uint)
- les contraintes intrinsèques de ces paramètres ( un "id" est compris entre 0 et 15)
- les contraintes externes ( si le paramètre "anonymous_flag" est a 1, alors "id" vaut 15)
Ca c'est pour définir les règles générales de ton jeu de tests. Tu peux également rajouter des contraintes en dynamique, juste pour un test en particulier, par exemple:
- pour ce test, "id" vaut 5.
Ton test a alors perdu en aléatoire puisque "id" est contraint mais pour autant les autres paramètres non liés sont tout autant aléatoires: c'est ce qu'on appelle un test semi-dirigé.
Et donc, pour répondre à ta question, la résolution de contraintes, c'est un logiciel (ou un algorithme) qui va prendre en considération toutes ces contraintes et te donner une dataset qui répond à ce que tu lui as demandé, te permettant ainsi de générer une database de tests aux petits oignons.
A ma connaissance, un des premiers logiciels (sinon le premier ?) à avoir apporté la résolution de contraintes pour un environnement de test est Specman de Cadence (désolé pbpg, c'est pas MS), qui a été massivement utilisé dans l'industrie de la micro-électronique.
[^] # Re: Rien de nouveau
Posté par flagos . En réponse au journal Fuzzing : éprouver les entrées de vos développements. Évalué à 5. Dernière modification le 28 octobre 2015 à 15:39.
La résolution de contraintes, ca consiste à définir:
- un certain nombre de paramètres et leur types (par exemple, définir qu'un "id" est un uint)
- les contraintes intrinsèques de ces paramètres ( un "id" est compris entre 0 et 15)
- les contraintes externes ( si le paramètre "anonymous_flag" est a 1, alors "id" vaut 15)
Ca c'est pour définir les règles générales de ton jeu de tests. Tu peux également rajouter des contraintes en dynamique, juste pour un test en particulier, par exemple:
- pour ce test, "id" vaut 5.
Ton test a alors perdu en aléatoire puisque "id" est contraint mais pour autant les autres paramètres non liés sont tout autant aléatoires: c'est ce qu'on appelle un test semi-dirigé.
Et donc, pour répondre à ta question, la résolution de contraintes, c'est un logiciel (ou un algorithme) qui va prendre en considération toutes ces contraintes et te donner une dataset qui répond à ce que tu lui as demandé, te permettant ainsi de générer une database de tests aux petits oignons.
A ma connaissance, un des premiers logiciels (sinon le premier ?) à avoir apporté la résolution de contraintes pour un environnement de test est Specman de Cadence (désolé pbpg, c'est pas MS), qui a été massivement utilisé dans l'industrie de la micro-électronique.
https://en.wikipedia.org/wiki/E_(verification_language)