Tests logiciels

La dernière JFTL (Journée française des tests logiciels), qui s’est déroulée en septembre 2021 avec plus d’un millier de participants, a montré, une nouvelle fois, que cette problématique reste au cœur des systèmes d’information et de la transformation.

Dans sa conférence à la JFTL, Yves Caseau, DSI groupe de Michelin, a rappelé que « le meilleur moyen de produire du code de qualité est d’avoir envie de le montrer, avec une « méthode d’élégance du code », qui s’améliore en la pratiquant. » Dans cette quête, l’approche Lean trouve tout son sens, comme il l’a également expliqué dans son dernier ouvrage « L’approche Lean pour la transformation digitale » (Cf. Best Practices n° 279, 8 juin 2021), paru chez Dunod. Pour Yves Caseau « le monde digital est un monde itératif, au niveau des outils comme des pratiques, et dans lequel le client joue un rôle particulier. Le niveau d’excellence attendu en terme d’expérience a changé. »

Notamment parce que les entreprises, pour de multiples raisons, doivent produire plus de code et plus vite. « Cela suppose un changement d’organisation, afin de s’adapter en permanence à son environnement », un principe qu’Yves Caseau qualifie « d’homéostasie digitale. Dans ce contexte, comment être excellent pour faire un continuous delivery au client avec le bon niveau de qualité ? L’une des clefs est d’avoir une équipe commune et un produit commun. » Yves Caseau a détaillé le concept d’usines logicielles : « Depuis dix ans, j’utilise le terme d’usines logicielles, qui de prime abord peut sembler peu attrayant si on reste sur l’image des usines du siècle passé. Pourquoi ce choix ? D’abord, car le terme met l’accent sur l’importance de l’automatisation. Nous devons produire beaucoup plus, beaucoup plus vite et en améliorant la qualité : il faut de l’automatisation, sinon on n’y arrive pas. Ensuite, quand on parle de factories, il s’agit de micro-factories, de petite taille, proches des utilisateurs. Car si l’entreprise construit une architecture rigide, elle ne sera pas très agile. »

Parmi les tendances lourdes figure l’automatisation et les tests en continu. Le CFTL (Comité français des tests logiciels) a d’ailleurs publié un ouvrage sur les problématiques d’automatisation, avec quatre principaux avantages : le gain financier, le gain de temps, l’implémentation d’une intégration continue dans une démarche DevOps et l’amélioration de la qualité.

Une autre approche des actifs des entreprises

La vision des actifs d’une entreprise a évolué : l’approche historique consistant à considérer que ceux-ci se limitent aux éléments financiers et aux actifs physiques a laissé progressivement la place à la prise en compte des actifs immatériels (logiciels, données, brevets, marques…). Mais cette distinction n’est pas suffisante. Aux actifs physiques et immatériels, il faut ajouter une troisième catégorie : le patrimoine de process. Les premiers sont facilement mesurables (avec les normes comptables et des prix de marché, par exemple ceux de l’immobilier ou des machines…). Les deuxièmes sont visualisables (à travers un site Web ou une interface utilisateur, par exemple), mais le troisième n’est ni aisément mesurable, ni visualisable. C’est dans cette dernière catégorie que l’on trouve les tests logiciels, pour lesquels on remarquera d’ailleurs que les études de marché sont beaucoup plus rares…

Si l’on retient une analogie avec un véhicule automobile, le patrimoine financier correspond à son prix sur le marché, facile à établir, le patrimoine immatériel à son confort (facile à visualiser et à percevoir, mais plus difficilement mesurable) et le patrimoine de process à tout ce qui a été fait pour que le véhicule fonctionne de façon optimale, par exemple tous les tests effectués pour vérifier le bon fonctionnement des différents équipements. Tout comme un dirigeant d’entreprise connaît le patrimoine financier de son organisation, a une idée relativement précise de ses actifs immatériels, mais ignore souvent les processus mis en œuvre, le possesseur d’un véhicule automobile en connaît le prix, sait qualifier le confort, mais n’a aucune idée du nombre de tests réalisés pour que le produit fini lui donne satisfaction.

C’est bien là le problème, car cela conduit à occulter une partie des sources de création de valeur ! Un patrimoine de tests bien entretenu ne crée-t-il pas autant de valeur pour une organisation, voire plus, qu’une opération d’ingénierie financière ou l’implémentation d’une nouvelle version de logiciel ? La question mérite d’être posée… Mais la plupart des organisations ne le font pas, pour plusieurs raisons. D’abord, parce que les tests sont encore considérés comme un sujet exclusivement technique. Ensuite, parce qu’ils sont encore vus comme un centre de coûts, un mal nécessaire, et non pas comme un réel levier de création de valeur, même si, heureusement, cette opinion évolue. Enfin, du fait de la dilution des responsabilités, même si les métiers du test s’étoffent et se professionnalisent.

