Catégories
Start-up et applications

Les tests continus ne sont plus facultatifs

Les pratiques DevOps et CI / CD arrivent à maturité alors que les organisations continuent de réduire les cycles de livraison des applications. Un obstacle courant à la réalisation des objectifs de délai de mise sur le marché est le test, soit parce qu'il n'a pas encore été intégré à l'ensemble du SDLC, soit que certains types de tests sont encore effectués tardivement dans le SDLC, tels que les tests de performances et les tests de sécurité.

Recherche Forrester Le vice-président et analyste principal, Diego Lo Giudice, estime que seulement 20% à 25% des organisations effectuent actuellement des tests en continu (CT), et même leurs équipes n'ont peut-être pas atteint le niveau d'automatisation souhaité.

«J'ai de très grandes organisations américaines qui disent:« Nous faisons une livraison continue, nous avons automatisé les tests unitaires, nous avons automatisé les tests fonctionnels, nous avons déplacé ces parties des tests vers la gauche, mais nous ne pouvons pas laisser les tests de performance jusqu'à la fin car cela rompt le cycle », a expliqué Lo Giudice.

Le point entier de décalage vers la gauche est de minimiser le nombre de bogues qui traversent l'AQ et la production. Cependant, pour y parvenir, il ne suffit pas que les développeurs effectuent davantage de types de tests. Il s'agit également de bénéficier de l'expertise des testeurs tout au long du cycle de vie.

«L'ancienne façon de faire l'AQ est brisée et inefficace. Ils se concentrent simplement sur le contrôle de la qualité, qui détecte simplement les bogues après avoir été écrits. Ce n'est pas suffisant et c'est trop tard. Vous devez vous concentrer sur prévenir », a déclaré Tim Harrison, vice-président des services d'assurance qualité au sein du cabinet de conseil en assurance qualité logicielle. SQA². "QA 2.0 s'étend au-delà du contrôle de la qualité et dans sept autres domaines: la qualité des exigences, la qualité de la conception, la qualité du code, la qualité des processus, la qualité de l'infrastructure, la connaissance du domaine et la gestion des ressources."

Qu'est-ce qui retient les sociétés
La réalisation de CT est une question de personnes, de processus et de technologie. Alors que certaines équipes développant de nouvelles applications ont l'avantage de préparer CT dès le début, les équipes en transition peuvent avoir des problèmes de gestion du changement.

«Malheureusement, de nombreuses organisations qui embauchent directement leur assurance qualité n’investissent pas dans elles. Quelle que soit l'expérience et les compétences qu'ils acquièrent, c'est ce qu'ils trouvent dans le cours normal des affaires », a déclaré SQA2C'est Harrison.

Les entreprises ont tendance à investir davantage dans les talents de développement et la formation que dans les tests. Pourtant, la qualité des applications est également un problème concurrentiel.

"Les tests doivent devenir davantage une gestion qui implique une responsabilité et une responsabilité plus larges, donc ce ne sont pas seulement les testeurs ou le centre de qualité, ou le centre de test, mais aussi un objectif dans les équipes", a déclaré Lo Giudice de Forrester.

Les anciens systèmes et la dette technique qui leur est associée retiennent également les entreprises.

"Si vous avez une application héritée et disons qu'il y a 100 cas de test ou plus que vous exécutez sur cette application, juste en termes de tests de régression, vous devez prendre tous ces cas de test, les automatiser et ensuite comme vous faites des versions futures, vous devez construire les cas de test pour la nouvelle fonctionnalité ou les améliorations », a déclaré Alan Zucker, directeur fondateur du conseil en gestion de projet Les bases de la gestion de projet. "Si les cas de test que vous avez écrits pour la version précédente de l'application sont maintenant modifiés parce que nous avons modifié quelque chose, vous devez garder ces informations à jour."

Peut-être le plus grand obstacle à la réalisation de l'EC est la réticence de certains membres de l'équipe à s'adapter au changement parce qu'ils sont à l'aise avec le statu quo. Cependant, comme Lo Giudice de Forrester et certains de ses collègues l'avertissent rapport récent, "Les tests de logiciels traditionnels n'ont pas leur place dans la livraison d'applications modernes."

