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