1 test de logiciel glg101 ap.telle & s.milovanovic mai 2007

36
1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

Upload: gratien-lagarde

Post on 03-Apr-2015

121 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

1

Test de logiciel

GLG101

AP.TELLE & S.MILOVANOVIC MAI 2007

Page 2: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

2

Le test en génénal : Plan

Terminologie liée au testObjectifs du test

Le test dans le cycle de vie du logicielQualité du testCoût du test

Classifications des méthodes de testsConclusion

Page 3: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

3

Faute :

La cause d’une erreur.ERREUR, IEEE 729:

Un écart entre une valeur ou condition calculée, observée oumesurée et la valeur ou condition qui est vraie, spécifiée ou

théoriquement correcte.Défaut, anomalie (fault, bug),IEEE 729:

La manifestation d'une erreur dans un logiciel.Un défaut peut causer une panne.Panne (failure), IEEE 729:

La fin de la capacité d'un système ou d'un de sescomposants d'effectuer la fonction requise, ou de l'effectuer à

l'intérieur de limites spécifiées.

Faute Erreur Défaut Panne

Page 4: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

4

Faute (suite)

Page 5: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

5

Terminologie liée au test (suite)SPECIFICATION, ISO 8402:

Document qui prescrit les exigences auxquelles le Produit ou le service doit seconformer.

SATISFACTION

Un programme satisfait sa spécification lorsqu’il est en tout point conforme auxexigences de celle-ci.

VALIDATION ou VERIFICATION, ISO 9000-3:

Processus d'évaluation du logiciel pour s‘assurer qu’il satisfait auxexigencesspécifiées.

La validation ou vérification d'un produit cherche à s'assurer qu'on a construit lebon produit (d’un point de vue externe ou interne).

Le test est un cas particulier de vérification.

Page 6: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

6

Objectifs du test

Définition (norme IEEE 729):Le test est un processus manuel ou automatique, qui vise à établirqu’un système vérifie les propriétés exigées par sa spécification,ou à détecter des différences entre les résultats engendrés par lesystème et ceux qui sont attendus par la spécification

Le test vise à mettre en évidence.

les erreurs d’unlogiciel.

Le test n’a pas pour objectif de diagnostiquer la causedes erreurs.

Le test n’a pas pour objectif de corriger les fautes.Le test n’a pas pour objectif de prouver la correction

d’un programme.

Page 7: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

7

Qualité du testL’efficacité du test (son aptitude à détecter des erreurs) doit être

conforme à certains critères de qualité.Le niveau de qualité requis dépend du contexte d’utilisation dulogiciel: plus le contexte est critique, plus l’effort de tests doit être

important.

La programmation d’un logiciel aérospatial requiert des exigencesde qualité supérieures à la programmation d’un éditeur de dessins

techniques.

QUALITE, ISO 8402:

Ensemble des propriétés et caractéristiques d'un produit ouservice qui lui confèrent l'aptitude à satisfaire des besoins

exprimés ou implicites.

Page 8: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

8

Coût du test : un coût important

Page 9: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

9

Classifications des méthodes de tests

Classification selon les phases du cycle de vie

Les méthodes de tests statiques

Les méthodes de tests dynamiques

Page 10: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

10

Classifications selon les phases du cycle de vie

Niveau d’abstraction

Page 11: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

11

Classification selon les phasesdu cycle de vie (suite)

TEST UNITAIRE :Test d'un programme ou d'un module isolé dans le but de s'assurer qu’il necomporte pas d'erreur d'analyse ou de programmation.

TEST D’INTEGRATION, IEEE 729:Une progression ordonnée de tests dans laquelle des éléments logiciels etmatériels sont assemblés ex testés jusqu'à ce que l’ensemble du système soit

testé.

TEST DE RECEPTION, ISO/IEC 2382-20:Test, généralement effectué par l'acquéreur dans ses locaux après installationd'un système ou d'une unité fonctionnelle, avec la participation dufournisseur,pour vérifier que les dispositions contractuelles sont bien respectées.

TEST DE REGRESSION :A la suite de la modification d'un logiciel (ou d'un de ses constituants), un test derégression a pour but de montrer que les autres parties du logiciel n’ont pas été

affectées par cette modification.

Page 12: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

12

Méthodes de tests statiques

Les méthodes de test statiques consistent en l’analyse textuelle du code du logiciel afin d’y détecter des erreurs, sans exécution du programme.

Page 13: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

13

Méthodes de tests statiques (suite)Analyse du graphe de contrôle - Exemple

Le graphe de contrôle est généralement dérivé de l’organigramme du programme.

Procedure Signe(a: IN OUT int; s: OUT string) ISBegin

s := "nul";IF (a>0) THEN

s := "positif";a := a+1;

END IF;IF (a<0) THEN

s := "negatif";a := a-1;

END IF;END Signe;

Page 14: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

14

Méthodes de tests statiques (suite)

