Audit de code source

audit de code source graphique radar

Qu’est-ce qu’un audit de code source ?

Un audit de code source est une analyse poussée des coulisses d'une application, afin de déterminer si la manière dont elle est développée respecte les standards et les bonnes pratiques.

L’objectif : avoir une vue globale de l’application sur ses points forts et axes d’amélioration, afin d'en extraire un plan correctif à mettre en œuvre et un plan progrès pour l'optimiser !

Chez AXOPEN, nous combinons deux approches complémentaires, automatisées et manuelles, afin de réaliser vos audits.

5 raisons de faire auditer
le code source de son application

  • Raison 0

    Faire un état des lieux de l’application, évaluer la qualité du code

  • Raison 1

    Identifier la cause des problèmes de performances

  • Raison 2

    Avoir des recommandations d’optimisation

  • Raison 3

    Valider la maintenabilité, la robustesse & l’évolutivité de l'application

  • Raison 4

    Améliorer la durée de vie de l’application

De multiples bugs détectés et une perte de confiance sur la qualité de l’application : c’est souvent l’origine d’une mission d’audit de code source...

Le but principal de l'audit de code est donc de répondre à la question suivante : est-ce que mon application est bien développée ?

Oui, mais pas seulement !

L'audit de code source doit aller plus loin pour répondre à d'autres questions essentielles :

  • Est-ce que l'application est maintenable ?
  • Les performances pourraient-elles constituer un problème ?
  • La scalabilité de l'application pourra-t-elle se faire simplement ?
  • Quid des montées de version ?
  • La documentation est-elle suffisante ?
  • Dois-je investir dans cette application pour la faire évoluer ?

audit de code web Java, C#, Javascript

Zoom sur les technologies

En tant qu’équipe de développeurs passionnés, nous intervenons sur de nombreuses technologies, langages de développement ou frameworks, côté web comme mobile.

Nous sommes capables d’analyser les différentes couches des applications sur C#, Java, PHP ou encore les frameworks JavaScript (Angular, React, Vuejs).

rapport audit de code source

Comment faire un audit de code source ?

Analyser du code source, ça ne s'improvise pas ! Cet exercice peut s'avérer complexe et assez difficile à mettre en place pour avoir des résultats objectifs.

Chez AXOPEN, nous avons développé notre propre protocole d'audit, qui consiste à mixer 2 méthodes complémentaires : l'audit "manuel" avec de vrais humains, et l'audit "automatisé" qui repose sur des outils d'analyse.

vous avez un projet ?

Besoin d'un audit, de développer une application
ou de faire évoluer une solution ?

Contactez nous

Méthode #1

L'audit automatisé

De nombreux outils permettent d'analyser le code source des applications.

Spécifiques à chaque langage de programmation, ces outils d'analyse révèlent des métriques en se basant sur des règles de style d'écriture de code ou de complexité.

L'avantage principal de ce type de solution est qu'elle fournit un ensemble d'indicateurs chiffrés simple à analyser.

Certains de ces outils peuvent même fournir une analyse de bugs prédictive (type findbugs).

C’est un bon début, mais attention, ça ne suffit pas !

Bien que ces solutions aient clairement des avantages en pouvant notamment être intégrées très facilement dans des plateformes d'intégration continue, elles s'avèrent être incomplètes et passent souvent à côté de l'essentiel.

Aucun de ces outils ne vous dira les yeux dans les yeux "oui, votre application vaut le coup d'être conservée".

Méthode #2

L'audit manuel, l'audit humain

Chez AXOPEN, nous sommes plus que convaincus que la valeur d'un audit de code source est apportée par l'humain.

Bien que l'audit manuel (l'audit humain) et l'audit automatisé puissent être complémentaires, c'est l'humain qui apporte le plus de valeur dans l'analyse.

L'audit de code source à la main, comment ça se passe ?

À notre sens, la solution la plus efficace est d'analyser une fonctionnalité, ou un ensemble de fonctionnalités, en traversant l'intégralité de la chaîne applicative ; en partant des écrans jusqu'à la base de données.

L'objectif de cette démarche est de passer en revue chaque couche applicative. Pour avoir une couverture complète, il est nécessaire de faire appel à un expert, sur chaque technologie concernée.

Il nous semble également essentiel d'écouter et de conserver le ressenti des personnes qui auditent le code comme une réelle valeur ajoutée. Car oui, ouvrir un code source n'est évident pour personne...

