Pour comprendre les différents tests, il faut considérer d'une application est un assemblage de modules. * Tests de composants ou tests unitaires : tester chaque module indépendamment des autres. * Tests d'intégration : tester que les modules fonctionnent bien ensemble. * Tests système et tests de validation : tester le logiciel dans un environnement le plus proche possible de la réalité, * Tests d'acceptation, tests alpha et bêta : tester le logiciel en production avec un public averti de la potentielle instabilité du logiciel.