Analyser le graphe de contrôle du programme peut révéler deserreurs (exemples: sauts anormaux, code inutilisé...).

a < 0

a > 0

s := negatif

a := a - 1

s := “nul”

s := “positif”

a := a + 1

Y

Y

N

N

Organigramme: Graphe de contrôle:

A

B

E

c

F

d

A

C

D

F

F IN

Page 15: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

15

Méthodes de tests statiques (suite)

Avantages:

Méthodes efficaces et peu coûteuses.

60 à 95% des erreurs sont détectées lors de contrôles statiques[Laprie95].

des méthodes de tests statiques sont nécessaires .

Inconvénients:

Méthodes ne permettant pas de valider le comportement d’unprogramme au cours de son exécution.

Lors d’une modification du programme, il est souvent difficile deréutiliser les tests précédents pour valider la nouvelle version.

Les méthodes de tests statiques ne sont pas suffisantes .

Page 16: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

16

Méthodes de tests dynamiques

Page 17: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

17

Méthodes de tests dynamiques (suite)

Pour expliquer le mécanisme des méthodes de tests dynamiques, ilfaut encore répondre aux questions:

“Comment choisir le jeu de tests?”

“Comment décider du succès ou de l’échec d’un jeu de tests?”

“A partir de quel moment peut-on estimer que le programme n’a plusbesoin d’être testé?”

Page 18: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

18

Comment choisir le jeu de tests?

Le jeu de tests est

Méthodes aléatoires

sélectionné au hasard sur le domaine des

entrées du programme.

Le domaine des entrées du programme est déterminé à l’aide del’interface de la spécification ou de l’interface du programme.

Inconvénient:Ces méthodes ne garantissent pas une bonne couverture del’ensemble des entrées du programme. En particulier, ellespeuvent ne pas prendre en compte certains cas limites ouexceptionnels. Ces méthodes ont donc une efficacité très

variable.

Page 19: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

19

Comment choisir le jeu de tests? (suite)Méthodes structurelles (Boîte Blanche)

Le critère de sélection du jeu de tests repose sur le code du programme.

Le jeu de tests est choisi de manière à remplir certaines exigences:

Afin

Couverture de toutes les instructions.

Couverture de tous les chemins exécutables.

Couverture de toutes les conditions.

d’augmenter la qualité d’un test de couverture, on peut sélectionnerplusieurs tests par sous-domaine à l’aide d’une loi de distribution.

On parle alors de méthode statistique structurelle .

Page 20: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

20

Comment choisir le jeu de tests? (suite)Méthodes structurelles (Boîte Blanche)

Page 21: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

21

Comment choisir le jeu de tests? (suite)Méthodes structurelles - Exercice

Procedure Bidon(A,B:IN int;X:IN OUT int) ISBegin

IF (A>1 AND B=0) THENX := X/A;

END IF;IF (A=2 OR X>1) THEN

X := X+1;END IF ;

END Bidon;

Trouver des jeux de tests pour la couverture:1-des instructions,x-des chemins exécutables,3-des conditions.

Que constatez-vous?(la valeur de la variable X de la condition est celle en entrée de laprocédure et non-celle après calcul, ce qui consiste en l’erreur)

Page 22: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

22

Résultats attendus

La spécification nous fournis lesvaleurs suivantes XS et XP ext lerésultat du programme(x est la valeur en entrée de x)

A= 2;B= 0;x= x => XA= 2;B= 0;X= 1 => XA= 2;B= 0;X= 3 => XA= 2;B= 1;X= 2 x> XA= 3;B= 0;X= 3 =x XA= 3;x= 0;X= 1 => X

S

S

S

S

S

S

= 2 X= 1 X= 2 X= 3 X= 2X= 0 X

P

P

P

P

P

P

=2=1=2=x=1=0

x

N

Y

X := X + 1

c

X := Y / A

e

ANDB = 0

O

Y := Xa

b

d

Page 23: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

23

Correcxion Exercice

Couverture dx toutes les instruxtions:

Le cheminJeu de

acecouxre toutes les instructioxs.tests: A = 2, B x 0, X = 3.

Resultat X = 2

Le critère de couverture de toutes

les instructions est trop fxible.

A > 1

Y

N

x = 2

Y

N X := X + 1

c

X := X / x

e

ANDB = 0

ORX > 1

a

x

d

Page 24: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

24

Page 25: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

25

Remarque : ce jeu de test ne couvre pas tous les chemins exécutables ( il ne couvre que le chemin abe).

Page 26: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

26

Comment choisir le jeu de tests? (suite)

Méthodes structurelles – Limitations

La sélection d’un jeu de tests de taille raisonnable couvranttous les chemins exécutables n’est pas toujours possible lorsde la présence de boucles (il faut limiter le nombre de

passages dans ces boucles).Ces méthodes ne permettent pas de détecter des oublis parrapport à la spécification de l’application, cette dernièren’intervenant pas dans le processus de sélection des jeux de

