• Aucun résultat trouvé

Vérification –Assertions & tests unitaires

N/A
N/A
Protected

Academic year: 2022

Partager "Vérification –Assertions & tests unitaires"

Copied!
2
0
0

Texte intégral

(1)

Vérification de systèmes intégrés - ENSEIRB _________________________________________

Vérification –Assertions & tests unitaires

Cette première séance de TP vise à illustrer les différentes techniques que vous avez pu voir en cours. Toutefois, vous mettrez en pratique ces connaissances et les principes associés que dans le domaine de la conception logicielle. Ce TP s’articule autour de la mise au point et la validation d’une fonction élémentaire. L’utilisation de cette fonction élémentaire possède un avantage et un inconvénient :

- Avantage : vous allez vite vous rendre compte que de vérifier quelque chose de simple n’est pas si simple…

- Inconvénient : certaines techniques que vous allez utiliser vont sembler complexes à mettre en œuvre pour un exemple si trivial. Toutefois, votre expérience devrait vous permettre de relativiser ce sentiment vis a vis des développements que vous réalisez en entreprise.

A la fin de la séance de TP vous devrez remettre à votre encadrant un rapport de TP (manuscrit) détaillant le code écrit et les techniques de vérification employées. Des commentaires pertinents sur ces techniques et leurs intérêts commenteront chacune des questions traitées.

Algorithme de calcul du PGCD de 2 nombres entiers :

FONCTION PGCD( A, B ) TANT QUE A /= B ALORS

SI A > B ALORS A = A – B SINON

B = B – A FIN ALORS FIN TANT QUE RENVOYER A FIN FONCTION

Question 1 : Reprenez l’algorithme de calcul du PGDC et écrivez la fonction C correspondante.

Testez et validez votre code en écrivant une fonction main permettant d’exécuter votre fonction (à l’aide de quelques valeurs de test).

Question 2 : Ecrivez deux fonctions (RandA et RandB) qui permettent de générer aléatoirement des valeurs de A et B (entre 0 à 255) afin d’augmenter le nombre de tests appliqués à votre fonction.

Utilisez ces 2 fonctions afin de tester votre fonction à l’aide de 20 couples de valeurs différentes.

(2)

Vérification de systèmes intégrés - ENSEIRB _________________________________________

Question 3 : Mettez en place les mécanismes d’assertion vus en cours. Dans un premier temps vous ne vous préoccuperez que des pré-conditions. Vérifiez que les assertions réalisent bien leur travail.

Vérifiez que lorsque l’on compile le programme en mode « final » ces dernières disparaissent. Quel est l’intérêt de mettre des pré-conditions dans un code ?

Question 4 : Intégrez maintenant toutes les pré-conditions et post-condition possibles dans votre fonction (sans toucher à la partie calculatoire). Quel est l’intérêt de mettre des post-conditions dans un code ? Quelle est la limite de post-conditions ?

Question 5 : Maintenant nous allons considérer que cette fonction ne doit travailler (dans le projet courant) qu’avec des nombres dont les valeurs numériques varient entre 1 et 1025 pour A et 2 et 2049 pour B. Intégrez ces hypothèses dans votre programme et vérifiez votre fonction.

Question 6 : Développez un programme permettant de réaliser des tests unitaires sur la fonction que vous venez de développer. Ces tests unitaires devront couvrir un jeu de tests dont le nombre des données ainsi que les valeurs est laissé à votre appréciation. Développez le code et validez le.

Question 5: Afin de simplifier le test de composants (fonctions) pouvant être utilisés dans plusieurs projets, on utilise souvent des fichiers externes. Ecrivez un programme (main) permettant de lire les valeurs de A et B dans un fichier (texte) et écrivant les résultats dans un autre fichier (texte). Placez les résultats théoriques dans un fichier nommé ref.txt et utilisez la commande diff afin de comparer les résultats théoriques et pratiques.

Remarques : Les valeurs présentes dans le fichier ref.txt sont généralement issues d’une autre version de l’algorithme (code Matlab par exemple). Cette approche permet d’utiliser une « golden model » lors de la conception d’un code d’implantation

Références

Documents relatifs

Exercice 7 : Dans une même classe, écrire deux fonctions triple qui l’une prend un argument entier et

Justifier si un point appartient ou non à la représentation graphique de la fonction carré. Dresser des tableaux

[r]

De plus, la fonction carré apparaît très souvent lorsqu'on souhaite résoudre un problème mettant en relation des aires (l'aire d'un carré de côté x cm est x 2 cm

• Si absence de poste lors de la réintégration, mise en disponibilité dans l’attente d’un poste + dans le délai d’un an, 3 propositions à faire. correspondantes au grade

Si les deux pr´ ec´ edentes m´ ethodes n’ont rien donn´ e, on peut appliquer la m´ ethode de la variation de la

On précise de plus que le point de coordonnées (0.25 ;0.5) est commun aux deux courbes.. Dresser le tableau de signes de la

A partir d’une représentation graphique (donc à partir de deux points), on peut retrouver la fonction affine qui correspond, comme sur cette vidéo. Remarque : Tout nombre admet