Découvrez GoogleTest certifié TÜV avec Agentic AI pour les tests C/C++ !
Plus de détails »
Blog Parasoft
Quelles sont les métriques les plus importantes lors de la mesure des tests de bout en bout ou de la qualité des logiciels ? Voici ce qu'en dit Diego Lo Giudice, vice-président et analyste principal chez Forrester Research.
Aller à la section
D'après les résultats de plusieurs études de marché, il est clair que les dirigeants de l'industrie s'accordent à dire que la qualité des logiciels est une priorité absolue pour offrir une valeur commerciale aux clients. Le défi est de savoir comment définir ce que cela signifie et comment y parvenir. Cela implique de sélectionner et d'appliquer des métriques appropriées à vos processus de développement et de test de logiciels.
Une façon d'améliorer la qualité des logiciels consiste à ajouter l'automatisation des tests à votre flux de travail de développement. Cela vous permet de décaler les tests plus tôt dans le cycle de vie, de trouver et de corriger les bogues plus tôt avec des tests plus robustes que ceux qui peuvent être effectués manuellement. Les tests de bout en bout impliquent l'application de plusieurs techniques de test pour traiter toutes les facettes de l'application, du code à l'interface utilisateur en passant par les API.
Nous avons récemment eu l'occasion de nous entretenir avec Diego Lo Giudice, vice-président et analyste principal chez Forrester Research, au sujet de son point de vue sur les indicateurs de qualité logicielle. Ses analyses d'expert sont présentées ici et disponibles en rediffusion dans le webinaire à la demande : « Offrir des expériences utilisateur exceptionnelles grâce aux tests de bout en bout et aux indicateurs pertinents ».
Q : Dans le webinaire « Offrir des expériences client exceptionnelles grâce aux tests de bout en bout et aux indicateurs clés » , vous avez mentionné que l’agilité et le DevOps sont les deux faces d’une même pièce. Comment ces pratiques aident-elles les entreprises à appliquer et à intégrer les tests de bout en bout dans leur flux de travail CI/CD ?
A: Agile et DevOps sont les deux faces d'une même pièce, ce qui signifie que l'une ne peut se passer de l'autre.
Pourquoi ?
Car si Agile aide à abattre le mur entre les équipes de développement et l'entreprise et accélère les choses tout en s'alignant sur les exigences, DevOps continue le travail entre les équipes de développement et les opérations d'I&O. Agile + DevOps apporte une agilité commerciale complète de bout en bout.
D'un point de vue organisationnel et pratique, Agile + DevOps doit supporter de déplacer les tests vers la gauche et de les intégrer à ce qui doit être fait dans le sprint. Si ce n'est pas le cas, la livraison/le déploiement continus ne peuvent pas avoir lieu. Les tests effectués tardivement rompront la boucle DevOps continue.
L'utilisation d'outils CI/CD dans Agile + DevOps peut désormais orchestrer un flux de travail où le code est archivé, les tests unitaires sont exécutés, les tests fonctionnels sont exécutés, les tests de performance sont exécutés et à chaque étape, en fonction de la couverture et de la réussite par rapport à la non réussite tests, des décisions automatiques peuvent être prises pour pousser le code vers l'avant ou vers l'arrière à l'équipe pour corriger et tester davantage.
Vous pouvez maintenant voir que nous avons remplacé ce qui était auparavant un long processus de gouvernance manuel par un flux de travail de test automatisé de bout en bout, qui aurait normalement nécessité de nombreux transferts, réunions de publication, etc. pour faire la même chose. Il réduit le temps de cycle de test en automatisant la gouvernance. C'est l'aide que les entreprises obtiennent.
Q : Au début de la présentation, vous avez noté que la qualité des logiciels est une préoccupation de la direction. De quelles manières le service informatique et les cadres peuvent-ils mesurer et quantifier la qualité le plus efficacement ? Quelles sont certaines des mesures les plus importantes pour les tests et la qualité des logiciels ?
A : Dans le cadre de la recherche sur les indicateurs d'application modernes qui comptent vraiment, les indicateurs de résultats les plus importants se concentrent sur la valeur commerciale. Cependant, les indicateurs de qualité sont des éléments qui permettent d'atteindre cette valeur commerciale.
Les métriques de qualité les plus importantes sont toujours les métriques qui mesurent la qualité du logiciel en production, c'est-à-dire les défauts échappés. Personne ne veut que les défauts atteignent la production car ils entraînent une perte de revenus, font la une des journaux avec une mauvaise réputation et ont un impact sur l'expérience utilisateur.
Les indicateurs habituels à suivre incluent la densité des défauts de code au niveau des tests unitaires, les défauts échappés du développement aux tests, le temps d'exécution de l'automatisation des tests, le nombre d'échecs de validation et le nombre d'échecs de tests d'automatisation. J'ajouterais à chacun d'eux des « tendances ».
La tendance à la vitesse d'exécution des tests automatisés est-elle à la baisse ? Si oui, cela pourrait être une indication de problèmes dans les tests.
Q : Vous avez également évoqué l'importance d'éviter une « mer d'indicateurs ». Alors, comment savoir si j'en ai trop ? Comment savoir lesquels supprimer ?
A : C’est là qu’interviennent des cadres comme les OKR (objectifs et résultats clés) ou le GQM (objectif, question, indicateurs). En respectant le principe selon lequel on ne peut gérer ce qu’on ne mesure pas, il faut décider de ce qu’il faut gérer.
Quels sont les objectifs de l'équipe (ou les objectifs du produit) ? À partir de là, dérivez les métriques utiles dont vous avez besoin. Il ne sert à rien d'avoir des mesures de performance si la performance n'est pas le principal problème de votre entreprise et n'est donc pas un objectif pour l'organisation.
Si au lieu de cela, le problème est lié à des bogues techniques, vous voudrez peut-être mettre dans la couverture des tests unitaires du tableau de bord et passer les métriques.
Q : Comment des métriques significatives peuvent-elles aider à justifier la valeur de l'automatisation des tests ?
A : Normalement, conformément au cadre mentionné ci-dessus, la qualité est un indicateur clé de la valeur ajoutée pour l'entreprise. C'est un point de départ sur lequel il convient de s'entendre avec les parties prenantes. Par conséquent, le remplacement des tests manuels par des tests automatisés accélérera le cycle de livraison, car le temps d'exécution des tests sera également réduit.
La durée globale du cycle de développement, même du cash au code, sera positivement impactée par l'automatisation des tests. La qualité augmente également si l'automatisation est correcte, car vous pouvez exécuter les mêmes tests (pensez à la régression) encore et encore. Vous construisez une fois mais exécutez plusieurs fois. Cependant, sachez à quel point l'automatisation peut être difficile, car le code et les systèmes mal codés peuvent être difficiles à tester unitairement. Ou si un test n'a pas besoin d'être répété, pourquoi l'automatiser ? Bien que cela arrive rarement, surtout en Agile.