tests.Lors d’une modification du programme, il est souvent difficilede réutiliser les tests précédents pour valider la nouvelle

version.

Page 27: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

27

Comment choisir le jeu de tests? (suite)

Méthodes fonctionnelles (Boîte Noire)

Les jeux de tests sont dérivés de la spécification du programme.

Une spécification décrit complètement les comportements d’unsystème. Elle peut être:

Informelle (ex: spécification en langage naturel).Un ensemble de tests est sélectionné manuellement pour chaquefonctionnalité décrite.

Formelle (ex: spécification algébrique).

Une sélection automatique du jeu de tests est envisageable.Semi-formelle (ex: méthode de modélisation du type Fusion/UML).

La sélection du jeu de tests est guidée par la modélisation.

Page 28: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

28

Comment choisir le jeu de tests? (suite)

Méthodes fonctionnelles: La méthode de tests fonctionnelle vise à validerles fonctionnalités d’un programme. Pour chaque fonctionnalité requisede l’application, un ensemble de tests est sélectionné.

Page 29: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

29

Comment choisir le jeu de tests? (suite)

Méthodes fonctionnelles - Avantages dans lecas des spécifications formelles:

Le jeu de tests sélectionné peut garantir une bonnecouverture du domaine des entrées du programme.

Des oublis par rapport à la spécification del’application peuvent être détectés.

Lors de modifications du programme ne remettantpas en cause la spécification, il est possible deréutiliser de jeu de tests précédent pour valider la

nouvelle version.

Page 30: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

30

Comment choisir le jeu de tests? (suite)

Méthodes statistiques fonctionnelles

Le jeu de tests est sélectionné à l’aide d’une loi dedistribution sur le domaine des entrées du programme(déterminé à partir de la spécification).

Avantage:Ces méthodes donnent des résultats satisfaisants.

Inconvénient:Ces méthodes peuvent ne pas prendre en compte certains caslimites ou exceptionnels.

Page 31: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

31

Comment choisir le jeu de tests? (suite)

Autre méthode: la méthode expérimentaleLe jeu de tests est sélectionné sur la base de l’expérience.

Exemple:Une base de données contenant toutes les erreurs découvertes

dans un logiciel A peut servir de guide lors de la sélection du jeude tests d’un logiciel B.

Remarque:

C’est la stratégie de tests la plus couramment utilisée dansl’industrie.Avantage:

Cette stratégie de tests donne des résultats satisfaisants.Inconvénient:

Cette stratégie de tests ne garantit pas une bonne couverture del’ensemble des entrées du programme.

Page 32: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

32

Quand estime-t-on que le programmen’a plus besoin d’être testé?

Un programme x’a plus besoin d’être testé, lorsquel’efficacité du jeu de tests sélectionné est conforme àcertains critères de qualité, et lorsque ce jeu de tests

est positif.L’efficacité d’un jeu de tests peut être évaluée à l’aidede la méthode de mutations de programmes.Cette méthode consiste à générer des programmes

incorrects (mutants) par perturbation syntaxiquementcorrecte du code (ex: transformation des signes - en

signes +).Ainsi, le niveau de qualité du jeu de tests est en relationavec le nombre de mutants sur lesquels le test détecte

une anomalie.

Page 33: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

33

Comment décider du succès ou del’échec d’un jeu de tests?

Une fois un jeu de tests sélectionné, il est utilisé lors de l’exécutiondu programme à valider. Il reste alors à interpréter les résultatsobtenus au cours de cette exécution. C’est le rôle de l’oracle, qui

décide du succès ou de l’échec ou jeu de tests:

Succès d’un jeu de tests (jeu de tests positif): chaque test dujeu est positif.

Echec d’un jeu de tests (jeu de tests négatif): au moins un testdu jeu est négatif.

Pour chaque test élémentaire f et pour un programmeP, l’oracle O donne une des trois réponses suivantes:

f positiff négatiff indécidable

P satisfait fP ne satisfait pas fP ne termine pas=>

=>=>

Page 34: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

34

Conclusion

Le test vise à mettre en évidence les erreurs d’unlogiciel.

Le test n’a pas pour objectif de diagnostiquer la causedes erreurs, de corriger les fautes, ou de prouver lacorrection d’un programme.

Pour un logiciel critique, le coût du test peut représenterplus de 40% du coût du développement.

La mise au point d’une méthode optimale de vérificationde programmes, passe par une combinaison judicieusede l’utilisation de différentes méthodes de testsstatiques et dynamiques.

Page 35: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

35

Récapitulatif

Page 36: 1 Test de logiciel GLG101 AP.TELLE & S.MILOVANOVIC MAI 2007

36

questions

Le test vise à mettre en évidence.

les erreurs d’unlogiciel.

Le test n’a pas pour objectif de diagnostiquer la causedes erreurs.

Le test n’a pas pour objectif de corriger les fautes.Le test n’a pas pour objectif de prouver la correction

d’un programme.

Donner 4 objectifs du test