Ouvrir le menu Fermer le menu

SERVICES ISIT : Audit de codes et TU

< Retour à la newsletter
Découvez les services ISIT réalisés par nos experts Assurance Qualité Logiciel !

Audit de codes, Détection des failles d’un logiciel by ISIT

Campagne de Test Unitaires by ISIT

L’audit de code permet de cartographier un logiciel et de détecter des failles pouvant nuire au bon fonctionnement de celui-ci tout au long de sa durée de vie. L’objectif est d’identifier les bugs pouvant entrainer des pannes du système, un comportement inattendu ou des failles de cybersécurité.

Basé sur l’Analyse Statique Avancée, cet audit de code est une méthode d’analyse qui a prouvé son efficacité pour détecter des défauts courants de programmation. Elle permet d'analyser une application dans sa totalité, et d’éliminer les défauts les plus coûteux, et qui sont généralement très difficiles à détecter par des analyses manuelles. Comme le code n’est jamais exécuté dans une analyse statique, elle peut être utilisée à tout moment dans le cycle de développement, et complète idéalement d’autres méthodologies de test, comme les tests dynamiques classiques.
Voici par exemple le type de détections (liste non exhaustive) que permet l’analyse statique avancée :
  • Injection de commandes / SQL
  • Tainted values (Analyse du flot de données, notamment des données extérieures, et de leur propagation pour en juger la dangerosité potentielle – cybersécurité)
  • Dépassement de tableau / buffer (buffer overrun / underrun)
  • Division par zéro
  • Déréférencement de pointeur nul
  • Fuites mémoire
  • Débordement de pile
  • Problèmes de casts
  • Variables / pointeurs non initialisés
  • Double libération / fermeture de fichier / socket / mutex …
  • Concurrence de threads: Data Race, Dead locks, famine …
  • ...
Forts de sa longue expertise dans les outils et le développement d’applications temps réel critiques, ISIT a mis en place un service d’audit de code à la demande pour les clients qui ne disposent pas des outils dans leur bureau d’études, mais qui souhaitent néanmoins s’assurer du niveau de qualité de leurs logiciels. Ceci est particulièrement vrai avec le développement des systèmes connectés, pour lesquels les failles dans le code résultent souvent en dangereuses vulnérabilités.

Nos audits de codes s’appuient sur l’outil d’analyse statique avancée CodeSonar® de Grammatech®  (en savoir plus). CodeSonar® permet l’analyse de code Source (C, C++, Java & C#) mais également de codes binaires purs (sans les fichiers sources). Cette capacité, unique à CodeSonar®, permet une analyse complète de toute application : des codes sources utilisateur jusqu’aux librairies tierces-parties intégrées.

CodeSonar® permet également de vérifier durant l’analyse s’il y a des violations vis-à-vis de standards de codage ou vis-à-vis de normes de sûreté de fonctionnement ou de sécurité.
A l’issue de cette analyse, un rapport détaillé est généré indiquant l’ensemble des erreurs détectées avec leur type, leur degré de sévérité, leur qualification (Safety, Security).

Nos experts AQL peuvent en complément effectuer une revue détaillée de ces détections  afin de vous donner des préconisations concrètes pour leur correction.
Au-delà de cette analyse, nos consultants sont à même de vous accompagner et de vous assister tout au long de votre développement afin de vous assurer de la qualité et la fiabilité de votre logiciel.
Le test unitaire (TU) est un processus de vérification d’une unique unité de logiciel, elle-même définie comme étant la plus petite partie non divisible d’un code source. Le but est de confronter une fonction de code aux exigences de conception correspondantes, et donc de s’assurer qu’elle fonctionne correctement en toutes circonstances.

Les TU, bonne pratique d’Assurance Qualité Logiciel, sont exigés dans de nombreuses normes de Sureté de Fonctionnement Logiciel comme la DO-178, l’IEC 61508, l’IEC 62304, l’ISO 26262, l’EN 50128, …

La réalisation d’une campagne de TU implique de développer un harnais de test, c’est-à-dire du code d’encapsulation de la fonction testée (déclaration et instanciation des variables, …), ainsi que de remplacer les éventuelles fonctions appelées par la fonction testée par des bouchons (« stub » en anglais). Ainsi, il est nécessaire de maintenir à jour un code de taille non négligeable uniquement dans un but de test.

Cette activité, importante dans la vérification et la validation d’un logiciel, s’inscrit dans une démarche de qualité logicielle. Mais c’est également une étape longue et fastidieuse qui doit être répétée au fur et à mesure des évolutions du logiciel. De plus il peut être exigé que cette activité soit réalisée par une équipe indépendante de l’équipe de développement.

Associant ses compétences dans la qualité logicielle et la certification à un regard extérieur impartial, les experts d’ISIT sont à même de vous aider à mener vos campagnes de tests unitaires.
TU_ISIT_LDRA
Fortement impliqué dans le développement d’applications critiques, nos équipes s’appuient sur la suite TestBed® de LDRA® pour la réalisation de ces campagnes.

La suite TestBed® (plus d'infos) permet non seulement la réalisation de campagne de test mais également d’avoir une analyse complète du code testé en termes de qualité ou Qualimétrie du code : respect de règles de codage, complexité, testabilité et maintenabilité.
Selon votre souhait, ISIT propose 2 niveaux de prestations éventuellement complémentaires :
  • Un accompagnement dans la préparation et la mise en place de vos campagnes de TU, que celles-ci soient réalisées en interne ou sous traitées. En effet, une campagne mal préparée s’avèrera plus longue, plus couteuse et n’apportera pas les résultats escomptés. Souvent, elle sera difficile à exploiter ou à « rejouer » après corrections
  • La prise en charge complète d’une campagne de TU par notre équipe technique

Au-delà de l’accompagnement ou de la réalisation, nos experts AQL pourront vous amener du conseil sur l’évolution de votre architecture logicielle, dans le but d’obtenir une application plus robuste mais aussi plus facile à tester et à maintenir, et donc au final d’améliorer la qualité de votre logiciel et de réduire son cout global.

En complément de la réalisation d’une campagne de TU, nous pouvons vous aider à mettre en place chez vous l’architecture de tests adaptée à vos besoins, et former vos équipes pour la réalisation des campagnes suivantes de manière autonome si vous le souhaitez.

En nous sollicitant pour vos campagnes de tests unitaires, vous optez pour une expertise AQL pour la réalisation de vos travaux, mais également pour un partenaire de confiance qui saura vous faire le transfert de compétences et vous assister tout au long de votre projet si, à terme, vous souhaitez maitriser cette phase de validation logicielle en interne.