57
ethodes de test Mihaela Sighireanu UFR d’Informatique Paris 7, LIAFA, 175 rue Chevaleret, Bureau 6A7 http://www.liafa.jussieu.fr/sighirea/cours/methtest/ Mihaela Sighireanu ethodes de test

Méthodes de test - Bienvenue à l'IRIFsighirea/cours/methtest/c_test_1.pdf · Partie I 1 D´efinition D´efinition Propri´et´es 2 Types Un peu de g´enie logiciel Types de test

  • Upload
    vodieu

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Methodes de test

Mihaela Sighireanu

UFR d’Informatique Paris 7, LIAFA, 175 rue Chevaleret, Bureau 6A7http://www.liafa.jussieu.fr/∼sighirea/cours/methtest/

Mihaela Sighireanu Methodes de test

Partie I

1 DefinitionDefinitionProprietes

2 TypesUn peu de genie logicielTypes de test

3 FormalisationElementsProblemesPoint de depart

4 Methodes de testTest en “boıte blanche”Test en “boıte noire”Combiner les strategies

5 Outils

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

DefinitionProprietes

Qu’est-ce le test ?

Test d’un systeme = processus d’essai des executions d’un systeme selonun certain critere. L’observation de chaque execution est comparee avecla specification du systeme sous test :

si conforme : test passe (ACCEPT)

sinon : test echoue (FAIL)

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

DefinitionProprietes

Proprietes du test (1/2)

Essai =⇒ non-exhaustivite :

NON : absence d’erreurs

NON : fonctionnalite assuree

NON : trouver toutes les erreurs

OUI : trouver des erreurs d’execution du systeme sous certainesconditions.

Specification = oracle de conformite. Idealement, elle doit contenir desinformations completes et correctes pour

le programmeur = programmer sans erreurs par rapport a la spec

le testeur = trouver le plus d’erreurs par rapport a la spec

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

DefinitionProprietes

Proprietes du test (1/2)

Essai =⇒ non-exhaustivite :

NON : absence d’erreurs

NON : fonctionnalite assuree

NON : trouver toutes les erreurs

OUI : trouver des erreurs d’execution du systeme sous certainesconditions.

Specification = oracle de conformite. Idealement, elle doit contenir desinformations completes et correctes pour

le programmeur = programmer sans erreurs par rapport a la spec

le testeur = trouver le plus d’erreurs par rapport a la spec

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

DefinitionProprietes

Proprietes du test (1/2)

Essai =⇒ non-exhaustivite :

NON : absence d’erreurs

NON : fonctionnalite assuree

NON : trouver toutes les erreurs

OUI : trouver des erreurs d’execution du systeme sous certainesconditions.

Specification = oracle de conformite. Idealement, elle doit contenir desinformations completes et correctes pour

le programmeur = programmer sans erreurs par rapport a la spec

le testeur = trouver le plus d’erreurs par rapport a la spec

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

DefinitionProprietes

Proprietes du test (1/2)

Essai =⇒ non-exhaustivite :

NON : absence d’erreurs

NON : fonctionnalite assuree

NON : trouver toutes les erreurs

OUI : trouver des erreurs d’execution du systeme sous certainesconditions.

Specification = oracle de conformite. Idealement, elle doit contenir desinformations completes et correctes pour

le programmeur = programmer sans erreurs par rapport a la spec

le testeur = trouver le plus d’erreurs par rapport a la spec

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

DefinitionProprietes

Proprietes du test (1/2)

Essai =⇒ non-exhaustivite :

NON : absence d’erreurs

NON : fonctionnalite assuree

NON : trouver toutes les erreurs

OUI : trouver des erreurs d’execution du systeme sous certainesconditions.

Specification = oracle de conformite. Idealement, elle doit contenir desinformations completes et correctes pour

le programmeur = programmer sans erreurs par rapport a la spec

le testeur = trouver le plus d’erreurs par rapport a la spec

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

DefinitionProprietes

Proprietes du test (1/2)

Essai =⇒ non-exhaustivite :

NON : absence d’erreurs

NON : fonctionnalite assuree

NON : trouver toutes les erreurs

OUI : trouver des erreurs d’execution du systeme sous certainesconditions.

