La vitesse par rapport à l'état d'esprit de qualité entraîne des lacunes dans les tests de logiciels

La vitesse par rapport à l’état d’esprit de qualité entraîne des lacunes dans les tests de logiciels

Les tests de logiciels corrigent les bugs et les vulnérabilités avant qu’ils n’affectent les utilisateurs, mais la ruée vers la ligne d’arrivée, semée d’obstacles tels que de faibles budgets, des sprints incrémentiels et de mauvaises décisions de gestion, peut entraver la qualité du déploiement du code.

Les tests valident que le logiciel fonctionne comme prévu, en identifiant les vulnérabilités et en minimisant les bogues avant que le code ne soit déployé en production. Les outils de test automatisés tels que Selenium, JUnit ou Grinder utilisent des scripts basés sur du code pour examiner les logiciels, comparer les résultats des exécutions et rapporter les résultats. Cependant, malgré la grande disponibilité de ces outils, la plupart des codes arrivent en production sans avoir été testés ; les facteurs contributifs incluent une pénurie de développeurs, un manque de compétences parmi les équipes de test et de mauvaises décisions commerciales, selon les analystes du secteur.

“Le logiciel n’est pas testé simplement parce que le test [is costly]cela prend du temps et des ressources, et les tests manuels ralentissent le processus de développement en cours », a déclaré Diego Lo Giudice, vice-président et analyste chez Forrester Research.

Les développeurs ne testent à l’unité que 50 % de leur code ; Les experts en la matière (PME) testeurs n’automatisent qu’environ 30% de leurs cas de test fonctionnels, ce qui n’a rien à voir avec la complexité du code, a déclaré Lo Giudice.

“Les compétences, le coût et le temps sont les raisons”, a-t-il déclaré.

Le coût total d’un logiciel de mauvaise qualité dépasse 2 000 milliards de dollars par an, dont 1 560 milliards de dollars en pannes opérationnelles et 260 milliards de dollars en projets informatiques échoués, selon le Consortium pour l’information et la qualité des logiciels (CISQ), une organisation à but non lucratif qui développe des normes de qualité des logiciels.

La plupart des codes de production ne sont pas soumis à des tests logiciels.

Mais il y a plus que de l’argent en jeu. “Pour les entreprises qui font du commerce électronique, lorsque le système tombe en panne, elles perdent de l’argent, puis elles perdent leur réputation”, a déclaré Christian Brink Frederiksen, PDG de Leapwork, une plateforme d’automatisation des tests sans code. Cela peut entraîner des problèmes de fidélisation de la clientèle, a-t-il déclaré.

Cependant, certains PDG portent des œillères en matière de qualité logicielle. “Si vous parlez à un PDG de tests, vous pouvez voir ses yeux se dire : ‘Vraiment, eh bien, qu’est-ce que c’est ?'”, a-t-il déclaré. “Mais s’ils ont subi une panne sur leur plate-forme de commerce électronique et quelles en ont été les conséquences, alors c’est une autre histoire.”

Les tests de logiciels complexes nécessitent des compétences complexes

Les tests de logiciels posent des problèmes de compétences car les gens doivent rechercher des vulnérabilités inconnues et essayer de prédire où les systèmes pourraient échouer, a déclaré Ronald Schmelzer, associé directeur de la gestion de projet cognitif pour la certification IA chez Cognilytica.

Cependant, il y a une pénurie de talents techniques possédant les compétences de test nécessaires. Alors que la demande des employeurs pour les talents technologiques augmente de façon exponentielle, le nombre de développeurs et de programmeurs reste stable, créant une concurrence intense entre les employeurs pour embaucher du personnel qualifié, selon le PDG de Quickbase, Ed Jennings, dans une interview en mai.

En plus du manque de compétences, les tests nécessitent la répétition de tâches pour assurer la couverture de tous les domaines et pour vérifier que les bugs précédents n’ont pas refait surface après les mises à jour, a déclaré Schmelzer.

La couverture et la recherche de bogues deviennent plus difficiles pour le codage à l’échelle du système ou les violations des meilleures pratiques architecturales, a déclaré Bill Curtis, vice-président principal et scientifique en chef chez Cast Software et directeur exécutif du CISQ. Si une violation est contenue dans un seul module ou composant, un correctif peut être testé relativement facilement, mais les violations au niveau du système, impliquant des interactions défectueuses entre plusieurs composants ou modules, nécessitent des correctifs dans plusieurs composants du système, a-t-il déclaré.

“Souvent, des correctifs sont apportés à certains composants défectueux, mais pas à tous, pour constater que des problèmes opérationnels persistent et que d’autres composants défectueux doivent être corrigés dans une future version”, a-t-il déclaré.

Les pressions commerciales et les méthodologies contribuent

Mais alors que les pressions commerciales telles que le maintien d’un avantage concurrentiel ou le lancement à temps contribuent au problème des tests de logiciels, les méthodologies de développement sont également en partie à blâmer, a déclaré Frederiksen de Leapwork.

“Le problème central des tests de logiciels est que les entreprises ont probablement rationalisé l’ensemble de l’approche de développement de logiciels avec des méthodes comme Agile ou CI/CD”, a déclaré Frederiksen. Cela donne la fausse impression que le code prêt pour le déploiement a également été optimisé, a-t-il expliqué.

Cela ne signifie pas qu’une méthodologie est pire ou meilleure qu’une autre. “Avec Waterfall, les tests n’ont pas été plus performants, en termes de nombre de tests, avant que le logiciel n’entre en production, par rapport aux tests effectués en Agile”, a déclaré Lo Giudice de Forrester.

Les tests et le contrôle de la qualité sont souvent une réflexion après coup et le personnel est rare. C’est ce qui retarde le démarrage du code.

holger müllerVice-président et analyste, Constellation Research

Mais Agile peut aggraver les écarts de test car les gens se concentrent trop sur le temps de mise en œuvre plutôt que sur la qualité, selon Holger Mueller, vice-président et analyste chez Constellation Research.

Les systèmes qui sont presque impossibles à réparer après leur déploiement, tels que les satellites ou les logiciels de guidage de missiles, nécessitent une preuve à 99,999 %, a-t-il déclaré.

“Les logiciels d’entreprise et les logiciels grand public sont souvent les plus négligés, avec MVP [minimum viable products] ils sont souvent publiés sous la pression du temps », a déclaré Mueller, faisant référence au principe Lean de développer rapidement un produit avec suffisamment de fonctionnalités ainsi que l’attente de futures mises à jour et corrections de bogues.

“Les tests/AQ sont souvent une réflexion après coup et manquent de personnel. C’est ce qui retarde le déploiement du code”, a-t-il déclaré.

Cela ne signifie pas que les équipes doivent jeter leur méthodologie de l’eau du bain, a déclaré Mueller, mais un effort est nécessaire pour s’assurer que les systèmes sont entièrement testés.

“Bien que vous puissiez créer du code de manière incrémentielle, il y a des limites aux tests incrémentiels. À un moment donné, les logiciels doivent être testés de manière holistique… le test” des noix et du beurre “”, a déclaré Mueller. Les testeurs doivent installer l’application complète, vérifier que le code fonctionne, puis désinstaller et rechercher les problèmes, par exemple en s’assurant que les informations personnellement identifiables sont supprimées.

“Fondamentalement, le contrôle qualité doit suivre tout le cycle de vie du client dans le produit”, a-t-il déclaré.

#vitesse #par #rapport #létat #desprit #qualité #entraîne #des #lacunes #dans #les #tests #logiciels

Leave a Comment

Your email address will not be published.