6 goulots d'étranglement courants des tests continus
Publié: 2021-08-09Les pratiques Agile et DevOps gagnent rapidement en popularité. De nombreuses entreprises adoptent ces méthodologies de développement logiciel pour fournir de nouveaux logiciels et des mises à jour rapidement et fréquemment. Étant donné qu'Agile utilise couramment des histoires d'utilisateurs et des exigences pour définir les fonctionnalités du produit, le logiciel publié offre progressivement de la valeur aux clients.
Par la suite, les tests continus ont également connu une augmentation sans précédent de la demande, car il s'agit du principal catalyseur pour fournir une qualité rapide.
Les tests logiciels continus sont l'exécution de combinaisons de tests dans le cadre du pipeline de livraison de logiciels, par opposition aux tests à la fin du cycle de vie de développement logiciel (SDLC). Il fournit un retour d'information basé sur les risques aussi rapidement que possible, à chaque phase du pipeline de livraison de logiciels. Les tests continus permettent au processus de développement logiciel d'avancer à un rythme rapide sans compromettre l'expérience utilisateur.
Freeform Dynamics a discuté des avantages des tests continus et des commentaires accumulés de 923 professionnels de l'informatique et des tests dans leur recherche, Continuous Testing as Digital Business Enabler. L'étude a révélé quelques statistiques intéressantes.
Environ 75 % des professionnels ont convenu de l'importance des tests continus dans le développement de logiciels. Cependant, seulement 20 % des personnes interrogées ont déclaré avoir un niveau approprié (plus de 80 %) de couverture d'automatisation des tests. De plus, environ 1 répondant sur 5 a déclaré qu'il s'appuyait toujours fortement sur les tests manuels.
Malgré ses nombreux avantages, la mise en œuvre de tests continus reste un défi pour une pléthore d'entreprises :
Analyse des tests continus et automatisés
L'un des plus grands défis des tests continus est d'étudier le volume massif de sortie généré très rapidement. La sortie est produite à partir de diverses sources, notamment de multiples outils de test, une analyse statique et dynamique, une couverture de code, des tests fonctionnels et de régression, etc.
L'analyse des tests prend beaucoup de temps et d'efforts, ce qui aurait pu être utile, par exemple, pour optimiser la suite de tests ou améliorer la couverture des tests. Cela peut prendre des heures pour déterminer si le test du logiciel d'automatisation a réussi ou non, ce qui nuit à l'objectif principal des tests continus mis en œuvre, c'est-à-dire accélérer la livraison du logiciel.
L'automatisation de l'analyse des tests peut résoudre ce problème dans une certaine mesure. De plus en plus de développeurs concentrent leur attention sur l'accélération de l'analyse des résultats pour accélérer l'ensemble du cycle de livraison.
Visibilité dans l'analyse des tests continus
Il est crucial pour les développeurs et l'équipe d'exploitation d'avoir une clarté vive dans l'analyse des tests. Bien qu'il soit essentiel de le déplacer vers la gauche ou de le tester au début du cycle de vie de l'application, cela ne suffit pas. Vous devez obtenir un retour continu des utilisateurs pour l'assurance qualité, ce qui n'est possible que par des tests de décalage à droite.
L'objectif principal des tests logiciels n'est pas seulement la performance du produit dans la phase de développement et l'environnement de test, mais il doit également se concentrer sur l'amélioration de sa convivialité. Vous avez besoin d'informations sur le comportement de l'application ou de la fonctionnalité en tant que produit final pour optimiser vos étapes initiales.
Par conséquent, vous devez non seulement vous déplacer vers la gauche pour intégrer les tests et détecter les problèmes plus tôt, mais également obtenir des données de la production pour comprendre les défauts potentiels du produit.
Longue durée de test
Étant donné que les tests continus consistent à mettre en œuvre différentes suites de tests à chaque niveau de l'architecture logicielle, la quantité de tests est monumentale. Alors que vous devez vous concentrer sur la couverture des tests, la couverture fonctionnelle et l'écriture de nouvelles lignes de code, vous devez également faire attention au temps d'exécution.

Des tests continus ont été introduits pour accélérer le processus de livraison sans affecter la qualité du logiciel. Par conséquent, il n'est pas pratique d'exécuter le test pendant quatre à cinq heures car cela retardera légèrement le retour d'information. Par conséquent, l'ensemble du pipeline de livraison ralentira.
Pour surmonter ce problème, vous avez besoin d'une vision plus globale de ce qui est essentiel et de ce qui est pertinent. La fonction Test Impact Analysis (TIA) peut augmenter la validation par la sélection automatique des tests. Pour un code source donné entrant dans le pipeline, TIA sélectionnera et exécutera uniquement le test requis pour valider le code. Ainsi, le test devient plus rapide et plus ciblé.
Suivi de nombreux déploiements
Les tests continus génèrent une dette de test. Différents tests sont déployés dans une journée pour évaluer la qualité du logiciel et détecter les bugs, ainsi que pour suivre les méthodologies Agile.
Cependant, il devient difficile de garder une trace de tous les tests mis en œuvre chaque jour. Si vous ne pouvez pas identifier l'efficacité des tests ou analyser comment les changements dans les itérations des tests influencent le risque commercial et l'expérience de l'utilisateur final, l'augmentation de la fréquence et de la vitesse devient sans importance.
Long et coûteux
L'automatisation des tests est l'élément clé d'un test continu efficace. Il permet à l'équipe d'analyser rapidement les performances des nouveaux tests et itérations.
Cependant, la création de scripts de test automatisés peut être longue et coûteuse. Il est donc essentiel pour les organisations d'optimiser leur utilisation.
Amir Ghahrai, vétéran de l'industrie de l'assurance qualité, a expliqué que les organisations doivent être conscientes de l'automatisation des domaines de test les plus bénéfiques. Vous pouvez adhérer au principe de la pyramide d'automatisation des tests pour tirer le meilleur parti des scripts de test.
La source
Les équipes doivent concentrer la majorité de leurs efforts d'automatisation sur les tests unitaires, qui se situent au bas de la pyramide. Au fur et à mesure que vous montez dans la pyramide, vous pouvez réduire l'automatisation pour optimiser vos investissements dans les scripts automatisés.
Résistance au changement
Enfin, malgré toutes les avancées en matière de développement et de test de logiciels, un pourcentage faible mais significatif de testeurs expérimentés refuse de mettre à jour leurs méthodes de test. La principale raison de la réticence à changer est les méthodes traditionnelles apparemment efficaces. En conséquence, au final, toute l'équipe subit les conséquences d'un ralentissement de la procédure de développement.
Marco Achtziger, architecte de test chez Siemens Healthcare, a parlé de cette question lors d'une conférence OOP 2015 en Allemagne. Il a suggéré que vous deviez rester solidaire et positif envers les membres implacables de l'équipe. Concentrez-vous non seulement sur les avantages du passage à la procédure avancée, mais également sur les avantages que le changement apportera à l'ensemble de l'équipe.
Les tests continus sont un atout important pour les organisations car ils peuvent accélérer le processus de développement de logiciels tout en atténuant les risques commerciaux. Les outils de test logiciel peuvent également faciliter la pratique des tests et aider à surmonter certains des défis associés à la méthode de test basée sur les commentaires.
Quels défis avez-vous rencontrés lors de l'intégration du test continu dans votre SDLC et comment les avez-vous surmontés ? Partagez votre histoire au profit de nos lecteurs qui ont du mal à intégrer les tests continus.