Specification = oracle de conformite. Idealement, elle doit contenir desinformations completes et correctes pour

le programmeur = programmer sans erreurs par rapport a la spec

le testeur = trouver le plus d’erreurs par rapport a la spec

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

DefinitionProprietes

Proprietes du test (2/2)

... par rapport a la verification exhaustive :

Les plus :

tres simple

toujours faisable

bon rapport performance / cout

tres populaire

Les moins :

peu rigoureux

non-exhaustif

mesure difficile de sa qualite

subjectivite du testeur

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Un peu de genie logicielTypes de test

Methode de developpement en V

� � � �� � � � � � � � � � �� � � � � � � � � � � �� � � � � � � � � � �� � � � � � � � � � � � � � � � � � � � � � � � � � �

� � � � � � � � � � � � �

� � � � � � �� � � � � � � � � � � � � � � � � � �� � � �

� � � ! " � # � " $ " $ ! �$ % $ " & " $ " $ ! �' # " ( ) � " ' * # " $ " $ ! �& * + , - " $ " $ ! �, # ' "" $ " $ ! �Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Un peu de genie logicielTypes de test

Niveaux et phases

Niveaux :

Test unitaire = test des (petites) parties du code, separement.

Test d’integration = test d’un ensemble de parties du code quicooperent.

Test du systeme = test du systeme entier, en inspectant safonctionnalite.

Test d’acceptation = effectue par le client pour s’assurer de laconformite au besoin.

Phases :

Test de regression = test realise pendant la maintenance apres unchangement, afin de s’assurer que les systeme continue defonctionner correctement.

Test de robustesse = tester des entrees non-prevues.

Test sous stress = tester en conditions de surcharge.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Un peu de genie logicielTypes de test

Niveaux et phases

Niveaux :

Test unitaire = test des (petites) parties du code, separement.

Test d’integration = test d’un ensemble de parties du code quicooperent.

Test du systeme = test du systeme entier, en inspectant safonctionnalite.

Test d’acceptation = effectue par le client pour s’assurer de laconformite au besoin.

Phases :

Test de regression = test realise pendant la maintenance apres unchangement, afin de s’assurer que les systeme continue defonctionner correctement.

Test de robustesse = tester des entrees non-prevues.

Test sous stress = tester en conditions de surcharge.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Un peu de genie logicielTypes de test

Niveaux et phases

Niveaux :

Test unitaire = test des (petites) parties du code, separement.

Test d’integration = test d’un ensemble de parties du code quicooperent.

Test du systeme = test du systeme entier, en inspectant safonctionnalite.

Test d’acceptation = effectue par le client pour s’assurer de laconformite au besoin.

Phases :

Test de regression = test realise pendant la maintenance apres unchangement, afin de s’assurer que les systeme continue defonctionner correctement.

Test de robustesse = tester des entrees non-prevues.

Test sous stress = tester en conditions de surcharge.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Un peu de genie logicielTypes de test

Niveaux et phases

Niveaux :

Test unitaire = test des (petites) parties du code, separement.

Test d’integration = test d’un ensemble de parties du code quicooperent.

Test du systeme = test du systeme entier, en inspectant safonctionnalite.

Test d’acceptation = effectue par le client pour s’assurer de laconformite au besoin.

Phases :

Test de regression = test realise pendant la maintenance apres unchangement, afin de s’assurer que les systeme continue defonctionner correctement.

Test de robustesse = tester des entrees non-prevues.

Test sous stress = tester en conditions de surcharge.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Un peu de genie logicielTypes de test

Niveaux et phases

Niveaux :

Test unitaire = test des (petites) parties du code, separement.

Test d’integration = test d’un ensemble de parties du code quicooperent.

Test du systeme = test du systeme entier, en inspectant safonctionnalite.

Test d’acceptation = effectue par le client pour s’assurer de laconformite au besoin.

Phases :

Test de regression = test realise pendant la maintenance apres unchangement, afin de s’assurer que les systeme continue defonctionner correctement.

Test de robustesse = tester des entrees non-prevues.

Test sous stress = tester en conditions de surcharge.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Un peu de genie logicielTypes de test

Niveaux et phases

Niveaux :

Test unitaire = test des (petites) parties du code, separement.