Alors la première impression est d'autant plus importante puisqu'elle permet par exemple d'apprécier le niveau de difficulté pour une équipe de maintenance d'intégrer un nouveau développeur sur le projet.

Quelle est la composition de l'audit
de code source fait par un humain ?

Nos experts techniques s’attachent à regarder en priorité les points suivants :

  • La clarté du code source
  • L'organisation du projet
  • Les technologies utilisées (sont-elles viables?)
  • La gestion des dépendances (y'a t-il des dépendances à risque ?)
  • Les best practices des langages
  • Les nouvelles fonctionnalités sont-elles utilisées ?
  • La complexité du code source
  • Le respect de la technologie utilisée
  • La qualité des commentaires
  • La qualité et la composition des tests
  • La performance des fonctionnalités importantes
  • La plateforme CI/CD du projet
  • Les erreurs classiques
  • Le design patterns
  • La base de données, son schéma, ses index et contraintes
  • Les requêtes SQL

Cette liste n'est bien sûr pas exhaustive et doit être adaptée à chaque audit au regard de ses objectifs, mais s'apparente comme le reflet du travail que seul un humain est en mesure de réaliser.

Chez AXOPEN, nous sommes des artisans du code et de la beauté de celui-ci.

N'oubliez pas que si un ordinateur était capable d'attester de la qualité d'un code source, c'est qu'il serait en mesure de l'écrire ! Entre nous, ça n'est pas prêt d'arriver :)

conviction

Notre démarche

  • Un audit cadré et rapide avec des étapes clairement définies
  • Un rapport d’audit complet et une soutenance pour échanger de vive voix
  • Un outil d’aide à la décision transparent
demarche

Nos convictions

  • Une application est réussie si les utilisateurs s’en servent
  • La qualité du code prime
  • Les performances doivent être surveillées
  • Un oeil extérieur permet d’avancer plus vite

Réaliser un audit est une très bonne manière de répondre aux questions qui se posent concernant la qualité de son application.

Bien qu'efficace, il est souvent plus intéressant de mettre en place une démarche préventive de qualité de code, avec des audits plus légers mais plus réguliers. Un audit avant la mise en production d'une application est aussi un plus non négligeable.

L'audit doit aussi se concentrer sur les points positifs du code source de l'application.

Il doit mettre en lumière les forces et les faiblesses et ne doit en aucun cas chercher des coupables et des personnes à blâmer. Évidemment, une application est toujours la résultante de nombreuses années de développement, de contraintes projets, de changements d'équipes... Il faut donc garder tout cela en tête afin de ne pas faire un audit "à charge".

L'idée principale est toujours de dégager des axes d'analyse et de fournir des clés à la prise de décision pour le responsable de l'application.

audit de code matrice sécurité

Chaque fois qu'un point positif ou négatif est détecté, il est rapporté dans le rapport de l'audit de code sous forme de tableau.

On utilise également un radar qualitatif, qui permet, en un coup d’œil, de se rendre compte des forces et des faiblesses d’une application, et de voir rapidement les points d’amélioration.

Notre méthode

6 étapes pour l'audit de code source

  • 1

    Identification de la problématique et du périmètre de l’audit

  • 2

    Premières analyses

  • 3

    Point mi-parcours : Premiers retours & échanges avec votre équipe

  • 4

    Poursuite des analyses

  • 5

    Restitution orale

  • 6

    Restitution écrite : rapport d’audit

audit code source matrice de décision

Après l'audit ?

Il est important d'avoir une vision la plus complète possible et objective des choses. En effet, c'est un vrai état des lieux que nous cherchons à réaliser.

Une fois l'analyse du code source effectué, il est primordial de travailler à une matrice d'actions valorisées.

Cette projection permet aux décideurs d'avoir des éléments visuels clairs pour se positionner sur l'avenir de l'application et son code source.

Puis, une matrice priorité/bénéfice VS coût/investissement est une manière efficace de présenter les choses. L'audit doit fournir les clés d'une remise à niveau du code source.

Pour chacun des points analysés, le coût de l'investissement est important car il permet de mesurer l'effort d'un retour à l'état de l'art.

vous avez un projet ?

Besoin d'un audit, de développer une application
ou de faire évoluer une solution ?

Contactez nous