Comment évaluer la qualité d’un développement logiciel ?

Brouillon

À venir

0 commentaire

L’étape préalable à l’assurance de la qualité d’un logiciel est de respecter les règles de l’art du développement : un code uniforme respectant des standards de codage, une gestion décentralisée du code source, en passant par l’automatisation de toute la chaîne de construction d’un logiciel. Ces bonnes pratiques constituent la base pour gérer efficacement de la qualité logicielle de votre projet.

Mais comment savoir si ces bonnes pratiques ont été appliquées, comment évaluer la qualité d’un développement logiciel ?

qualité logicielle

Voici quelques indicateurs que vous pouvez utiliser :

Capacité fonctionnelle

Evaluer le taux de couverture des fonctionnalités : le logiciel doit respecter les spécifications et surtout répondre aux attentes de l’utilisateur. Vous pouvez créer une matrice de respect des exigences, lister les fonctionnalités et vérifier si elles sont implémentées et respectées avec des critères de type : aptitude, exactitude, interopérabilité, sécurité…

Fiabilité

Vérifier l'aptitude du logiciel à maintenir son niveau de service dans des conditions précises et pendant une période déterminée et notamment

  • La fréquence des défaillances dues à des bugs
  • L’aptitude à maintenir un niveau de service satisfaisant en cas de problèmes quel qu’il soit
  • La capacité à rétablir son niveau de service et de restaurer les données directement affectées en cas de défaillance, en combien de temps ? avec quel effort ?

Le logiciel doit résister aux erreurs de l’utilisateur et les tests suivants doivent être concluants :

  • Tests unitaires, menés par le développeur lui-même, ils consistent à vérifier la bonne exécution des fonctions dont il a la charge.
  • Tests d’intégration, menés par un testeur dédié, ils visent à tester la mise en commun de plusieurs composants et l’enchaînement de processus complets au-delà des simples fonctions unitaires.
  • Tests du système complet, qui consistent à dérouler des scénarios complets, représentant les cas d’utilisation du logiciel, sans se préoccuper de l’implémentation ou des composants sous-jacents. Lors de l’évolution du système, on rejouera ces scénarios afin de valider la non-régression.

Ces tests peuvent être automatisés pour être rejoués à tout moment.

Facilité d’utilisation

Prendre en compte les feedbacks des utilisateurs (formulaire de contact, téléphone, forum…) pour améliorer en continu l’expérience utilisateur

Effectuer des tests sur des groupes de personnes

  • Les tests d’acceptation, menés avec des utilisateurs pilotes, afin de valider l’adéquation aux besoins et la facilité d’adoption par ceux qui devront utiliser le logiciel régulièrement.
  • Les tests d’ergonomie. Ces tests incluent tout autant la facilité d’utilisation que l’apparence visuelle

Performance

Vérifier le temps de démarrage : c’est une des clés voire la clé de succès de votre logiciel notamment pour les nouvelles générations habituées à obtenir tout de manière rapide et zappant sans état d’âme si l’efficacité n’est pas là.

S’assurer d’un temps d’exécution satisfaisant pour les tests suivants

  • Les tests de performance consommation CPU, évolution de l’utilisation mémoire, nombre de requêtes par seconde, flux d’entrée/sortie… Le test de performance détermine la bonne exécution en mesurant les temps de réponse sans contexte particulier. Dans le cas d’un test de performance continu, il démarre dès le début des phases de développement, et est adapté à chaque étape du cycle de vie de l’application, jusqu’aux tests de charge complets.
  • Les tests de montée en charge doivent être distingués des tests de performance et réalisés avec des outils permettant de simuler de nombreux clients simultanés. En augmentant le nombre d’utilisateurs par paliers, il détecte les éventuelles limites en capacité du système, pour valider la qualité de service avant déploiement

Maintenabilité

Les points à vérifier sont notamment

  • Faculté d’analyse : facilité à diagnostiquer les déficiences, leurs causes ou à identifier les parties à faire évoluer
  • Faculté de modification : facilité à modifier, remédier aux défauts ou à prendre en compte l’environnement
  • Stabilité : facilité à anticiper les risques éventuels lors de modifications

Vous devriez être en mesure d’évaluer un projet et sa complexité sur la base des éléments suivants :

  • Nombre d’entités métier,
  • Nombre de règles métier simples (au sein d'une entité),
  • Nombre de règles métier avancées (combinant plusieurs entités par exemple),
  • Nombre d’éléments pour l’interface utilisateur (écrans, pages web),
  • Nombre de rapports (ou états),
  • Nombre d’interfaces externes,
  • Nombre de calculs ou processus de traitements par lots,
  • Nombre de variations technologiques de chaque composant (client -riche, page web, version mobile, technologies de base de données, utilisation d'un stockage "cloud").

Le nombre de lignes de code écrites à la main voire inutiles influent directement sur les coûts de maintenance.

L’automatisation permet non seulement de limiter ce risque mais aussi de respecter les règles de codage et de conception.

Avec quinze ans d'expérience dans le développement de logiciel sur-mesure, notre valeur réside dans notre expertise pointue en conseil alimentée, au fil des années, par notre expérience des projets d’envergure : logiciels sur mesure, migration vers le Cloud Azure, audit applicatif, méthodologie agile, processus DevOps, mais aussi transformation digitale et édition d’outils de productivité.

Passionnés et experts du développement, chez SoftFluent nous pensons que le logiciel est un formidable levier du succès des sociétés. Nous partageons nos réflexions et publions régulièrement des livres blancs. Si la qualité logicielle vous interpelle, le livre blanc ‘La performance d’une équipe de développement’ devrait vous intéresser.

BannièreLBPerfDev

Christine Moronval

Responsable Communication chez Volkswagen puis Directrice de Clientèle dans le groupe DDB, elle rejoint SoftFluent avec plus de 20 ans d'expérience en Marketing/Communication.

Profil de l'auteur