Audit du programme
Un bilan de qualité de votre programme, sans l’exécuter : une note sur 100, une mention de A à E, et des recommandations classées par priorité pour savoir quoi améliorer d’abord.
L’audit du programme est un nouvel outil de CoddyRun. Il arrive dans la prochaine version, CoddyRun v4.3, et n’est pas encore présent dans la version actuelle. Cette page vous le présente à l’avance. Pour être prévenu de sa sortie, suivez les versions et les annonces.
Trouve les erreurs et les avertissements, ligne par ligne, sans exécuter.
Vérifie que le programme donne les bons résultats, en l’exécutant. En savoir plus
Évalue la qualité du code : structure, lisibilité, documentation, robustesse.
- Ouvrez votre programme dans l’éditeur. Il n’a pas besoin d’être terminé, ni même de fonctionner.
- Ouvrez le menu Outils, puis Audit du programme. Ou bien : palette de commandes Ctrl + K, puis tapez
audit(ouqualité,note). - Le rapport s’affiche dans la console, et la barre d’état résume le résultat :
Audit : 89/100 · B. - Cliquez sur un numéro de ligne du rapport pour aller directement à la ligne concernée dans l’éditeur.
L’audit ne lance pas le programme : pas de saisie, pas de fenêtre, et un programme avec une boucle sans fin s’audite sans risque. Il n’est pas disponible pendant qu’un programme s’exécute.
| Partie du rapport | Ce qu’elle montre |
|---|---|
| Note et mention | La note globale sur 100, la mention de A à E, une appréciation en une phrase et le nombre de constats par gravité. |
| Notes par catégorie | Une note sur 100 pour chacune des cinq catégories, avec une barre et le nombre de constats. |
| Chiffres clés | Lignes de code, taux de commentaires, instructions, définitions, variables, complexité et imbrication les plus fortes. |
| Mesures par définition | Pour le programme principal et chaque fonction, procédure ou processus : lignes, paramètres, complexité, imbrication. Un clic sur le nom mène à sa ligne. |
| Constats | Du plus grave au moins grave : un titre, la ligne, le détail chiffré et une recommandation (→). |
| Notions utilisées | Les notions du langage présentes dans le programme : conditions, boucles, fonctions, tableaux, dictionnaires, récursivité… |
si, boucle, cas, et ou ou en ajoute un. Plus elle est haute, plus le code est difficile à tester. L’imbrication compte les blocs placés les uns dans les autres : un si dans une boucle dans un autre si, c’est 3 niveaux.Chaque catégorie part de 100 points ; chaque constat en retire selon sa gravité. La note globale est la moyenne des cinq catégories, pondérée par leur poids.
| Catégorie | Poids | Ce qui est évalué |
|---|---|---|
| Conformité | 20 % | Les erreurs, avertissements et conseils de l’analyse syntaxique. |
| Structure et complexité | 25 % | Longueur des définitions, complexité, imbrication, découpage, code dupliqué, variables globales. |
| Lisibilité | 20 % | Longueur des lignes, noms, valeurs écrites en dur, indentation. |
| Documentation | 15 % | Commentaires, en-tête du programme, définitions décrites. |
| Robustesse | 20 % | Saisies numériques, divisions, erreurs ignorées. |
Chaque constat a une gravité, une ligne quand c’est possible, et une recommandation. Plusieurs constats ont deux niveaux : mineur au premier seuil, majeur quand il est largement dépassé.
| Erreurs bloquantes | L’analyse syntaxique trouve au moins une erreur. | Critique |
| Avertissements de l’analyse | Boucle sans fin, code inaccessible, fonction sans valeur renvoyée… | Majeur |
| Conseils de l’analyse | Variable inutilisée ou non initialisée, définition jamais appelée… | Mineur |
| Définition longue | Une fonction, procédure ou processus de plus de 40 lignes de code (majeur au-delà de 80). | Mineur |
| Complexité élevée | Plus de 10 chemins d’exécution possibles dans une même partie du programme (majeur au-delà de 20). | Mineur |
| Imbrication profonde | Plus de 4 niveaux de blocs les uns dans les autres (majeur au-delà de 6). | Mineur |
| Paramètres nombreux | Une définition reçoit plus de 5 paramètres. | Mineur |
| Programme non découpé | Plus de 60 instructions sans aucune fonction ni procédure. | Majeur |
| Code dupliqué | Au moins 4 lignes identiques répétées à un autre endroit. | Mineur |
| Variables globales modifiées | Une fonction ou une procédure modifie une variable du programme principal. | Mineur |
| Lignes trop longues | Des lignes de plus de 120 caractères. | Info |
| Noms peu explicites | Des noms d’une seule lettre (sauf i, j, k, n, x, y et z, d’usage courant). | Info |
| Valeurs littérales répétées | Un même nombre écrit au moins 4 fois (hors chiffres seuls, 10, 100 et déclarations). | Info |
| Indentation | Au moins une ligne sur cinq n’est pas décalée dans le bloc qui la contient. | Mineur |
| Aucun commentaire | Un programme de 30 lignes de code ou plus, sans un seul commentaire. | Majeur |
| Commentaires rares | Moins de 5 % de lignes commentées. | Mineur |
| En-tête absent | Un programme de 15 lignes ou plus qui ne commence pas par un commentaire de présentation. | Info |
| Définitions non documentées | Une définition sans commentaire juste avant, sur ou juste après sa ligne d’en-tête. | Mineur |
| Saisie numérique non protégée | Une demande dans une variable de type nombre, hors d’un bloc essayer / attraper. | Majeur |
| Diviseur non contrôlé | Une division ou un mod par une variable qui n’est testée nulle part avant. | Mineur |
| Erreur interceptée puis ignorée | Un bloc attraper vide : l’erreur disparaît sans aucun traitement. | Majeur |
| Récursivité | Une définition s’appelle elle-même : simple information, à vérifier. | Info |
- Majeur Saisie numérique non protégée (lignes 3 et 4)
- Mineur Diviseur non contrôlé :
bpeut valoir 0 - Info Noms peu explicites :
a,b
- ✔ Les saisies sont dans un bloc
essayer - ✔ Le diviseur est testé avant la division
- ✔ Des noms qui disent ce qu’ils contiennent
Mon programme fonctionne, pourquoi n’a-t-il pas la note A ?
L’audit ne vérifie pas seulement que le programme marche : il mesure aussi s’il est facile à lire, à modifier et à faire évoluer. Un programme correct mais sans commentaire, avec des noms d’une lettre ou un seul gros bloc d’instructions peut obtenir C ou D. Suivez les recommandations, en commençant par les constats majeurs.
Pourquoi ma note ne dépasse pas 39 ?
Le programme contient des erreurs bloquantes : tant qu’il ne peut pas s’exécuter, sa note est plafonnée à 39 (mention E), et un bandeau indique que les mesures sont seulement indicatives. Corrigez d’abord les erreurs, par exemple avec Analyser la syntaxe, puis relancez l’audit.
L’audit exécute-t-il mon programme ?
Non : il lit le code sans le lancer. Il n’y a donc ni saisie à faire, ni fenêtre qui s’ouvre, et un programme avec une boucle sans fin s’audite sans problème.
Mes données partent-elles sur Internet ?
Non. L’audit est fait par l’application elle-même, sur votre ordinateur, comme l’exécution des programmes. Il fonctionne aussi sans connexion.
Comment documenter une fonction pour que l’audit la reconnaisse ?
Écrivez un commentaire sur la ligne juste avant l’en-tête fonction …, sur la même ligne, ou sur la ligne juste après. Une ligne suffit : son rôle, ses paramètres et la valeur qu’elle renvoie.
Pourquoi i, x ou n ne sont-ils pas signalés comme noms peu explicites ?
Ce sont des noms d’usage courant : i, j, k pour les compteurs de boucle, n pour un nombre, x, y, z pour des coordonnées. Les autres noms d’une lettre (a, t, s…) sont signalés.
Un petit programme d’exercice doit-il avoir un en-tête et des commentaires ?
Non : l’audit en tient compte. L’absence de commentaire n’est relevée qu’à partir de 30 lignes de code, et l’en-tête n’est demandé qu’à partir de 15 lignes.
L’audit remplace-t-il les tests unitaires ?
Non, ils se complètent. L’audit juge la qualité du code sans l’exécuter ; les tests unitaires vérifient que le programme donne les bons résultats. Un programme bien noté peut encore calculer faux, et inversement.