Offrez de la valeur plus rapidement aux clients
CT accélère la livraison de logiciels car le code ne rebondit plus entre les développeurs et les testeurs. Au lieu de cela, les membres de l'équipe travaillent ensemble pour faciliter des processus plus rapides en éliminant les frictions interfonctionnelles traditionnelles et en automatisant davantage le pipeline.

Manish Mathuria, fondateur et PDG d'une société de services d'ingénierie numérique Infostretch, a déclaré que les équipes d'ingénierie bénéficient d'un retour d'information instantané sur le code et la qualité fonctionnelle, d'une productivité et d'une vitesse plus élevées, de mesures qui mesurent l'efficacité de l'équipe et du déploiement, et d'une confiance accrue dans la qualité des applications à tout moment.

Les cycles internes plus rapides associés à une focalisation constante sur la qualité logicielle se traduisent par une livraison de valeur plus rapide et plus importante aux clients.

"Nous pensons que l'AQ doit être intégrée à une équipe, faire partie de la cérémonie pour Agile et Scrum, faire partie de la planification, poser des questions et obtenir des éclaircissements », a déclaré SQA2C'est Harrison. "Il est essentiel que l'AQ soit impliquée dès le début et fournisse ces précieux commentaires, car elle évite les bugs sur toute la ligne."

L'automatisation joue un rôle plus important
Les équipes de test automatisent les tests depuis des décennies, mais l'ère numérique nécessite encore plus d'automatisation pour garantir des cycles de publication plus rapides sans sacrifier la qualité des applications.