Test d’integration = test d’un ensemble de parties du code quicooperent.

Test du systeme = test du systeme entier, en inspectant safonctionnalite.

Test d’acceptation = effectue par le client pour s’assurer de laconformite au besoin.

Phases :

Test de regression = test realise pendant la maintenance apres unchangement, afin de s’assurer que les systeme continue defonctionner correctement.

Test de robustesse = tester des entrees non-prevues.

Test sous stress = tester en conditions de surcharge.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Un peu de genie logicielTypes de test

Niveaux et phases

Niveaux :

Test unitaire = test des (petites) parties du code, separement.

Test d’integration = test d’un ensemble de parties du code quicooperent.

Test du systeme = test du systeme entier, en inspectant safonctionnalite.

Test d’acceptation = effectue par le client pour s’assurer de laconformite au besoin.

Phases :

Test de regression = test realise pendant la maintenance apres unchangement, afin de s’assurer que les systeme continue defonctionner correctement.

Test de robustesse = tester des entrees non-prevues.

Test sous stress = tester en conditions de surcharge.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Un peu de genie logicielTypes de test

Niveaux et phases

Niveaux :

Test unitaire = test des (petites) parties du code, separement.

Test d’integration = test d’un ensemble de parties du code quicooperent.

Test du systeme = test du systeme entier, en inspectant safonctionnalite.

Test d’acceptation = effectue par le client pour s’assurer de laconformite au besoin.

Phases :

Test de regression = test realise pendant la maintenance apres unchangement, afin de s’assurer que les systeme continue defonctionner correctement.

Test de robustesse = tester des entrees non-prevues.

Test sous stress = tester en conditions de surcharge.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

ElementsProblemesPoint de depart

Qu’est ce le test ?

Cas de test (TC) : une execution du programme declenchee par desdonnees de test (DT).

Suite de tests (TS) : un ensemble de DT.

Objectif de test (TO) : comportement de la spec a tester.

Systeme sous test (SUT ou IUT) : implementation du systeme atester.

SUT (DT) |= TO (specification)

Environnement de test : assure l’interaction (|=) entre le SUT et letesteur.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

ElementsProblemesPoint de depart

Qu’est ce le test ?

Cas de test (TC) : une execution du programme declenchee par desdonnees de test (DT).

Suite de tests (TS) : un ensemble de DT.

Objectif de test (TO) : comportement de la spec a tester.

Systeme sous test (SUT ou IUT) : implementation du systeme atester.

SUT (DT) |= TO (specification)

Environnement de test : assure l’interaction (|=) entre le SUT et letesteur.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

ElementsProblemesPoint de depart

Qu’est ce le test ?

Cas de test (TC) : une execution du programme declenchee par desdonnees de test (DT).

Suite de tests (TS) : un ensemble de DT.

Objectif de test (TO) : comportement de la spec a tester.

Systeme sous test (SUT ou IUT) : implementation du systeme atester.

SUT (DT) |= TO (specification)

Environnement de test : assure l’interaction (|=) entre le SUT et letesteur.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

ElementsProblemesPoint de depart

Qu’est ce le test ?

Cas de test (TC) : une execution du programme declenchee par desdonnees de test (DT).

Suite de tests (TS) : un ensemble de DT.

Objectif de test (TO) : comportement de la spec a tester.

Systeme sous test (SUT ou IUT) : implementation du systeme atester.

SUT (DT) |= TO (specification)

Environnement de test : assure l’interaction (|=) entre le SUT et letesteur.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

ElementsProblemesPoint de depart

Qu’est ce le test ?

Cas de test (TC) : une execution du programme declenchee par desdonnees de test (DT).

Suite de tests (TS) : un ensemble de DT.

Objectif de test (TO) : comportement de la spec a tester.

Systeme sous test (SUT ou IUT) : implementation du systeme atester.

SUT (DT) |= TO (specification)

Environnement de test : assure l’interaction (|=) entre le SUT et letesteur.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

ElementsProblemesPoint de depart

Qu’est ce le test ?

Cas de test (TC) : une execution du programme declenchee par desdonnees de test (DT).

Suite de tests (TS) : un ensemble de DT.

Objectif de test (TO) : comportement de la spec a tester.

Systeme sous test (SUT ou IUT) : implementation du systeme atester.