Les exigences de transformation digitale et la crise sanitaire ont déjà et vont rebattre de plus en plus les cartes. Les entreprises doivent ainsi innover davantage, accélérer le Time to Market, diversifier et personnaliser leurs offres, répondre aux exigences de qualité de leurs clients, moderniser les applications existantes, devenir plus agiles et « faire plus avec moins ». Les tests, sans lesquels les entreprises ne peuvent réussir ces challenges, sont au cœur de ses problématiques.

Comment faire ? Plusieurs principes sont à retenir :

  • Visualiser. Même si elles ne le savent pas, toutes les entreprises ont un patrimoine de tests. Pour en prendre conscience, pourquoi ne pas visualiser, sous forme graphique, ce qui est resté trop longtemps dans l’ombre ? Cela présente trois avantages. D’abord, de ne plus considérer les tests comme une « boîte noire ». Les tests deviennent ainsi lisibles et visibles… Ensuite, de prendre conscience des volumes réels de tests, très souvent sous-estimés. Enfin, de mieux comprendre les liens et enchaînements entre les différents tests, grâce à une cartographie précise, à des analyses d’impact et à l’élaboration de scénarios de tests pertinents.
  • Considérer les tests comme un accélérateur des grands projets. Dès lors que le patrimoine de tests est mieux connu, il est mieux valorisé, car ils favorisent l’agilité. C’est d’autant plus crucial que les entreprises sont contraintes de réduire leur Time to Market, à la fois en interne, pour délivrer des projets dans des délais réduits, et en externe, pour répondre aux exigences des clients et aux pressions concurrentielles. Cela suppose d’alléger la charge de développement par une automatisation accrue, qui élimine les redondances et améliore la qualité. Il est ainsi possible d’obtenir des gains de 50 % pour le temps d’exécution des tests et la réduction des tâches manuelles, et de 45 % dans l’élimination des redondances des tests.
  • Agir vite. Les entreprises doivent éviter d’aggraver l’écart entre, d’un côté, des projets qu’il faut délivrer de plus en plus rapidement et, d’un autre côté, un patrimoine de tests qui, s’il n’est pas géré, freine l’agilité indispensable. Heureusement, les leviers pour agir vite, en quelques semaines, et obtenir des résultats rapides existent.
  • Privilégier la simplicité. Il serait paradoxal de vouloir gagner en agilité pour répondre aux enjeux business des entreprises en conservant une certaine lourdeur dans les processus de tests. Sur ce point, l’alignement est indispensable ! L’objectif est de rendre les tests faciles à réaliser, en conservant leur qualité et leur performance.

Selon le World Quality Report 2021-2022, publié par CapGemini et Microfocus, « les tests ne sont plus considérés comme un obstacle dans le cycle de vie du développement logiciel, mais comme un facteur de réussite. Les entreprises sont désireuses d’utiliser les techniques d’intelligence artificielle (IA) et d’apprentissage automatique (ML) dans leurs programmes d’assurance qualité. »

Le rapport constate que les attentes en matière de tests et d’assurance qualité deviennent plus réalistes. Ainsi, les domaines clés de la stratégie informatique, tels que l’amélioration de l’expérience client (63 %), le renforcement de la sécurité (62 %), la réactivité aux demandes de l’entreprise (61 %) et la haute qualité des solutions logicielles (61 %), se voient accorder un poids à peu près égal.
La confiance envers le rôle de l’IA dans l’assurance qualité augmente

Les entreprises souhaitent de plus en plus mettre les techniques d’IA et de ML au service de leurs programmes d’assurance qualité. Le rapport révèle que près de la moitié des personnes interrogées (48 %) disposent d’un référentiel prêt à l’emploi de données d’exécution des tests requises par les plateformes d’IA et de machine learning. 42 % affirment que les chefs d’entreprise font confiance aux informations fournies par ces plateformes, et 46 % disent que leur entreprise est prête à agir sur la base des informations fournies par la plateforme d’IA/de ML. La confiance dans le rôle que joue l’IA dans l’assurance qualité est élevée, les projets sont solides, et les compétences et les boîtes à outils sont développées pour utiliser les techniques d’IA et de ML à bon escient dans ces programmes. Malgré cela, l’importance de l’IA dans l’assurance qualité n’a pas encore atteint le degré de maturité voulu. Selon le rapport, il existe un besoin croissant de compétences en matière de stratégie et de conception de tests pour l’IA. Cela montre que les entreprises commencent à comprendre la complexité de l’IA, les défis à relever pour en tirer parti et les difficultés à tester l’IA elle-même.

Capitaliser sur l’agilité et des services DevOps dans le domaine de l’assurance qualité

