Vous êtes sur la page 1sur 23

Les Tests en Génie Logiciel

Les Tests en Génie Logiciel

Jean-Michel Richer
jean-michel.richer@univ-angers.fr
http://www.info.univ-angers.fr/pub/richer
Université d’Angers
LERIA - Laboratoire d’Etudes et de Recherche
en Informatique d’Angers

2008

1 / 23
Les Tests en Génie Logiciel
Plan

Plan

1 Cours

2 Mise en application

2 / 23
Les Tests en Génie Logiciel
Cours

Pourquoi tester le logiciel

• la réalisation d’un logiciel demande beaucoup d’efforts et


d’attention.

3 / 23
Les Tests en Génie Logiciel
Cours

Pourquoi tester le logiciel

• la réalisation d’un logiciel demande beaucoup d’efforts et


d’attention.
• le nombre de concepts / d’objets à manipuler peut vite
devenir problématique

4 / 23
Les Tests en Génie Logiciel
Cours

Pourquoi tester le logiciel

• la réalisation d’un logiciel demande beaucoup d’efforts et


d’attention.
• le nombre de concepts / d’objets à manipuler peut vite
devenir problématique
• les tests assurent la cohérence et la fiabilité du logiciel

5 / 23
Les Tests en Génie Logiciel
Cours

Les différents types de tests

On peut distinguer au moins 3 types de tests :


• tests de validation, cohérence des algorithmes

6 / 23
Les Tests en Génie Logiciel
Cours

Les différents types de tests

On peut distinguer au moins 3 types de tests :


• tests de validation, cohérence des algorithmes
• tests de (non) régression

7 / 23
Les Tests en Génie Logiciel
Cours

Les différents types de tests

On peut distinguer au moins 3 types de tests :


• tests de validation, cohérence des algorithmes
• tests de (non) régression
• tests de performance

8 / 23
Les Tests en Génie Logiciel
Cours

Les tests de validation

• assurent que l’implantation des algorithmes est fiable et


correspond àce qui était demandé

9 / 23
Les Tests en Génie Logiciel
Cours

Les tests de validation

• assurent que l’implantation des algorithmes est fiable et


correspond àce qui était demandé
• difficile à mettre en oeuvre

10 / 23
Les Tests en Génie Logiciel
Cours

Les tests de validation

• assurent que l’implantation des algorithmes est fiable et


correspond àce qui était demandé
• difficile à mettre en oeuvre
• pas toujours nécessaires voire inutile

11 / 23
Les Tests en Génie Logiciel
Cours

Les tests de (non) régression

• assurent que le logiciel fonctionne correctement

12 / 23
Les Tests en Génie Logiciel
Cours

Les tests de (non) régression

• assurent que le logiciel fonctionne correctement


• assurent que toute modification d’un code correct
n’introduit pas d’erreur

13 / 23
Les Tests en Génie Logiciel
Cours

Les tests de (non) régression

• assurent que le logiciel fonctionne correctement


• assurent que toute modification d’un code correct
n’introduit pas d’erreur
• peuvent être écrits avant le code (cas des méthodes
agiles)

14 / 23
Les Tests en Génie Logiciel
Cours

Les tests de (non) régression

• assurent que le logiciel fonctionne correctement


• assurent que toute modification d’un code correct
n’introduit pas d’erreur
• peuvent être écrits avant le code (cas des méthodes
agiles)
• peuvent être mis en oeuvre de manière automatique
(framework xUnit) ou à la main (design for testability)

15 / 23
Les Tests en Génie Logiciel
Cours

Les tests de (non) régression en pratique

• pour chaque module, pour chaque classe et pour chaque


méthode il faut créer un test

16 / 23
Les Tests en Génie Logiciel
Cours

Les tests de (non) régression en pratique

• pour chaque module, pour chaque classe et pour chaque


méthode il faut créer un test
• le test a pour but de vérifier le comportement de la
méthode

17 / 23
Les Tests en Génie Logiciel
Cours

Les tests de (non) régression en pratique

• pour chaque module, pour chaque classe et pour chaque


méthode il faut créer un test
• le test a pour but de vérifier le comportement de la
méthode
• régulièrement on lance les tests, en cas d’erreur on envoie
un message aux programmeurs

18 / 23
Les Tests en Génie Logiciel
Cours

Les tests de performance

• assurent que l’implantation est efficace

19 / 23
Les Tests en Génie Logiciel
Cours

Les tests de performance

• assurent que l’implantation est efficace


• recherchent les paramètres qui rendent les algorithmes les
plus performants possibles

20 / 23
Les Tests en Génie Logiciel
Cours

Les tests de performance

• assurent que l’implantation est efficace


• recherchent les paramètres qui rendent les algorithmes les
plus performants possibles
• demandent généralement beaucoup de temps de calcul
(cluster)

21 / 23
Les Tests en Génie Logiciel
Mise en application

Mise en
application

22 / 23
Les Tests en Génie Logiciel
Mise en application

• tests de non régression (make)


• tests de performance (utilisation make, shell, awk, gnuplot)

23 / 23