Technologies de l'information
Article
Nouvelle
Étude de cas
Portrait de formateur

L’assurance qualité logicielle (AQL) : une question de survie

Michel Benoit
L’assurance qualité logicielle (AQL) : une question de survie

Vous avez surement entendu parler de l’avion commercial dont le logiciel d’aide au décollage était défectueux, causant la perte de centaines de vies humaines et une immobilisation au sol forcée, à travers le monde entier. Ce modèle d’avion était pourtant le produit vedette d’un grand avionneur. L’enquête qui a suivi les catastrophes a révélé, entre autres, que :

  • Le logiciel avait des bogues;
  • Les pilotes n’avaient pas été formés sur le nouveau système d’aide au décollage;
  • Le manuel de bord du co-pilote n’était pas à jour;
  • Il y avait des problèmes de conception pour ce modèle d’avion;
  • La certification de l’appareil ne s’était pas faite en toute indépendance;
  • L’exécution rapide des travaux a été privilégiée au détriment de la sécurité;

Malheureusement l’actualité regorge d’exemples similaires (heureusement moins coûteux en vies humaines), où des problèmes dus à la non-qualité ont eu des répercussions néfastes autant sur la notoriété que sur les résultats financiers.

S'il est impossible de tout prévoir, il est possible de limiter les risques de mauvaise surprise.

En ces temps où le mot « qualité » est sur toutes les lèvres, l’assurance qualité logicielle et les tests logiciels, deux domaines bien distincts, sont encore mal connus dans l’industrie des TI.

Michel Benoit, expert formateur en AQL, fait le tour de la question.

Qu’est-ce que l’assurance qualité logicielle?

Voici une définition de ce qu’est l’assurance qualité logicielle (AQL) :

Un ensemble d'activités qui définit et évalue l'adéquation des processus logiciels afin de fournir des preuves qui permettent d'établir la confiance dans le fait que les processus logiciels sont appropriés pour produire des produits logiciels de qualité adéquate, pour les processus prévus, ou pour les services d'exploitation prévus et qu'ils répondent aux exigences du calendrier et du budget (Référence: Daniel Galin – 2018).

Quelle est la différence entre assurance qualité et tests?

Car il y a bel et bien une différence. L’assurance qualité logicielle est axée sur des activités de prévention des anomalies, tandis que les tests logiciels constituent une activité de détection des anomalies. Pour bien distinguer le rôle de chacun, rappelons-nous que l’assurance qualité logicielle assure la qualité d’un produit logiciel avant sa fabrication, alors que les tests logiciels en contrôlent sa fabrication. D’où l’importance de saisir la distinction.

Quels sont les coûts de négliger l’AQL?

Il est facile de déduire que l’assurance qualité logicielle est une activité beaucoup plus rentable et économique pour une organisation, que les tests logiciels. Selon les spécialistes investir un 6% des efforts d’un projet permettrait de réduire de 30% les anomalies ! En effet, il est beaucoup moins coûteux de prévenir une anomalie à sa source, que lorsqu’elle est détectée durant la phase de test. On estime qu’il en coûte jusqu’à mille (1 000) fois plus de corriger une anomalie après une mise en production, que durant la phase d’analyse. Souvent, c’est 30% à 50% du budget qui est consacré aux coûts de reprise. Malheureusement, les entreprises se limitent encore trop souvent aux tests logiciels et croient qu’elles font de l’assurance qualité.

AQL - les coûts des défauts | Technologia

Au-delà des coûts purement financiers, la mauvaise qualité d’un logiciel (et par extension de n’importe quel produit) impacte négativement l’organisation et son image de marque. Les clients vont devenir méfiants, entrainant une baisse des ventes et des revenus ; et les employés ne voudront plus être associés à une mauvaise image, augmentant le taux de roulement et la pénurie de main d’œuvre.

C’est une pente que même les meilleurs services marketing ne pourront pas toujours remonter.

Vitesse ou précipitation?

Aujourd’hui de nombreuses organisations cherchent à augmenter la vélocité de leurs équipes de développement et accélérer le rythme de livraison des logiciels, généralement pour offrir plus de valeur au client. Pour certaines organisations, livrer rapidement un logiciel peut être un réel avantage concurrentiel. En revanche, lorsque l’on confond vitesse et précipitation, il arrive que l’on coupe les coins ronds… dont la qualité. Que vous soyez dans un contexte classique ou agile, la qualité des logiciels est un enjeu majeur. Il faut savoir intégrer l’assurance qualité logicielle selon le contexte de vos projets TI.

Quel est l’élément clef pour réaliser de l’AQL?

Pour s’assurer de la qualité d’un produit logiciel, on doit en premier lieu s’assurer de la qualité de son processus de développement. Ce principe bien simple s’applique à tous les secteurs de l’industrie. Prenez par exemple une entreprise qui fabrique du pain. Pour en améliorer la qualité, on cherche à améliorer son processus de fabrication : on modifie la recette, la température du four, l’emballage du pain, sa manipulation, etc. En somme, on tente de modifier le processus de fabrication pour atteindre un produit de qualité de plus en plus grande. En informatique, le même principe s’applique : on doit améliorer la qualité de nos processus de développement pour atteindre un niveau supérieur de qualité de nos systèmes et produits logiciels.

Comment appliquer la gestion de la qualité dans son organisation?

La mise en place d’un programme qualité permet d’avoir les outils pour réaliser un travail de qualité selon des critères prédéfinis. Selon votre contexte, voici quelques éléments de solutions qui pourraient améliorer la qualité :

  • Mettre en place un plan qualité pour chaque projet,
  • Identifier les parties-prenantes,
  • Rédiger des requis clairs et précis,
  • Définir la méthodologie de développement logiciel,
  • Appliquer les bonnes pratiques de l’industrie,
  • Former les équipes à l’assurance qualité logiciel et aux nouvelles technologies,
  • Instaurer des métriques adéquates de qualité et de test,
  • Définir un tableau de bord pour le suivi de la qualité et faciliter la communication et la collaboration,
  • Insérer des techniques de contrôle qualité dans le processus de développement (revue de code, inspection, audit, …)
  • Choisir judicieusement ce qui doit être automatisé.
  • Documenter le code,
  • Instaurer l’approche du Shift-Left des tests logiciels,
  • Etc…

En ces temps où la transformation numérique et l’économie force les organisations à innover et à se réinventer pour survivre, développons dès maintenant notre vision qualité, avant qu’il ne soit trop tard.

Pour aller plus loin : 

Formations en assurance qualité logicielle

Voir toutes les formations en Analyse, conception et implantation des systèmes d'information

 

Photo by Bradyn Trollip on Unsplash

Contactez-nous

Pour en savoir plus sur nos nouveaux services ou nous parler de vos besoins en développement de compétences, contactez nos spécialistes en formation au 514 380-0380 ou par courriel : formation@technologia.ca.

Articles similaires

Voir tous les articles de blogue