Assurance qualité des applications : panorama des solutions

La qualité des applications est un enjeu sensible, voire stratégique dans bien des cas. Une application qui ne fonctionne pas, ou mal, nuit à la productivité, et peut même perturber fortement les activités de l’entreprise.

« Dans une banque d’affaires, une anomalie en production coûte en moyenne 300 000 € et chez un voyagiste, une indisponibilité d’une minute du site Web coûte 20 000 € », assure Gilles Mantel, consultant chez Xebia, intervenu sur ce thème lors de la dernière journée du CFTL (Comité français des tests logiciels). n effet, un site Web qui met trop longtemps à répondre fera fuir les visiteurs vers les sites concurrents. C’est, selon le baromètre e-Performance, la première cause de fuite des internautes.

Mieux vaut donc être à même de prévenir les dysfonctionnements, et s’ils surviennent néanmoins, d’en identifier rapidement les causes. La complexité des systèmes d’information n’arrange rien : « Lorsque la complexité double, le nombre de bugs quadruple », résume Christophe Peron, d’Infotel. Pire : « 90 % des vulnérabilités proviennent de catégories de problèmes connus, mais insuffisamment testés ! », rappelle Bruno Legeard, cofondateur de Smartesting.

Les solutions d’assurance qualité répondent à ces préoccupations. Les éditeurs présents sur ce marché proposent des outils pour tester la robustesse, la fiabilité et les performances des applications, réduisant ainsi les risques pour ceux qui les développent et ceux qui les utilisent. Elles contribuent ainsi à diminuer les coûts de maintenance liés aux pannes, augmentant dans le même temps la satisfaction et la productivité des utilisateurs, ou la confiance des clients.

Historiquement, le marché du test et de la qualité logicielle a évolué selon trois phases : la contrainte (des années 1970 à 1990), le besoin (des années 1990 aux années 2000) et l’atout compétitif pour la performance de l’entreprise et son image. « On peut ajouter une quatrième phase qui est l’accélération, d’autant que le test et la qualité logicielle sont des sujets auxquels les directions générales s’intéressent de plus en plus, commente Natacha Pickaert, manager Testing chez Sogeti France. Lorsque des applications ne fonctionnent pas comme elles devraient, faute de test et de contrôle de la qualité, c’est toute l’entreprise qui en subit les conséquences. »

« Une application informatique est de qualité lorsque le coût d’ajout d’une fonctionnalité est stable », précise Jérôme Avoustin, de Smartview, qui liste les six critères déterminants : du processus d’ingénierie, du processus de réalisation, la gestion des risques, le respect des coûts, des normes et des délais.

Une offre structurée en quatre grands domaines

Il existe sur le marché un certain nombre de solutions logicielles permettant d’outiller les différentes étapes du processus d’assurance qualité. Certaines sont orientées vers l’industrialisation de bout en bout du processus, tandis que d’autres couvrent un type spécifique d’analyse ou ont un périmètre plus restreint. Une nouvelle étude de Best Research propose un panorama de ces solutions, avec une étude de 25 éditeurs de logiciels (*).

Le marché global de l’assurance qualité peut se découper en quatre grands domaines :

Les solutions d’analyse du portefeuille applicatif
Cette catégorie regroupe les solutions centrées sur l’analyse statique. Celles-ci permettent d’identifier des défauts dans le code et l’architecture applicative : structures trop complexes, écarts par rapport aux règles de dénomination, usages inadaptés de certains frameworks, failles potentielles, etc. Elles servent notamment à évaluer la lisibilité et la qualité du code, ainsi que le degré de complexité et l’évolutivité des applications : peut-on facilement en assurer la maintenance ? Présentent-elles des risques ? Quelques solutions sont spécialisées dans la détection des vulnérabilités.

Les solutions d’automatisation des tests
Dans cette catégorie figurent les solutions permettant de créer, d’enregistrer et de gérer des scénarios de test, puis de les rejouer lors des campagnes de tests. Certaines solutions ont une couverture très large, couvrant à la fois les tests unitaires et les tests globaux, les tests fonctionnels et de performance, ou encore la non-régression, et fonctionnant sur un grand nombre de plates-formes.

D’autres sont plus ciblées, visant une technologie précise (Java, .Net, C/C++, ERP, SOA…) ou un type de test (tests unitaires, intégration continue, sécurité…). Les solutions les plus avancées permettent également de suivre différentes échelles de mesure de la qualité des applications. On parle alors d’industrialisation des tests.

Les solutions pour les tests de performances
Il existe un certain nombre de solutions destinées uniquement aux tests de performances. Aussi avons-nous souhaité en faire une catégorie à part. Ces solutions sont capables de mesurer les performances des applications quand celles-ci s’exécutent : temps de réponse, consommation des ressources réseau, mémoire ou CPU, etc. Certains de ces outils permettent également de réaliser des tests de charge, qui ont pour objectif d’évaluer la charge maximum que peut soutenir une application sans voir ses performances se dégrader en deçà de certains seuils. Ces solutions doivent être capables de simuler un nombre important de requêtes sur des périodes courtes.

Les solutions d’analyse des performances en production
Dans cette catégorie se situent les solutions analysant les performances des applications en production. Ce type d’outil sort du registre des tests à proprement parler, mais il est utile pour améliorer la qualité des applications en production. À la différence des solutions de supervision classiques, ces logiciels ne sont pas destinés à la surveillance en temps réel des différents composants d’un système d’information, mais au suivi du ressenti des utilisateurs.

En effet, l’environnement opérationnel est parfois bien plus complexe que les environnements de développement et de préproduction, notamment quand il s’agit d’applications très distribuées, voire en mode cloud. Il s’avère alors très difficile de savoir précisément quelles sont les performances en bout de chaîne.

Les solutions situées dans cette catégorie tiennent compte de cette complexité. Elles sont capables d’analyser finement le comportement des applications et celui des différents maillons de la chaîne, pour remonter jusqu’aux causes des problèmes de performances. Les plus avancées de ces solutions sont capables de prendre en compte la diversité des navigateurs, terminaux, configurations, réseaux et points d’accès existant dans le monde.

Les quatre segments du marché de l’assurance qualité logicielle
 Types de solutions  Pour quoi faire ?
 Solutions d’analyse du portefeuille applicatif  Identifier des défauts dans le code et l’architecture applicative
 Solutions d’automatisation des tests  Créer, enregistrer et gérer des scénarios de test
 Solutions pour les tests de performances  Examiner les performances des applications quand celles-ci s’exécutent
 Solutions d’analyse des performances en production  Améliorer la qualité des applications en production
Source : « Assurance qualité des logiciels, panorama des solutions, 25 éditeurs étudiés », Best Research, avril 2012, 74 pages.

Les quatre phases d’un processus de test

1. Planification des tests

  • Environnement organisationnel
  • Analyse des risques
  • Estimation des charges
  • Planifications des tests

2. Préparation des tests

  • Équipe de test
  • Système de test (données)

3. Exécution des tests

  • Suivi des livraisons
  • Exécution des tests

4. Amélioration des tests

  • Gestion des anomalies
  • Reporting des résultats
  • Gestion des changements

Source : Bernard Homès – Comité Français des Tests Logiciels