«Il faut du temps pour y investir, mais (l'automatisation) réduit les coûts car au fur et à mesure que vous parcourez les différents cycles, vous passez du développement au contrôle qualité au stade de la production au lieu de devoir exécuter ces cycles de régression manuellement, ce qui peut être très coûteux. , vous pouvez investir dans quelques heures-homme dans l'automatisation et ensuite simplement exécuter les scripts d'automatisation », a déclaré SQA2C'est Harrison. «C'est vraiment super précieux non seulement pour le cycle immédiat, mais pour la route. Vous devez savoir qu’une fonctionnalité ne fonctionne pas seulement bien maintenant mais aussi à l’avenir lorsque vous modifiez d’autres domaines de fonctionnalité. »

Cependant, on ne peut pas simplement «définir et oublier» l'automatisation des tests, en particulier compte tenu de la nature dynamique des applications modernes. Très souvent, les organisations constatent que les taux de réussite se dégradent au fil du temps, et si aucune action corrective n’est entreprise, le taux de réussite devient finalement inacceptable.

Pour éviter cela, SQA2 a un processus appelé «test basé sur le comportement», ou BBT, qui est un peu comme le développement axé sur le comportement (BDD) mais axé sur l'assurance qualité. C’est une façon de développer des cas de test qui garantissent une couverture quantitative complète des exigences. Si une exigence est incluse dans une base de test de type Gherkin, les différentes permutations des cas de test peuvent être extrapolées. Par exemple, pour tester un formulaire de connexion, il faut tester les combinaisons de nom d'utilisateur valide et invalide, de mot de passe valide et invalide et de soumissions par l'utilisateur de données valides et / ou invalides.

"Une fois que vous avez configuré cela, vous pouvez avoir un document évolutif des cas de test et cela vous permet d'être très rapide et agile au fur et à mesure que les choses changent dans l'application", a déclaré SQA2C'est Harrison. «Cela conduit également à l'automatisation, car vous pouvez élaborer l'automatisation directement à partir de ces contextes, événements et résultats.»

Si quelque chose devait être ajouté au formulaire de connexion fictif mentionné ci-dessus, on pourrait simplement ajouter un autre contexte dans l'instruction donnée, puis écrire un petit extrait de code qui automatise cette partie. Tous les cas de test dans l'automatisation sont mis à jour avec le nouvel ajout, ce qui simplifie la maintenance de l'automatisation.

"L'AQ ne prend pas de retard car elle est en fait capable de suivre le rythme du développement et de fournir cette automatisation en continu tout en maintenant des taux de réussite élevés", a déclaré Harrison.

La virtualisation des services fait gagner du temps
La virtualisation des services est un autre accélérateur de vitesse, car on n'attend plus que les ressources soient provisionnées ou en concurrence avec d'autres équipes pour accéder aux ressources. On peut simplement simuler ce qui est nécessaire dans un outil de virtualisation de services.

«Je me souviens avoir travaillé sur une application critique une fois où tout s'était bien passé lors des tests, puis lorsque nous avons déplacé les changements d'application vers prod, les choses se sont arrêtées parce que les configurations dans l'environnement supérieur et inférieur différaient», a déclaré Zucker de Project Management Essential. . "Avec la virtualisation des services qui s'en va."
Dans le contexte de CT, la virtualisation des services peut démarrer automatiquement, déclenchée par un développeur poussant une fonctionnalité vers une branche.

"Si vous effectuez des tests d'intégration sur une fonctionnalité et que vous modifiez quelque chose dans l'API, vous pouvez savoir qu'un nouveau bogue est affecté par le changement de fonctionnalité qui a été soumis. Cela rend les tests à la fois plus rapides et plus fiables », a déclaré Harrison de SQA2. "Vous êtes en mesure de localiser les problèmes, de comprendre qu'ils sont affectés par la nouvelle fonctionnalité et d'être en mesure de transmettre ces commentaires aux développeurs beaucoup plus rapidement."

Mathuria d'Infostretch considère la virtualisation des services comme une «exigence clé».

«La virtualisation des services joue un rôle clé dans l'élimination de la dépendance directe et aide les membres de l'équipe à avancer dans leurs tâches», a déclaré Mathuria. «Les ingénieurs en automatisation logicielle lancent le processus d'automatisation de l'application en se moquant des systèmes dorsaux, que ce soit l'interface utilisateur, l'API, les points de terminaison ou l'interaction de la base de données. La virtualisation des services automatise également certains des scénarios de périphérie. »

L'IA et l'apprentissage automatique sont l'avenir
Les fournisseurs ont déjà commencé à intégrer l'IA et l'apprentissage automatique dans leurs produits afin de faciliter des tests continus plus efficaces et d'accélérer encore plus les cycles de livraison des applications. La plus grande valeur vient de la reconnaissance des formes identifiant les zones problématiques et fournissant des recommandations pour améliorer l'efficacité et l'efficience des tests.

Par exemple, Mathuria d'Infostretch a observé que l'IA et l'apprentissage automatique aident à l'optimisation des tests, des recommandations sur la réutilisabilité de la base de code et l'analyse de l'exécution des tests.

"Comme les suites de tests augmentent de jour en jour, il est important d'atteindre le bon niveau de couverture avec une suite de régression minimale, il est donc très important de s'assurer qu'il n'y a pas de scénarios de test redondants", a déclaré Mathuria de l'optimisation des tests.
Étant donné que l'exécution des tests produit un grand ensemble de fichiers journaux, l'IA et l'apprentissage automatique peuvent être utilisés pour les analyser et donner un sens aux différents journaux. Mathuria a déclaré que cela aide à la catégorisation des erreurs, aux problèmes d'installation et de configuration, aux recommandations et à la déduction de modèles spécifiques.

Harrison de SQA2 a été impressionné par les capacités d'analyse de structure de page Web qui apprennent un site Web et peuvent détecter un changement de rupture par rapport à un changement prévu. Cependant, il a averti que si des XPaths avaient été utilisés, comme pour se référer à un bouton qui vient de se déplacer, l'outil peut automatiquement mettre à jour l'automatisation en fonction du changement, créant plus de XPaths cassants que prévu.

Les cas d'utilisation de l'IA et de l'apprentissage automatique sont pratiquement illimités, mais ils ne remplacent pas en gros le personnel de contrôle de la qualité. Ce sont des capacités «d'assistance» qui aident à minimiser les compromis qualité-vitesse.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *