Tests unitaires Flashcards
Tests unitaires
- Vient du fait qu’une partie du code est appelé Unit
- Ce type de test va vérifier un module du code
et qu’il fonctionne de manière indépendante
du reste - Respecte aussi des spécifications
fonctionnelles - Ils peuvent être manuels ou automatisés par
des logiciels - Chaque programmeur doit obligatoirement
faire ses tests unitaires. - Donne une garantie de qualité lors du
développement - Ils permettent de préparer les tests
d’intégration et de non-régression. - Indispensable pour l’intégration continue et à
l’agilité.
Pour réaliser des tests unitaires il nous
faut :
–des jeux de données (fictives, de
production, ancien jeux de tests)
–des ressources (documents de
spécifications, scénarios, fiches de
tests, tests précédents)
–Une démarche
Les différentes démarches :
*Analyse dynamique structurelle
*Analyse dynamique fonctionnelle
*Analyse statique
*Boite noire
*Boite blanche
- Analyse Dynamique Structurelle
- Consiste à vérifier la structure du code ainsi que les
variables - On parcours tous les nœuds, les arcs, et chemins du
programme - On peut vérifier ainsi si un test If Then Else n’est pas utilisé
- Analyse Dynamique Fonctionnelle
- Consiste à vérifier le service rendu (la fonction) mais pas
comment il est rendu - On valide les règles de gestion
- La difficulté réside au choix des données de tests pour
obtenir les résultats attendus
- Analyse Statique
- Cette notion d’analyse permet d’obtenir des informations sur le
comportement du programme sans réellement l’exécuter - On utilise des méthodes comme les nombres cyclomatiques, la
mesure de Halstead …
- Boite Noire
- On vérifie que les sorties obtenues sont celles prévues pour les
données entrées - Le fonctionnement interne n’est pas accessible
- Souvent utilisé pour les tests de non régression, de robustesse et de
charge
- Boite Blanche
- On valide le code et on vérifie qu’il n’y a pas de problème
- On ne teste pas le fonctionnel mais tous les chemins possibles du
programme
Couverture de code
! La couverture de code est une métrique qui peut vous
aider à comprendre quelle quantité de votre code source
est testée.
! C’est une métrique très utile qui peut vous aider à évaluer
la qualité de votre suite de tests et par conséquence la
qualité de votre code.
! Les outils de couverture de code utiliseront un ou
plusieurs critères pour déterminer comment votre code a
été testé ou pas, lors de l’exécution de votre suite de tests.
– JACOCO
– JCov
– OpenClover
– Cobertura
– Serenity
Comment la couverture de
code est-elle calculée ?
! Ces métriques sont généralement représentées par le nombre
d’éléments réellement testés, les éléments trouvés dans votre
code et un pourcentage de couverture (éléments testés /
éléments trouvés)
Les mesures courantes des rapports de couverture incluent :
– Couverture de fonction :
combien de fonctions définies ont été
appelées.
– Couverture des instructions :
combien d’instructions du
programme ont été exécutées.
– Couverture des branches :
combien de branches des structures de
contrôle (instructions if par exemple) ont été exécutées.
– Couverture des conditions :
combien de sous-expressions
booléennes ont été testées pour une valeur vraie et une valeur
fausse.
– Couverture des lignes :
combien de lignes de code source ont été
testées.
Etape préliminaire
Transformer le programme en un graphe de flux de contrôle:
Couverture des
instructions
! chaque instruction est
exécutée au moins une
fois
Couverture des branches
chaque branche (vrai/faux)
d’une décision (test ou
condition de boucle) est
parcourue au moins une
fois
Couverture des conditions
! Dans le cas où une décision
comprend plusieurs
conditions, une condition
peut en cacher une autre
! S’assurer que chaque
condition est évaluée au
moins une fois
! S’assurer que chaque
combinaison possible de
conditions est évaluée au
moins une fois