SUT (DT) |= TO (specification)

Environnement de test : assure l’interaction (|=) entre le SUT et letesteur.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

ElementsProblemesPoint de depart

Qu’est ce le test ?

Cas de test (TC) : une execution du programme declenchee par desdonnees de test (DT).

Suite de tests (TS) : un ensemble de DT.

Objectif de test (TO) : comportement de la spec a tester.

Systeme sous test (SUT ou IUT) : implementation du systeme atester.

SUT (DT) |= TO (specification)

Environnement de test : assure l’interaction (|=) entre le SUT et letesteur.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

ElementsProblemesPoint de depart

Problemes a resoudre

Non-exhaustivite =⇒

Probleme : Comment selectionner une suite de tests qui me permet dedetecter le plus d’erreurs ?

Reponse : Strategies de test.

Non-exhaustivite =⇒

Probleme : Comment mesurer l’efficacite du test ?

Reponse : Criteres de couverture du code.

Subjectivite et rigueur =⇒

Probleme : Comment formaliser le test ?

Reponse : Modeles formels de specification ou de description ducode.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

ElementsProblemesPoint de depart

Problemes a resoudre

Non-exhaustivite =⇒

Probleme : Comment selectionner une suite de tests qui me permet dedetecter le plus d’erreurs ?

Reponse : Strategies de test.

Non-exhaustivite =⇒

Probleme : Comment mesurer l’efficacite du test ?

Reponse : Criteres de couverture du code.

Subjectivite et rigueur =⇒

Probleme : Comment formaliser le test ?

Reponse : Modeles formels de specification ou de description ducode.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

ElementsProblemesPoint de depart

Problemes a resoudre

Non-exhaustivite =⇒

Probleme : Comment selectionner une suite de tests qui me permet dedetecter le plus d’erreurs ?

Reponse : Strategies de test.

Non-exhaustivite =⇒

Probleme : Comment mesurer l’efficacite du test ?

Reponse : Criteres de couverture du code.

Subjectivite et rigueur =⇒

Probleme : Comment formaliser le test ?

Reponse : Modeles formels de specification ou de description ducode.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

ElementsProblemesPoint de depart

Point de depart

La specification du systeme donnee sous la forme de

une description informelleun ensemble de scenario d’utilisationdes diagrammes de sequenceun automate

Le systeme sous test.

Une ou plusieurs strategies de test.

Un critere de selection des tests.

Un environnement de test.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Test en “boıte blanche”

Cas de tests generes en partant du code, en inspectant les cheminsd’execution du systeme.

Comme le nombre de chemins d’execution peut etre infini, on definitdes criteres de couverture afin d’augmenter la probabilite de trouverdes erreurs avec des chemins pas trop longs, en petit nombre.

Critere de couverture = quels sont les chemins d’execution a testerafin de couvrir le plus de comportement du systeme.

Approprie pour le test unitaire ou d’integration, mais il passe mal al’echelle.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Methodes de test en “boıte blanche”

Inspection de code et execution pas a pas

Tres utilise mais lourd, il trouve 30-70% d’erreurs.

Test structurel statique ≈ analyse statique.

Test structurel dynamique

avec couverture du flot de controleavec couverture du flot des donnees

Test par mutation = selection des TC par rapport a leur effet auchangement su systeme.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Graphe de flot du programme

Abstraction du code source, un graphe de flot contient

noeuds = blocks d’instructions en sequence, sans saut

arcs = sauts dans le flot de controle

Permet de raisonner sur la couverture du programme selon des critereschoisis (flot de controle ou flot de donnees).

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Exemple

1 /∗ Outputs r e s u l t = 0+1+.. .+ | v a l u e |2 ∗ i f r e s u l t > max int then e r r o r3 ∗/4 vo id maxsum( i n t maxint , i n t v a l u e ) {5 i n t r e s u l t =0;6 i n t i =0;7 i f ( v a l u e < 0)8 v a l u e = −v a l u e ;9 wh i l e ( i< v a l u e && r e s u l t <= max int ) {

10 i ++;11 r e s u l t = r e s u l t+i ;12 }13 i f ( r e s u l t <= max int )14 p r i n t l n ( r e s u l t ) ;15 e l s e16 p r i n t l n ( ” e r r o r ” ) ;17 }

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Couverture du flot de controle (1/2)