L’adoption de l’agilité et des services DevOps dans l’assurance qualité et les tests est une tendance continue. Les entreprises qui se sont concentrées davantage sur l’agilité et les services DevOps, telles que l’amélioration de la productivité, de la qualité des logiciels et des coûts, en récoltent déjà les fruits. Le rapport a révélé un réalignement significatif des facteurs considérés comme les plus importants par les professionnels interrogés pour une adoption réussie des services DevOps : plus de la moitié des répondants (52 %) reconnaissent que les priorités business de l’entreprise sont le facteur le plus décisif. Cela représente un bond de 11 points par rapport à l’année dernière. La pile technologique, en revanche, a perdu de son importance : 49 % seulement des répondants la placent en tête cette année, contre 65 % en 2020. Mais le manque d’expertise professionnelle en matière de tests dans les équipes agiles reste un défi. Alors que les frontières s’estompent entre les équipes de développement de logiciels et de test, les entreprises doivent se concentrer sur la collaboration et le développement des compétences de tous les employés responsables de la qualité.

Les tests du futur seront intelligents

Les équipes d’assurance qualité vont bientôt devenir une source de croissance rapide dans le domaine de l’industrie intelligente. Il est donc très utile d’y consacrer du temps, de l’énergie et un budget. En effet, les principaux moteurs de l’industrie intelligente comprennent l’amélioration de l’efficacité (47 %), l’augmentation de la qualité (46 %), une agilité et une flexibilité supérieures (44 %), et l’amélioration de l’expérience client (43 %). Pour ce faire, les premières étapes que les entreprises doivent franchir impliquent l’adhésion de la direction et la démonstration de la faisabilité. 42 % des personnes interrogées, une proportion non négligeable, ont également indiqué prévoir de mettre à niveau leurs laboratoires de tests existants en les dotant de capacités en matière de 5G, d’Internet des objets (IoT), d’IA et de systèmes autonomes, afin de faciliter cette évolution. Cela nécessite des investissements importants, en priorité dans les produits et services qui généreront le plus de valeur dans le plus court laps de temps, ainsi que dans les personnes.

Tests : quels indicateurs utiliser ?
Domaines Indicateurs à privilégier
Dénombrement des anomalies
  • Nombre de bugs majeurs/critiques en production
  • % de bugs majeurs/critiques détectés avant déploiement
  • Nombre de bugs détectés par test
Satisfaction
  • Satisfaction des utilisateurs/usagers (enquêtes, notes de store, retours clients, commentaires forum…)
Analyse des anomalies
  • % des régressions dans les bugs en production
  • % des anomalies liées à des composants/modules particuliers du logiciel
  • % des anomalies liées aux interfaces (internes et/ou externes)
  • % des anomalies liées à des critères non fonctionnels
  • % d’anomalies liées à des problèmes hardware
Anomalies non fonctionnelles
  • Nombre de warnings de sécurité majeurs ou critiques
  • Temps de réponse conforme sur les requêtes
  • Temps de réponse avec un nombre d’utilisateurs défini (charge)
  • Taux de dégradation des performances sur une période donnée
  • % de pages avec un contraste de couleur suffisant
  • % des OS du parc mobile couverts par les tests
  • % des terminaux du parc mobile couverts par les tests
  • % de couverture du parc mobile (OS/terminal) des utilisateurs cibles
  • % de contenu non textuel avec équivalent textuel
  • % d’actions avec raccourci clavier
  • % de médias (audios, vidéos…) avec transcription textuelle
  • % d’actions exécutables directement au clavier…
Tests en développement
  • % de tests en échec lors d’une première validation
  • % de réouverture de bugs-régressions de corrections
  • % d’anomalies mal corrigées
Couvertures
  • % de couverture des fonctionnalités selon la campagne de tests
  • Taux de couverture de code (instructions, branches…)
  • Taux de couverture des spécifications (exigences, partitions d’équivalence, valeurs limites…)
  • Autres couvertures (anomalies, risques, terminaux…)
Délais et coûts
  • Délai de correction d’un bug découvert en production par criticité
  • Coût des tests par bug bloquant et majeur détecté
  • Durée des campagnes de test
  • Charge de test par rapport à la charge globale
  • ROI des tests
  • Productivité des tests
Source : Tout sur les indicateurs dont vous êtes le héros, Altran, conférence lors de la JFTL (Journée française des tests logiciels) 2021.

Les avantages de l’automatisation des tests

Automatiser les tests procure plusieurs avantages, selon le World Quality Report de CapGemini :

  • Un meilleur contrôle et une meilleure transparence des activités de tests (69 % des entreprises).
  • Une réduction du cycle de vie des tests (65 %).
  • Une réduction des coûts des tests (62 %).
  • Une réduction des risques (62 %).
  • Une meilleure couverture des tests (58 %).
  • Une détection plus performante des défauts (57 %).
  • Une réutilisation plus facile des cas de tests (57 %).