Table des matières:
Définition - Que signifie l'analyse du code source?
L'analyse du code source est le test automatisé du code source d'un programme dans le but de trouver des erreurs et de les corriger avant la vente ou la distribution de l'application.
L'analyse de code source est synonyme d'analyse de code statique, où le code source est analysé simplement comme du code et le programme n'est pas en cours d'exécution. Cela supprime le besoin de créer et d'utiliser des cas de test, et peut se séparer des bogues spécifiques aux fonctionnalités, comme les boutons ayant une couleur différente de celle indiquée dans les spécifications. Il se concentre sur la recherche de défauts dans le programme qui peuvent nuire à son bon fonctionnement, comme des lignes de code provoquant des plantages.
Techopedia explique l'analyse du code source
L'analyse du code source est essentiellement un débogage de code automatisé. Le but est de trouver des bugs et des défauts qui peuvent ne pas être évidents pour un programmeur. Il est destiné à trouver des défauts tels que des débordements de tampon possibles ou une utilisation désordonnée des pointeurs et une mauvaise utilisation des fonctions de récupération de place, qui peuvent toutes être exploitables par un pirate.
Les analyseurs de code fonctionnent à l'aide de règles qui lui indiquent ce qu'il faut rechercher. Avec trop peu de précision, un analyseur peut générer trop de faux positifs et inonder l'utilisateur avec des avertissements inutiles, tandis qu'une trop grande précision peut prendre trop de temps à terminer; par conséquent, doit être un équilibre.
Il existe deux types d'analyseurs:
- Interprocédural - Détecte les modèles d'une fonction à la suivante, et ces modèles sont corrélés afin que l'analyseur puisse créer un modèle et simuler des chemins d'exécution.
- Intraprocédural - Se concentre sur la correspondance des modèles et dépend du type de modèles recherché par l'utilisateur.
Les analyseurs interprocéduraux sont plus modernes et plus complexes. Coverity, Fortify et le propre outil centralisé PREfix de Microsoft en sont de bons exemples.