Tous les noeuds : le plus faible.Exemple : DT1 = (10,−1), DT2 = (0,−1)

Tous les arcs : test de chaque decisionExemple : DT ′

1 = (10, 3), DT2 = (0,−1)

Toutes les conditions : peut ne pas couvrir toutes les decisionsExemple : DT3 = (−1, 1), DT4 = (1, 0)

Toutes les combinaisons de conditions : explosion combinatoire !

Tous les chemins : le plus fort, impossible a realiser s’il y a desboucles.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Couverture du flot de controle (1/2)

Tous les noeuds : le plus faible.Exemple : DT1 = (10,−1), DT2 = (0,−1)

Tous les arcs : test de chaque decisionExemple : DT ′

1 = (10, 3), DT2 = (0,−1)

Toutes les conditions : peut ne pas couvrir toutes les decisionsExemple : DT3 = (−1, 1), DT4 = (1, 0)

Toutes les combinaisons de conditions : explosion combinatoire !

Tous les chemins : le plus fort, impossible a realiser s’il y a desboucles.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Couverture du flot de controle (1/2)

Tous les noeuds : le plus faible.Exemple : DT1 = (10,−1), DT2 = (0,−1)

Tous les arcs : test de chaque decisionExemple : DT ′

1 = (10, 3), DT2 = (0,−1)

Toutes les conditions : peut ne pas couvrir toutes les decisionsExemple : DT3 = (−1, 1), DT4 = (1, 0)

Toutes les combinaisons de conditions : explosion combinatoire !

Tous les chemins : le plus fort, impossible a realiser s’il y a desboucles.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Couverture du flot de controle (1/2)

Tous les noeuds : le plus faible.Exemple : DT1 = (10,−1), DT2 = (0,−1)

Tous les arcs : test de chaque decisionExemple : DT ′

1 = (10, 3), DT2 = (0,−1)

Toutes les conditions : peut ne pas couvrir toutes les decisionsExemple : DT3 = (−1, 1), DT4 = (1, 0)

Toutes les combinaisons de conditions : explosion combinatoire !

Tous les chemins : le plus fort, impossible a realiser s’il y a desboucles.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Couverture du flot de controle (1/2)

Tous les noeuds : le plus faible.Exemple : DT1 = (10,−1), DT2 = (0,−1)

Tous les arcs : test de chaque decisionExemple : DT ′

1 = (10, 3), DT2 = (0,−1)

Toutes les conditions : peut ne pas couvrir toutes les decisionsExemple : DT3 = (−1, 1), DT4 = (1, 0)

Toutes les combinaisons de conditions : explosion combinatoire !

Tous les chemins : le plus fort, impossible a realiser s’il y a desboucles.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Couverture du flot de controle (2/2)

Test des boucles : les criteres vus ne sont pas suffisants !

Une seule boucle (simple), tester les executions :

aucune iterationune seule iterationdeux iterationsun nombre typique d’iterationsn − 1, n, n + 1 iterations avec n le nombre d’iterations.

Exemple : (15, 0), (15, 1), (15, 2), (15, 3), (6, 4), (15, 5)

Boucles imbriquees : commencer par fixer le nombre d’iterations dela boucle la plus exterieure et tester les boucles interieures commeboucle simple.

Boucles en suite : si dependantes, tester comme imbriquees, sinontester comme simple.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Couverture du flot de controle (2/2)

Test des boucles : les criteres vus ne sont pas suffisants !

Une seule boucle (simple), tester les executions :

aucune iterationune seule iterationdeux iterationsun nombre typique d’iterationsn − 1, n, n + 1 iterations avec n le nombre d’iterations.

Exemple : (15, 0), (15, 1), (15, 2), (15, 3), (6, 4), (15, 5)

Boucles imbriquees : commencer par fixer le nombre d’iterations dela boucle la plus exterieure et tester les boucles interieures commeboucle simple.

Boucles en suite : si dependantes, tester comme imbriquees, sinontester comme simple.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Couverture du flot de controle (2/2)

Test des boucles : les criteres vus ne sont pas suffisants !

Une seule boucle (simple), tester les executions :

