La pandémie a considérablement accéléré la transformation numérique et les logiciels sont devenus essentiels à notre mode de travail, de vie et d'apprentissage. Le monde devenant de plus en plus numérisé et dépendant des produits numériques, la qualité des logiciels est devenue primordiale.
Le passage au numérique ne montrant aucun signe de ralentissement, l'innovation et le développement basés sur les logiciels vont se poursuivre. En 2020, on estime que les problèmes liés à la piètre qualité des logiciels auront coûté à l'économie américaine la somme astronomique de 2 000 milliards de dollars; les entreprises doivent donc trouver un moyen d'équilibrer vitesse de mise sur le marché et qualité des logiciels.
1Pourquoi la qualité des logiciels est-elle importante ?
Au cours de la dernière décennie, les organisations se sont efforcées de mettre à jour de nouvelles applications et de nouveaux services le plus vite possible pour répondre à la demande et soutenir la transformation numérique. Cependant, la pression accrue en faveur de la vitesse de livraison a souvent entraîné une détérioration de la qualité des logiciels.
En effet, cette dernière est essentielle dans un monde où le numérique est roi. Par exemple, une faille non détectée peut déclencher des pannes système, et une mauvaise configuration des plateformes cloud peut entraîner une violation ou une perte de données. Les défauts logiciels augmentent considérablement le coût du développement. Et, une fois que le logiciel est publié, le coût liés à la recherche et à la correction des problèmes est nettement plus élevé que pendant la phase de conception/développement.
2Comment les entreprises peuvent-elles améliorer la qualité de leurs logiciels ?
Le développement rapide de logiciels requiert de prioriser les tests et le suivi afin de fournir une expérience numérique (omnicanale) de haute qualité et sans accroc pour satisfaire les utilisateurs. Les plateformes de test de logiciels de nouvelle génération y contribuent grâce aux innovations en matière d'intelligence artificielle (IA). Ces outils tirent des enseignements de l'utilisation des applications en conditions réelles, des modèles de bogues historiques et déterminent les comportements d'applications qui engendrent le plus de bénéfices. Ces plateformes automatisent des tests qui ciblent les parcours des utilisateurs dans l'application les plus importants pour le succès de l'entreprise. Cette automatisation intelligente des tests de bout en bout dans un cadre DevOps permet aux entreprises de fournir des logiciels de meilleure qualité, plus rapidement, tout en déchargeant les équipes humaines des tâches les plus chronophages sans valeur ajoutée.
3Quel est l'impact de l’approche DevOps sur les stratégies de test ?
Le DevOps consiste à briser les silos entre les différentes équipes pour coordonner, collaborer et fournir rapidement des produits plus fiables et de meilleure qualité. Avec une philosophie DevOps, les équipes peuvent avoir confiance dans les applications qu'elles construisent, répondre aux besoins des clients et atteindre plus rapidement les objectifs commerciaux.
Le succès du DevOps est intrinsèquement lié à l'automatisation des tests. En effet, les tests manuels ne peuvent pas répondre à la quantité de mesures nécessaires pour suivre la multiplication des mises à jour. Cependant, il ne suffit pas d'automatiser une poignée de tests ou de processus administratifs. Pour réussir dans l'ère numérique, les ingénieurs de développement et d'automatisation des tests doivent collaborer avec l'équipe d'exploitation pour s'assurer que les logiciels et les applications atteignent leur objectif ultime, à savoir la satisfaction client.
4Comment l'IA modifie-t-elle les stratégies d'automatisation des tests ?
L'IA permet de dépasser le cadre des tests basés sur des règles. Elle utilise des algorithmes pour instruire efficacement les systèmes à partir de données volumineuses. Un outil d'automatisation des tests alimenté par l'IA peut imiter le comportement humain et réduire la contribution des testeurs humains pour des tâches fastidieuses et banales.
L'automatisation intelligente des tests évalue les fonctionnalités, les performances et l'ergonomie des produits numériques plutôt que de simplement vérifier le code. Elle intègre l'IA, le Machine Learning (ML) et l’analytique pour définir l'expérience utilisateur (UX); elle analyse les apps et les données réelles pour générer et exécuter automatiquement des parcours utilisateur. Il en résulte un moyen plus intelligent de tester en continu les logiciels et les apps, quel que soit leur support.
Les outils basés sur l'IA éliminent les doublons dans la portée des tests, optimisent les essais existants grâce à des tests plus prévisibles et accélèrent le passage de la détection des défauts à leur prévention. Ce qui, à son tour, améliore la qualité des logiciels.
5Pourquoi s'oriente-t-on vers la qualité continue ?
Avec le passage au numérique, les tests doivent évoluer d'un simple acte de vérification vers un processus de qualité continue. Les équipes doivent tenir compte de la qualité dans chaque phase du développement logiciel et automatiser les processus. La qualité continue consiste à adopter une approche systématique pour trouver et corriger les défauts logiciels tout au long du cycle de vie du développement logiciel (SDLC). Elle réduit le risque de failles de sécurité et de bugs en aidant à trouver et à corriger les problèmes le plus tôt possible.
6Pour améliorer la qualité des logiciels, faut-il ajouter des ressources techniques supplémentaires ?
L'IA rend le processus de conception, de développement et de déploiement des logiciels plus rapide, plus efficace et moins cher. Ce n'est pas que les robots remplacent les programmeurs. Au contraire, les outils alimentés par l'IA rendent les chefs de projet, les analystes commerciaux, les codeurs de logiciels et les testeurs plus productifs et plus efficaces, ce qui leur permet de produire des logiciels de meilleure qualité plus rapidement et à moindre coût.
7Quelles sont les tendances à venir en matière de qualité logicielle ?
L'importance de la qualité logicielle va continuer à croître à mesure que le passage vers des services numériques s'accélère. Chaque entreprise ou organisation doit surveiller en permanence la façon dont les utilisateurs interagissent pour s'assurer que les performances suivent les besoins. Voici 5 tendances qui, selon nous, se dessineront dans le monde de la qualité au cours des 3 prochaines années :
- Le Contrôle Qualité. Il tend à devenir un poste de profit plutôt qu'une fonction de conformité. Si un logiciel n'est pas innovant, s'il n'a pas une UX exceptionnelle, une fonctionnalité irréprochable et une grande réactivité, l’entreprise n’en tirera aucun bénéfice.. L’utilisation de la Qualité pour mesurer en continu, anticiper les succès ou les échecs, participe à la bonne santé économique d’une entreprise.
- L'expérience utilisateur (UX). Facteur clé de différenciation d’une entreprise, l’UX est une vitrine. Elle attire les clients et doit les retenir. Elle a tout intérêt à être excellente, sinon l’entreprise sera distancée.
- Les performances. Si on constate des retards de performance de plus de 3 secondes, le service rendu est médiocre. Or, les Millennials ont peu de patience, la génération Z en a encore moins ! 3 secondes, c'est la durée pendant laquelle les clients attendent avant de se diriger vers un concurrent. Des tests de charge et de performance améliorés et continus sont donc nécessaires pour garantir la réactivité et la performance du logiciel, de l’application ou du service.
- La némésis numérique. Les tests doivent devenir encore plus intelligents. A l’instar du jumeau numérique, la némésis numérique peut trouver efficacement les points faibles de n'importe quel système à l'aide d'une "ingénierie du chaos" alimentée par l'IA, les mettre en évidence et permettre de les corriger en avance de phase. Cela s'applique aux fonctionnalités, aux performances, à l'interface utilisateur mais aussi à la sécurité.
Par Dr Gareth Smith, Directeur Général de l'automatisation des tests logiciels chez Keysight