|  
    
L'exécution et la compilation de code vous permettent d'effectuer plusieurs types de tests, en vous concentrant principalement sur les aspects fonctionnels. aspects de votre code, mais abordant également des aspects de performance et intégration essai. Voici une répartition :
  
 * Tests unitaires : Il s'agit du type le plus courant effectué lors de la compilation et de l'exécution. Vous testez des composants individuels (fonctions, méthodes, classes) de manière isolée pour vérifier qu'ils se comportent comme prévu compte tenu d'entrées spécifiques. Vous écrivez généralement des assertions dans votre code de test (en utilisant des frameworks comme JUnit, pytest ou autres) pour vérifier les sorties.  
  
 * Tests d'intégration : Bien que cela soit souvent effectué séparément, l'exécution de code compilé peut faciliter les tests d'intégration si vous utilisez des systèmes plus petits. Vous testez l'interaction entre différents modules ou composants *après* qu'ils aient été testés unitairement indépendamment. Vous vérifiez que les connexions et le flux de données entre les pièces fonctionnent correctement.  
  
 * Tests de régression : Après avoir apporté des modifications à votre code (corrections de bogues, nouvelles fonctionnalités), la compilation et l'exécution du code (souvent avec une suite existante de tests unitaires et d'intégration) permettent d'identifier si vos modifications ont introduit des problèmes inattendus dans les parties précédemment fonctionnelles.  
  
 * Tests de fumée : Il s'agit d'un test de très haut niveau visant à garantir que les fonctionnalités de base du code compilé fonctionnent. Vous recherchez des échecs catastrophiques :le programme démarre-t-il ? Produit-il des résultats manifestement erronés ? Il s'agit d'un contrôle d'intégrité avant de passer à des tests plus rigoureux.  
  
 * Tests du système (limité) : Vous pouvez effectuer des tests de base du système via la compilation et l'exécution. Par exemple, vous pouvez vérifier que le programme gère correctement les entrées et sorties attendues dans l’ensemble du système. Cependant, les tests complets du système impliquent généralement des scénarios et des environnements plus étendus.  
  
 * Tests de performances (limités) : Vous pouvez obtenir *quelques* informations rudimentaires sur les performances en chronométrant l'exécution de votre code ou en surveillant l'utilisation des ressources (CPU, mémoire). Cependant, les outils et méthodologies de test de performances dédiés fournissent des résultats beaucoup plus précis et détaillés.  
  
 Ce que vous n'obtiendrez PAS directement de la compilation et de l'exécution :  
  
 * Tests d'utilisabilité : Cela se concentre sur la facilité d’utilisation du programme du point de vue de l’utilisateur. Vous n'obtiendrez pas cela directement en exécutant simplement du code ; vous avez besoin des commentaires des utilisateurs.  
  
 * Tests de sécurité : L'exécution du code à elle seule ne garantit pas la sécurité. Des tests de sécurité dédiés sont essentiels pour détecter les vulnérabilités.  
  
 * Tests de contrainte/Tests de charge : Ces tests poussent le système dans ses retranchements pour trouver des points de rupture. Vous auriez besoin d'outils spécialement conçus pour simuler des charges élevées.  
  
 * Analyse statique : L'analyse statique examine votre code *sans* l'exécuter, identifiant les problèmes potentiels (comme les odeurs de code, les bogues) uniquement grâce à l'analyse du code. La compilation fait partie du processus de développement mais elle ne fournit pas intrinsèquement une analyse statique approfondie.  
  
  
 En bref, la compilation et l'exécution de votre code sont essentielles pour un large éventail d'activités de test, mais elles ne constituent qu'une partie d'une stratégie de test globale. L'utiliser efficacement implique d'écrire de bons tests unitaires et d'intégration et éventuellement quelques contrôles de performances simples. D'autres types de tests nécessitent des outils et des approches dédiés.
 
 |