Virtuellement, tous les tests unitaires sont des tests de régression, mais tous les tests de régression ne sont pas des tests unitaires.
Les tests unitaires font référence à la taille du système testé. Les tests unitaires couvrent les plus petites parties possibles du code, comme les fonctions et les méthodes individuelles. En revanche, les tests de composants, les tests d'intégration et les tests de bout en bout couvrent des systèmes plus importants.
Les tests de régression font référence à l'objectif du test. Les tests de régression testent si une partie du code se comporte comme lors du dernier test. Si le système est censé être fonctionnellement équivalent, mais que le résultat d'un test de régression a changé, cela signifie que quelque chose ne fonctionne pas comme prévu.
Tous les tests automatisés ne sont pas des tests de régression, bien que certaines personnes définissent les tests automatisés comme étant uniquement des tests de régression. Certaines autres formes de contrôle de la qualité comprennent : les tests de qualité / tests ad hoc, où une personne peut vérifier si la sortie d'un système correspond à ce qui est attendu ; ou la surveillance/alerte, où un système émet certaines métriques pendant son fonctionnement (par exemple : utilisation de la mémoire, temps de fonctionnement). Si ces métriques atteignent un certain seuil, alors les ingénieurs chercheront à savoir pourquoi.
.