Si vous vous demandez comment vous pourriez améliorer la qualité de vos applications, alors je vous invite à étudier de près les différentes méthodes dont je vais vous parler.
Je vois très souvent des clients qui me parlent de qualité logiciel. Les solutions traditionnelles mises en place sont quasiment toujours les mêmes :
- plus de tests unitaires
- demander aux développeurs de mieux tester à la main
- Je vois aussi très souvent les problèmes qui en résultent :
- les développeurs ne « prennent » pas le temps d’écrire des tests unitaires
- les tests à la main sont souvent « baclés » car il faut mettre en production rapidement
L’écriture de tests unitaires est une pratique que je vois peu parmi mes clients. Je pense qu’il s’agit d’un problème de formation pour les développeurs mais aussi un problème d’éducation des responsables de projets.
Côté développeurs, voici ce que j’entends très souvent quand j’en parle :
- c’est du temps perdu
- je ne sais pas comment faire
- je n’ai pas le temps
- les tests… quoi ?!
Côté managers, je vois aussi régulièrement qu’il y a une incompréhension. Souvent, les tests unitaires sont vus comme une perte de temps.
J’observe ce constat régulièrement en formation ou en assistance technique chez mes clients. Pourtant, les tests unitaires sont importants mais ils ne sont qu’une partie des solutions possibles pour améliorer la qualité d’un logiciel.
Comment améliorer la qualité d’un logiciel ?
Pour savoir comment améliorer la qualité d’un logiciel, il faut tout d’abord se fixer des critères de qualité. Ensuite il faut savoir comment mesurer la qualité. Finalement, la question est : qu’est-ce qu’un logiciel de bonne qualité ?
Une fois les critères fixés, il faudra agir pour les améliorer et nous allons donc voir différentes méthodes actionnables.
Qu’est-ce qu’un logiciel de bonne qualité ?
Voici les critères que je vous conseille de mettre en place (ils sont issus de la norme ISO 9126)
La capacité fonctionnelle : le logiciel doit respecter les spécifications et surtout doit résoudre le problème principal de l’utilisateur
La fiabilité : le logiciel doit résister aux erreurs de l’utilisateur ou de services externes
La facilité d’utilisation (user-friendly) : l’utilisateur doit s’y retrouver facilement grâce aux éléments d’interfaces mis en place (tooltip, icones, labels…)
La performance
La maintenabilité : le code doit respecter les standards mis en place avec une documentation et la conception doit permettre de maintenir le logiciel à moindre couts.
Il existe probablement des dizaines d’autres critères mais si vous arrivez à mettre en place ces 5 critères, votre logiciel sera de meilleure qualité.
Comment mesurer la qualité d’un logiciel ?
L’idée est simple : mettre en place des indicateurs objectifs pour vérifier les critères (ceux dont j’ai parlé juste avant).
Une fois les indicateurs en place, il faudra suivre l’évolution de manière régulière pour avoir une idée de la qualité (amélioration ou détérioration) du logiciel.
Pour simplifier le suivi, vous pouvez utiliser un tableau Excel par exemple (je vous propose un modèle à la fin de l’article).
Les feedbacks des utilisateurs (formulaire de contact, téléphone, forum…)
Tests sur des groupes de personnes
Performance :
Le temps de démarrage
Le temps de certaines longues actions
Le temps d’exécution de tous les tests
Maintenabilité :
La complexité du code
Le respect des règles de codage et de conception
Pour suivre les indicateurs de manière régulière, il suffit de placer un rendez-vous dans votre agenda (par exemple toutes les deux semaines, le lundi matin). A chaque fois, vous pourrez mettre à jour votre document de suivi pour savoir où vous en êtes et agir.
Comment agir sur la qualité ?
Pour chaque indicateur, il existe plusieurs actions que vous pouvez mettre en place pour améliorer la qualité.
Voici quelques exemples :
Couverture des fonctionnalités Créer une matrice de respect des exigences : lister les fonctionnalités, vérifier si elles sont implémentées et respectées.
Nombre de tests qui réussissent Tous les tests doivent réussirent. Si ce n’est pas le cas, agir pour corriger.
Taux de couverture du code Augmenter la couverture en écrivant de nouveaux tests.
Temps de démarrage Ajouter un indicateur de performance Windows pour mesurer le temps de certaines actions dans votre application.
Temps d’exécution des tests Utiliser un serveur d’intégration continue qui lance les tests de manière automatique et qui permet de stocker les temps d’exécution.
Complexité du code Analyser votre code (par exemple avec Visual Studio) pour trouver les méthodes complexes et donc à refactoriser.
Il existe bien sûr d’autres méthodes que vous pouvez déterminer à partir des indicateurs et des critères. Il faut se poser la question : comment améliorer tel ou tel indicateur.
Bref, j’espère que vous aurez compris le principe.