Fonctionnement
Le Code Quality Scanner analyse vos fichiers source afin de détecter les problèmes concrets qui nuisent à la qualité du code à long terme. Il passe chaque fichier en revue comme le ferait un ingénieur senior, repère les défauts susceptibles d’échapper aux revues manuelles et propose des améliorations pratiques.Principales fonctionnalités
- Revue de code automatisée : analyse le code en profondeur afin de détecter les problèmes de qualité courants qui nuisent à sa maintenabilité
- Analyse adaptée au langage : comprend le contexte et les conventions propres aux différents langages de programmation
- Détection des frameworks : reconnaît les frameworks courants et applique les bonnes pratiques correspondantes
- Classification par sévérité : hiérarchise les problèmes selon leur impact (élevé, moyen ou faible)
- Mappage CWE : associe les problèmes aux catégories Common Weakness Enumeration (CWE)
Ce qu’il peut trouver
Le Code Quality Scanner détecte un large éventail de problèmes de qualité du code. Tous les résultats sont associés aux afin d’assurer une classification cohérente.Problèmes de grammaire et de clarté
Problèmes de grammaire et de clarté
- Fautes de frappe et d’orthographe dans les commentaires de code, les noms de variables et les chaînes de caractères (CWE-1078)
- Commentaires inexacts ou trompeurs qui contredisent le comportement réel du code ou peuvent être obsolètes (CWE-1116)
example.js
Propreté du code
Propreté du code
- Blocs de code vides sans utilité (CWE-1071)
- Variables et imports inutilisés, et code mort qui encombrent le code (CWE-563, CWE-1041)
- Blocs d’exception vides qui ignorent silencieusement les erreurs (CWE-1069, CWE-390)
- Code inaccessible qui ne peut jamais s’exécuter (CWE-561)
example.py
Duplication de code et réutilisabilité
Duplication de code et réutilisabilité
- Code dupliqué qui devrait être refactorisé dans des fonctions partagées (CWE-1041)
- Clés ou littéraux dupliqués dans les objets, et nombres magiques qui devraient devenir des constantes (CWE-1078)
- Code non conforme au principe — logique répétée qui alourdit la maintenance
Problèmes de performance
Problèmes de performance
- Concaténation de chaînes dans les boucles, qui dégrade les performances (CWE-1046)
- Opérations inefficaces et consommation inutile de ressources (CWE-1050)
- Goulots d’étranglement de performance dans des chemins de code fréquemment exécutés
Example.java
Design & Architecture
Design & Architecture
- Fonctions avec trop de paramètres (>5 paramètres) indiquant une mauvaise conception (CWE-1064)
- Signatures de fonctions trop complexes qui sont difficiles à utiliser correctement
- Dépendances circulaires entre les modules (CWE-1047)
- Non-respect des
Complexité du code et lisibilité
Complexité du code et lisibilité
- Expressions complexes sur une seule ligne qui devraient être décomposées pour gagner en clarté (CWE-1120)
- Logique profondément imbriquée comportant trop de branches et difficile à comprendre
- Fonctions utilitaires trop génériques qui masquent l’intention
- Non-respect du
Dénomination et conventions
Dénomination et conventions
- Conventions de nommage incohérentes qui rendent le code plus difficile à suivre (CWE-1099)
- Noms de variables génériques et peu explicites tels que
obj,xoudata - Conventions de nommage mélangées, par exemple camelCase et snake_case dans le même code
Logique et exactitude
Logique et exactitude
- Erreurs logiques qui provoquent un comportement incorrect (CWE-670)
- Traitement incorrect des données qui produit de mauvais résultats
- Code qui ne fonctionnera pas comme prévu en raison d’erreurs d’implémentation
Travail incomplet
Travail incomplet
- Commentaires TODO et code provisoire (CWE-1071)
- Fonctionnalités partiellement implémentées susceptibles de poser problème
- Implémentations incomplètes qui nécessitent une intervention
Fonctionnement
1. Analyse des fichiers
Le scanner traite séparément chaque fichier de votre code et analyse l’intégralité de sa source en tenant compte de sa structure, de son langage et des frameworks détectés.2. Revue assistée par l’IA
Le scanner utilise des modèles de langage avancés, spécialement entraînés à la revue de code, pour examiner votre code selon les principes reconnus de l’ingénierie logicielle et les bonnes pratiques. L’IA comprend :- Les idiomes et conventions propres à chaque langage
- Les patterns et bonnes pratiques des frameworks
- Indicateurs de complexité et de maintenabilité du code
- Principes de conception logicielle standards de l’industrie
3. Identification des problèmes
Lorsqu’un problème potentiel est détecté, le scanner :- Identifie précisément les lignes de code impliquées
- Classe le type de problème selon les catégories CWE
- Attribue un niveau de sévérité approprié
- Génère une explication claire du problème et de son impact
4. Détection avec un niveau de confiance élevé
- Le scanner ne signale que les problèmes pour lesquels son niveau de confiance atteint au moins 90 %. Ce seuil élevé garantit des résultats précis et exploitables plutôt que spéculatifs.
Suppression des faux positifs
Le Code Quality Scanner intègre des mécanismes avancés de réduction des faux positifs afin de ne présenter que des résultats pertinents et exploitables :Filtres intégrés
Exclusion des problèmes de sécurité : le scanner exclut explicitement les vulnérabilités de sécurité (injection SQL, XSS, problèmes d’authentification, etc.), qui sont traitées par les scanners de sécurité dédiés de Corgea. Cette séparation évite tout chevauchement entre les résultats de qualité et de sécurité.
Filtrage des préférences de style : les préférences mineures, telles que le placement des accolades, l’indentation et les espaces, ne sont pas signalées. Le scanner se concentre sur les véritables problèmes de qualité et non sur les choix de mise en forme.
Compréhension contextuelle
Le scanner comprend le contexte du code pour éviter les faux positifs :- Reconnaît lorsque des blocs « vides » sont intentionnels (par exemple, des implémentations provisoires)
- Comprend les schémas spécifiques à chaque framework qui pourraient autrement sembler problématiques
- Prend en compte les idiomes de langage acceptables dans certains langages de programmation
Remédiation automatisée
Lorsque des problèmes de qualité du code sont détectés, les fonctionnalités de remédiation automatisée de Corgea vous aident à les corriger rapidement et de manière cohérente :Ce qui est corrigé
Le système automatisé de remédiation peut résoudre de nombreux problèmes courants de qualité de code, notamment :- Correctifs simples
- Améliorations structurelles
- Bonnes pratiques
- Suppression des variables inutilisées et des importations
- Conversion des nombres magiques en constantes nommées
- Correction des fautes de frappe dans les noms de variables et les commentaires
Comment fonctionne la remédiation
- Contexte du problème : le système analyse tout le contexte du problème, notamment le rôle du code concerné dans l’ensemble du projet
- Correctifs sûrs : les correctifs automatisés sont conçus pour préserver les fonctionnalités existantes
- Respect du style du code : les correctifs respectent le style et les conventions en place
- Examen avant application : vous gardez le contrôle total des correctifs à appliquer
Distinct du scan des vulnérabilités
Différences clés
Pourquoi les deux sont importants
- La sécurité protège votre application contre les attaquants
- La qualité du code préserve sa maintenabilité, ses performances et sa fiabilité
Niveaux de sévérité
- Sévérité élevée
- Sévérité moyenne
- Sévérité faible
Problèmes qui provoquent des plantages, de graves dégradations des performances ou des bugs critiques :
- Blocs
catchvides qui masquent les erreurs - Boucles infinies
- Une logique qui échoue toujours
- Goulots d’étranglement critiques
Bien démarrer
Le Code Quality Scanner s’intègre parfaitement à votre flux de développement :1
Connecter votre dépôt
Associez votre dépôt de code à Corgea avec GitHub, GitLab, Azure DevOps ou Bitbucket
2
Analyse automatique
Le scanner analyse automatiquement vos fichiers
3
Examiner les résultats
Consultez les problèmes détectés, leurs explications et leur niveau de sévérité dans le tableau de bord du projet
4
Appliquer des correctifs
Utilisez la remédiation automatisée ou corrigez les problèmes manuellement
5
Suivre la progression
Suivez l’amélioration de la qualité du code dans le temps
Documentation associée
SAST natif de l’IA
Découvrez les capacités de détection des vulnérabilités de sécurité de Corgea
Correctifs automatisés
Découvrez le fonctionnement de la remédiation automatisée pour tous les types de scan
Gestion des faux positifs
Gérez et écartez efficacement les faux positifs
Gestion des problèmes
Suivez et gérez tous les problèmes de vos projets