aucune iterationune seule iterationdeux iterationsun nombre typique d’iterationsn − 1, n, n + 1 iterations avec n le nombre d’iterations.

Exemple : (15, 0), (15, 1), (15, 2), (15, 3), (6, 4), (15, 5)

Boucles imbriquees : commencer par fixer le nombre d’iterations dela boucle la plus exterieure et tester les boucles interieures commeboucle simple.

Boucles en suite : si dependantes, tester comme imbriquees, sinontester comme simple.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Couverture du flot de controle (2/2)

Test des boucles : les criteres vus ne sont pas suffisants !

Une seule boucle (simple), tester les executions :

aucune iterationune seule iterationdeux iterationsun nombre typique d’iterationsn − 1, n, n + 1 iterations avec n le nombre d’iterations.

Exemple : (15, 0), (15, 1), (15, 2), (15, 3), (6, 4), (15, 5)

Boucles imbriquees : commencer par fixer le nombre d’iterations dela boucle la plus exterieure et tester les boucles interieures commeboucle simple.

Boucles en suite : si dependantes, tester comme imbriquees, sinontester comme simple.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Couverture du flot de controle (2/2)

Test des boucles : les criteres vus ne sont pas suffisants !

Une seule boucle (simple), tester les executions :

aucune iterationune seule iterationdeux iterationsun nombre typique d’iterationsn − 1, n, n + 1 iterations avec n le nombre d’iterations.

Exemple : (15, 0), (15, 1), (15, 2), (15, 3), (6, 4), (15, 5)

Boucles imbriquees : commencer par fixer le nombre d’iterations dela boucle la plus exterieure et tester les boucles interieures commeboucle simple.

Boucles en suite : si dependantes, tester comme imbriquees, sinontester comme simple.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Couverture du flot de controle (2/2)

Test des boucles : les criteres vus ne sont pas suffisants !

Une seule boucle (simple), tester les executions :

aucune iterationune seule iterationdeux iterationsun nombre typique d’iterationsn − 1, n, n + 1 iterations avec n le nombre d’iterations.

Exemple : (15, 0), (15, 1), (15, 2), (15, 3), (6, 4), (15, 5)

Boucles imbriquees : commencer par fixer le nombre d’iterations dela boucle la plus exterieure et tester les boucles interieures commeboucle simple.

Boucles en suite : si dependantes, tester comme imbriquees, sinontester comme simple.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Couverture du flot de controle (2/2)

Test des boucles : les criteres vus ne sont pas suffisants !

Une seule boucle (simple), tester les executions :

aucune iterationune seule iterationdeux iterationsun nombre typique d’iterationsn − 1, n, n + 1 iterations avec n le nombre d’iterations.

Exemple : (15, 0), (15, 1), (15, 2), (15, 3), (6, 4), (15, 5)

Boucles imbriquees : commencer par fixer le nombre d’iterations dela boucle la plus exterieure et tester les boucles interieures commeboucle simple.

Boucles en suite : si dependantes, tester comme imbriquees, sinontester comme simple.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Couverture du flot de controle (2/2)

Test des boucles : les criteres vus ne sont pas suffisants !

Une seule boucle (simple), tester les executions :

aucune iterationune seule iterationdeux iterationsun nombre typique d’iterationsn − 1, n, n + 1 iterations avec n le nombre d’iterations.

Exemple : (15, 0), (15, 1), (15, 2), (15, 3), (6, 4), (15, 5)

Boucles imbriquees : commencer par fixer le nombre d’iterations dela boucle la plus exterieure et tester les boucles interieures commeboucle simple.

Boucles en suite : si dependantes, tester comme imbriquees, sinontester comme simple.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Couverture du flot de donnees

Pour chaque definition (def ) de variable (affectation), trouver un cheminvers son utilisation dans un calcul (c − use) ou dans un predicat(p − use).

Une paire definition—utilisation s’appelle paire DU (P ou C).

Criteres :

all − defs : couvrir toutes les definitions.

all − uses : couvrir au moins un chemin pour chaque paire DU avecvariantes all − c − uses ou all − p − uses

all − du − uses : couvrir tous les chemins d’une paire DU.

Exemple : fonction maxsum

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Couverture du flot de donnees

