kassis bassem. plan de travail introductioncatégories de testdemo
TRANSCRIPT
Kassis Bassem
Tests unitaires et fonctionnels
Plan de travail
Introduction
Catégories de test
Demo
Problématique
• La réalisation d’un logiciel demande beaucoup d’efforts et d’attention
• Le nombre de concepts / d’objets à manipuler peut vite devenir problématique
• Le besoin du client est devenu plus complexe et difficile à comprendre
Mais comment assurer la cohérence et la fiabilité d’un logiciel ?
TEST
Les tests répondent aux questions suivantes
Est-ce que ça marche comme
prévu?
Quels sont les points à
améliorer?
Est-ce que c’est conforme aux spécifications?
Est-ce que ça correspond aux
attentes du client?
Pourquoi fait-on si peu de tests?
Pas le temps
Pas un besoin « métier »
Outils pas au point
Seuls les test d’IHM sont plus délicats
Plus les corrections arrivent tardPlus c’est cher
No comment…
Pyramide de Mike Cohn
IHM
Acceptation
Intégration
Unitaire
Approche traditionelle Approche « agile »
Coût d’entrée faible.Coût de maintenance très élevé.
Coût d’entrée plus élevé.Coût de maintenance assez faible.
Catégories de test
Test en boite noire
Test en boite
blanche
• Les tests en boîte noire s’exécutent en ignorant les mécanismes internes du produit
• Les tests en boîte blanche sont des tests qui prennent les mécanismes internes en considération
• Dans les tests en boîte noire, le testeur n’accède pas au code source
Exemple
• Monkey est un outil qui permet de tester une application Android. Plus précisément, il simule des interactions "aveugles" avec l'application à vérifier.
• Monkey se connecte à l'instance virtuelle et effectue diverses actions, comme le ferait un utilisateur... un utilisateur qui ne sait pas vraiment ce qu'il veut car ses manipulations n'ont aucun but précis
adb shell monkey -p com.example.android.app -v 500
JUnit est une bibliothèque de test unitaire pour le langage de programmation Java. Créé par Kent Beck et Erich Gamma
Un test unitaire, au sens Agile, est un court programme, écrit et maintenu par les développeurs, servant à vérifier de manière très étroite le bon fonctionnement d'une partie restreinte du programme principal.
Son résultat est binaire: il "passe" si le comportement du programme est celui attendu et "échoue" dans le cas contraire
Example