Aller au contenu

L'
audit technique,
accompagner efficacement la reprise ou la maintenance d’une application

Qu’est ce qu’un audit technique ?

Un audit technique est une revue d’un site ou d’une application afin de quantifier la qualité, la sécurité et la maintenabilité de son code source.

C’est également l’occasion de lister ses dépendances à d’autres systèmes : les fameuses interfaces et leurs protocoles : API, échanges de fichiers... Ces informations ne sont pas toujours contenues dans un document maintenu à jour.

Il est important de commencer par définir l’objectif de l’audit, et donc son périmètre. Dans le cadre de la reprise d’une application issue d’un développement préalable, l’audit se concentrera sur le code.

L’audit peut cependant plus spécifiquement porter sur la sécurité, les performances, l’accessibilité ou l’écoconception de l’application dans son état actuel.

Pourquoi faire un audit ?

L’objectif de l’audit est d'accompagner la prise de décision quant à la maintenance de l’application, son évolution et/ou sa refonte. Nous réalisons ce type d’audit lorsque nous reprenons la gestion de sites Internet développés par d’autres agences, avant de commencer à réaliser des travaux d’évolution. Plus rarement, sur des projets au long cours afin de mesurer l’état de santé de la base de code et de limiter les dérives.

La liste des points de contrôle et leur analyse est complétée par des recommandations globales concernant l’application et un plan d’action pour traiter les points les plus critiques.

Déroulé de l’audit

  • Périmètre de l'audit

    Définition de ce que l’audit couvrira : code, sécurité, accessibilité…

  • Choix de l’auditeur

    Sélection d'auditeurs expérimentés sur le périmètre à couvrir.

  • Réalisation de l’audit

    Analyse et production du document d’audit, avant présentation aux parties prenantes.

  • Plan d'actions

    Validation d'un plan d’action réaliste pour traiter les points jugés les plus critiques de l'audit.

Comment est réalisé l’audit ?

  • Liste de points de contrôle

    • Nous utilisons une liste de points de contrôle générique : versions utilisées, présence de tests et d’intégration continue etc. Cette liste permet de répondre aux questions systématiquement posées par les parties prenantes lors d’une reprise de projet : équipes client, développeurs, chefs de projet.

  • Outils d’analyse de code

    • Nous utilisons les rapports issus d’outils d’analyse de code afin de mesurer la qualité générale du code et d’évaluer l’effort à fournir pour atteindre différents niveaux de qualité. Ces outils automatisés mesurent les «code smells», les mauvaises odeurs : des mauvaises pratiques de conception qui conduisent à l’apparition de défauts.

  • Lecture et vérification de code

    • L’audit se termine par une lecture du code par un de nos développeurs expérimentés. C’est à cette étape que l’on détecte les problèmes les plus spécifiques au projet.

couverture test projet

Que contient le rapport d'audit ?

Chaque point d’audit relevé présente :

  • Un nom, voire un code de version, pour référence et pour faciliter les échanges
  • Une description du problème
  • L’explication des conséquences
  • Une ou plusieurs recommandations de résolution du problème
  • Une estimation de la criticité du problème

Nous nous efforçons d’utiliser un langage clair et accessible à tous. Les termes techniques ne sont mentionnés en commentaire que lorsqu’ils permettent de préciser et clarifier le sujet, à destination des développeurs.

Nous définissons aussi la criticité du problème en nous basant sur la gravité et la probabilité qu'il se produise.

Scrum-Troopers

L'audit technique, une aide à la décision

Les éléments de l’audit sont résumés dans un tableau reprenant leur nom et leurs valeurs de criticité. C’est un bon outil pour démarrer les discussions sur la priorisation des traitements.

L’indice de criticité permet la priorisation des éléments les plus importants tout en exposant les informations permettant d’aider la prise de décision en fonction de la gravité et de la probabilité d’impact des éléments listés.

Il n’est pas nécessaire de tout traiter à la sortie d’un audit : le plan d’action cherchera à traiter rapidement les problèmes immédiats, avant de corriger sur le long terme d’autres défauts. Enfin, certains défauts moins graves peuvent être laissés de côté, et l’on considère que le simple fait de les connaître suffit à éviter qu’ils dérivent. Par exemple, des tests statiques automatisés peuvent être mis en place afin de tolérer les défauts passés mais d’empêcher de nouvelles dégradations.

Vous souhaitez faire un audit de votre site ou application ?

Que votre projet en soit au stade de l'idée ou déjà bien avancé, nous serons ravi·e·s de discuter avec vous, d'écouter vos envies et de vous conseiller au mieux sur les solutions envisagées.