Pour chaque definition (def ) de variable (affectation), trouver un cheminvers son utilisation dans un calcul (c − use) ou dans un predicat(p − use).

Une paire definition—utilisation s’appelle paire DU (P ou C).

Criteres :

all − defs : couvrir toutes les definitions.

all − uses : couvrir au moins un chemin pour chaque paire DU avecvariantes all − c − uses ou all − p − uses

all − du − uses : couvrir tous les chemins d’une paire DU.

Exemple : fonction maxsum

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Couverture du flot de donnees

Pour chaque definition (def ) de variable (affectation), trouver un cheminvers son utilisation dans un calcul (c − use) ou dans un predicat(p − use).

Une paire definition—utilisation s’appelle paire DU (P ou C).

Criteres :

all − defs : couvrir toutes les definitions.

all − uses : couvrir au moins un chemin pour chaque paire DU avecvariantes all − c − uses ou all − p − uses

all − du − uses : couvrir tous les chemins d’une paire DU.

Exemple : fonction maxsum

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Test en “boıte noire”

Suppose que la structure interne du systeme n’est pas connue.

Base sur la specification de l’interface du systeme et de sesfonctionnalites, il s’assure de leur respect par l’implementation dusysteme.

Approprie pour le test du systeme mais egalement pour le testunitaire independant.

Methodes de test :

Partition des entrees.Analyse des valeurs limite.Analyse du comportement....

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Partition des entrees

Idee : diviser le domaine des entrees en un nombre fini de classes tel quele programme reagit pareil pour toutes les valeurs de la classe, donc ilfaut tester qu’une valeur par classe !

Strategie de test :1 Identifier les classes d’equivalence des entrees :

Sur la base des conditions sur les entrees/sortes.En prenant des classes d’entrees valides et invalides.

2 Definir un ou quelques TC pour chaque classe.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Exemple : Valeur absolue

Tester une fonction qui calcule la valeur absolue d’un entier.

Classes d’equivalence pour les entrees :Condition Classe valide Classe invalidenb. entrees 1 0, > 1type entree int stringvaleurs valides < 0, >= 0

Donnees de test :-10, 100, ”XYZ”, rien, 10 20

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Exemple : Calcul somme max

Tester une fonction qui calcule la somme des premiers valueentiers tantque cette somme reste plus petite que maxint. Sinon, une erreur estaffichee. Si value est negatif, la valeur absolue est consideree.

Classes d’equivalence pour les entrees :Condition Classe valide Classe invalidenb. entrees 2 < 2, > 2type entree int int string int, int stringvaleurs valides value < 0, ≥ 0valeurs valides maxint > somme , ≤ somme

Donnees de test :maxint value return maxint value return100 10 55 10 error100 -10 55 10 20 30 error10 10 error ”XYZ” 10 error10 -10 error 100 9.5 error

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Analyse des valeurs limite

Idee : les erreurs se nichent dans les cas limite, donc tester les valeurs auxlimites des domaines ou des classes d’equivalence.

Strategie de test :

Tester les bornes des classes d’equivalence.

Tester les bornes du domaine des entrees.

Tester les entrees qui produisent les valeurs aux bornes pour lessorties.

Exemples...

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Boıte blancheBoıte noireHybrides

Comment combiner les strategies ?

Recettes :

Jamais commencer par le test en BB !

Commencer avec le test en BN.

Regarder la couverture du graphe (les differentes classes).

Utiliser des outils de gestion de test et de calcul de la couverture.

Ajouter des DT en utilisant le test en BB pour couvrir tout le code.

Mihaela Sighireanu Methodes de test

DefinitionTypes

FormalisationMethodes de test

Outils

Automatisation du test

Outils :

Generateur de test : aleatoire ou guide par des criteres (voir la suite).

Analyseur de couverture : calcule le pourcentage de code couvertdurant le test.

“Record & playback” (Executif de test) : enregistre les actions del’utilisateur pour pouvoir les rejouer a la demande ; utile pour le testdes IHM et le test de regression.

Gestionnaire de test : maintient des suites de test, leurs resultat etproduit des rapports.

Exemples : TGV, XUnit, gcov, Coverlipse, etc.

Mihaela Sighireanu Methodes de test