Définitions, Typologies des tests
Pourquoi tester ?
Qu'est qu'un logiciel ?
Quand un logiciel est-il terminé ?
Qu'est ce qu'un logiciel de qualité ?
Les tests sont nécessaires parce que nous faisons tous des erreurs.
Qu'est ce qu'un test ?
JUNIT Lifecycle
Les principes du testeur
un test montre la présence de défauts, pas son absence
Oui mais il existe la couverture de code ?
Principe 1
Tester montre uniquement les bugs qui sont présents
Principe 2
Faut-il tout tester ?
Principe 3
Tester tôt
Principe 4:
Identifier les zones à risques
Principe 5:
Le paradoxe du pesticide
Principe 6:
Tester est une activité contextuelle
Principe 7:
Tester ne garantit pas la satisfaction utilisateur (l'absence d'erreurs)
Les types de défauts logiciels
Fort heureusement, les bugs n'ont pas tous la même criticité.
- les erreurs de spécification
- les mauvais choix de conception et d'implémentation de systèmes
- les erreurs dans l'utilisation d'un système
- les conditions environnementales
- les dommages intentionnels, les attaques
- les conséquences potentielles d'erreures précédentes, de dommages intentionnels
Lexique
- erreur : l'erreur est d'origine humaine et à l'origine des défauts
- défaut : erreur de conception logicielle, imperfections du logiciel
- défaillance : aussi appelé bug ou anomalie
Les niveaux de tests
Un logiciel peut être vu comme ceci
Ces différents perspectives d’une application illustrent la difficulté de choisir l’abstraction idéale pour écrire le test.
Les niveaux de tests
Les tests unitaires
Unit tests
Caractéristiques d'un test unitaire
- Vérifie une petite portion du code
- Le test s'exécute rapidement
- Le test est exécuté de manière isolée
Les tests d'intégration
Integration tests
Les tests systèmes
System tests
Les tests d'acceptation
ou recette
Acceptation tests
Les types de tests
Les tests fonctionnels
Functional tests
Les tests non fonctionnels
Les tests structurels
Structural tests
Les tests pour détecter les changements
Change related tests