En général, tester c’est comparer les résultats réels obtenus aux résultats attendus ayant comme objectif principal de contrôler que le système respecte les exigences définies par le client.
Les tests doivent donc satisfaire le besoin d'informations sur les différences constatées entre l'objet et les exigences définies. Mais en plus de cela, il est nécessaire de trouver les causes des problèmes et les identifier profondément et aider à les résoudre..
Ainsi, sur la base de l'analyse, les causes seront analysées, le problème sera résolu de manière consistante et des risques futurs peuvent être prévenus. En résumé, la qualité du système sera améliorée.
Un principe de qualité, également soutenu par la méthode Agile, dit qu'il vaut mieux prévenir que résoudre. Une erreur (bug) de grande sévérité résolue à un stade précoce tel que lors de la construction, coûtera moins qu'un problème mineur qui sera detecté lorsque l’application est dejà en production.
Pendant les tests manuels, comme son nom l’indique le testeur exécute manuellement le test en parcourant les cas de tests définis.
Dans les de l'automatisation des tests, il utilise un logiciel spécial séparé ou bien programme qu’il aura lui-même conçu (l'outil de test)
pour contrôler l'exécution des tests tout en comparant les résultats réels aux résultats attendus. Les tests ainsi réalisés, pourront être exécutés de manière répétitive, à tout moment. Ce qui présente plusieurs avantages: