Fermer

janvier 12, 2021

Les arguments en faveur des tests sans code


Les tests low-code ou sans code vivent en dehors de votre base de code et peuvent être gérés par des parties prenantes non techniques. Quels sont les avantages et les limites?

Il y a quelques années, j'ai donné plusieurs conférences lors de conférences sur les logiciels sur le test de microservices . Alors que la plupart des ingénieurs qui ont assisté aux discussions ont convenu que les tests étaient importants, seule la moitié environ écrivaient régulièrement des tests automatisés.

Certains de ces ingénieurs avaient des équipes de test dédiées, mais la majorité a cité le «manque de temps» comme raison pour laquelle ils ne pouvaient pas pour rédiger des tests automatisés. Je ne suis pas le seul ingénieur logiciel à avoir observé ce problème:

«L’automatisation des tests est essentiellement un autre projet de développement logiciel. De nombreuses équipes ne sont pas en mesure d’assumer cette responsabilité. Soit ils devront allouer du temps à leurs développeurs existants pour contribuer et maintenir cela, soit embaucher des codeurs supplémentaires. C'est un énorme investissement. » – Angie Jones, Developer Relations chez Applitools

Il existe également des données qui le corroborent. Un rapport Forrester 2020 sur les outils de test souligne le même problème:

«Beaucoup de gens pensent que les développeurs font plus de tests ou le feront. Cependant, les données de l'enquête Forrester suggèrent que cela ne se produit pas assez rapidement et que les développeurs passent trop peu de temps à tester. »

Les tests automatisés sont presque toujours un bon investissement . Selon une étude IBM de 2008 les bogues sont 15 à 100 fois plus coûteux à corriger lorsqu'ils sont testés par l'utilisateur ou en production. Malgré toutes les preuves indiquant la valeur des tests, les développeurs n'en écrivent toujours pas autant qu'ils le souhaiteraient.

Si vous êtes un chef d'équipe technologique, la prochaine question évidente est: «Que pouvez-vous y faire? »

La pyramide des tests

En supposant que votre objectif est d'améliorer la qualité du logiciel et que vous pensez que les tests peuvent vous aider, votre prochaine étape est de décider quels types de tests vous devez adopter. Un modèle mental utile pour cela est appelé la pyramide de test .

 La pyramide de test Coût et temps, de haut en bas: unité, intégration, acceptation, bout en bout [19659003] En règle générale, les développeurs ont pris la pyramide des tests comme signifiant qu'ils devraient se concentrer sur les tests unitaires, mais les tests unitaires ont une valeur limitée en eux-mêmes. «Les tests unitaires sont rapides», m'a dit Iliyan Panchev, chef de produit chez Test Studio «ils peuvent donc être la base de vos tests. Mais si toutes les transactions commerciales s'effectuent via l'interface utilisateur, les tests visuels sont la priorité absolue. »

Votre stratégie de test dépend également du type d'application que vous créez. Alors que les outils logiciels «sans code» deviennent de plus en plus populaires il est essentiel de se demander comment la vision traditionnelle de la pyramide de test tient le coup.

«Si vous créez une application Web complète à partir de zéro, alors Je pense que la Pyramide de Test est toujours un schéma solide », a déclaré Justin Klemm, PDG de Ghost Inspector . "Mais peut-être que vous venez d'avoir un site Web WordPress avec un thème personnalisé et des plugins de commerce électronique … Allez-vous écrire des tests unitaires? Est-ce même possible? »

Qu'est-ce que les tests sans code?

Quand vous regardez la pyramide des tests, cela peut être intimidant. En tant que responsable de l'ingénierie, je suis toujours à la recherche de moyens d'utiliser la technologie pour résoudre des problèmes comme celui-ci, et je suis particulièrement enthousiasmé par les tests «low-code» ou «sans code».

Similaire aux logiciels sans code , les outils de test sans code offrent des abstractions de plus haut niveau pour l'écriture de tests . La plupart des plates-formes de test sans code proposent des enregistreurs de test visuels pour les tests de bout en bout, mais beaucoup incluent également des interfaces de niveau inférieur permettant aux ingénieurs d'écrire des tests ou des sélecteurs personnalisés.

Par exemple, des outils comme Ghost Inspector et Telerik Test Studio proposent des enregistreurs et éditeurs de test basés sur un navigateur. Cela donne aux ingénieurs de test la possibilité de créer des tests en cliquant sur leurs applications dans un navigateur, puis en ajustant les tests générés automatiquement avant de les exécuter.

D'autres outils de test sans code comme Perfecto s'appuient sur l'intelligence artificielle pour automatiser le processus d'écriture et de maintenance des tests. Bien qu'il y ait certainement un certain battage médiatique dans le domaine de l'IA, ces outils continueront de s'améliorer au cours de la prochaine décennie.

«Avec la demande toujours croissante des utilisateurs pour la qualité et la pression du marché hautement concurrentiel, l'avenir des tests est maintenir une efficacité extrêmement élevée des ingénieurs de test et des développeurs. » – Iliyan Panchev, chef de produit, Progress Telerik Test Studio

Raisons d'adopter les tests sans code

Les plates-formes de test sans code peuvent éliminer certaines des barrières qui entravent aujourd'hui l'automatisation des tests. À mesure que le nombre d'outils de test sans code augmente, les équipes d'ingénierie logicielle ont de nombreuses raisons de compléter ou de remplacer leurs solutions de test de bout en bout existantes.

Voici cinq raisons d'envisager les tests sans code dans votre cycle de vie d'assurance qualité aujourd'hui:

1 . Améliorer la couverture du code

Si vous avez actuellement du mal à améliorer la couverture des tests dans votre application, les tests de bout en bout peuvent être un bon point de départ. Lorsque j'ai hérité d'une application héritée il y a quelques années, j'ai commencé le processus de refactoring en ajoutant des tests de bout en bout. Nous avons commencé le processus avec Mink – un cadre de test BDD basé sur du code – mais nous sommes rapidement passés à un outil de test sans code pour certaines des raisons ici.

Cette stratégie de test sans code nous a permis d'écrire des tests s'assurer que les éléments critiques de l'application fonctionnaient (comme les flux de travail de connexion, de paiement et d'enregistrement des utilisateurs) pendant que nous refactorions les composants internes. Finalement, nous avons divisé l'application en microservices et un framework frontend moderne, tout en maintenant nos tests sans code en dehors de l'application.

2. Courbe d'apprentissage inférieure

En tant que développeurs de logiciels, nous avons beaucoup de choses à suivre. De nouveaux frameworks, langages et meilleures pratiques émergent constamment – en particulier dans le développement Web – donc prendre le temps d'apprendre un outil d'automatisation de navigateur de bas niveau est souvent difficile à prioriser.

«Le plus grand obstacle que nous voyons qui empêche les organisations d'adopter les tests automatisés sont une courbe d'apprentissage abrupte qui met la responsabilité sur une équipe d'ingénieurs qui est souvent déjà surchargée. – Justin Klemm, PDG de Ghost Inspector

Les plates-formes de test sans code sont généralement basées sur l'interface graphique, et les développeurs de logiciels peuvent probablement les récupérer en un après-midi. Alors que la plupart des outils de test sans code que j'ai rencontrés sont conçus pour être gérés par des ingénieurs ou des développeurs d'assurance qualité, certains sont suffisamment simples pour que les propriétaires de produits ou les analystes commerciaux les utilisent efficacement. «La majorité des utilisateurs de Telerik Test Studio ne sont pas techniques ou quelque peu techniques», m'a dit Panchev.

3. Minimiser la maintenance des tests

Les tests de bout en bout ont tendance à être les plus difficiles à tenir à jour. Si vous utilisez des sélecteurs CSS de bas niveau pour rechercher des éléments spécifiques sur la page, chaque petite modification apportée au DOM entraînera des dizaines de tests défectueux.

Alors que certains outils de test sans code souffrent du même problème, d'autres ne le font pas. . Par exemple, Telerik Test Studio comprend une détection d'élément hybride, qui peut trouver des éléments basés sur des requêtes de sélection complexes et, si nécessaire, des images. De cette façon, il est moins probable que vos tests échouent lorsque vous mettez à jour la hiérarchie de votre page. Cela enlève une charge considérable à votre équipe lors de la gestion des tests de bout en bout.

4. Boucles de rétroaction plus rapides

Les tests de bout en bout sont souvent les plus lents à exécuter car ils vous obligent à créer, compiler et exécuter l'ensemble de votre application. Dans certains cas, il n'est même pas possible d'exécuter la suite entière localement, donc les développeurs doivent pousser leur build sur un serveur CI et attendre les résultats avant de continuer.

De nombreuses solutions de test sans code sont hébergées en externe et vous permettent d'exécuter un tunnel pour tester votre application localement. Par exemple, Ghost Inspector peut utiliser ngrok pour accéder à votre build local et exécuter rapidement vos tests de bout en bout à l'aide de leurs ouvriers. Ils vous permettent également d'exécuter plusieurs instances de leurs agents de test pour accélérer le processus de test.

5. Les tests peuvent être maintenus indépendamment du code

Enfin, de nombreux outils de test sans code peuvent être utilisés en dehors de votre base de code existante. Cela signifie qu’ils n’ajoutent pas de frais généraux de maintenance, de bibliothèques à mettre à niveau ou de fusion de conflits pour rebaser. «Je pense que nous pouvons tous convenir que le code est une responsabilité», a noté Jones. «Moins il y a de code à écrire et à maintenir, mieux c'est.»

Les limites des tests sans code

Les sceptiques souligneront rapidement que les tests sans code sont rarement totalement exempts de code . En fait, de nombreuses plates-formes de test «sans code» permettent aux ingénieurs d'utiliser des fonctionnalités avancées en écrivant du code personnalisé. Il pourrait être plus précis d'appeler la plupart de ces outils des outils de test «low-code», mais «sans code» a tendance à être un surnom plus courant.

La réalité est qu'une approche hybride des tests – certains tests s'exécutant dans le code et d'autres dans des outils sans code – est probablement le plus utile. «Les outils [Codeless testing] ne sont qu'un moyen d'améliorer la couverture des tests et d'assurer une superbe expérience utilisateur», a affirmé Panchev. "Vous devez être très clair sur l'objectif commercial principal de votre application et définir la portée des tests en conséquence." Une approche hybride des tests donnera à votre équipe d'ingénieurs la puissance des intégrations et de la personnalisation de plate-forme avec la facilité d'enregistrement des tests dans leurs navigateurs.

Une autre limitation aux tests sans code aujourd'hui est que la plupart d'entre eux (à l'exception de Telerik JustMock ) se concentre sur les tests de bout en bout. Ceux-ci n'excluent pas la nécessité de tests unitaires ou d'intégration de niveau inférieur, et ils nécessitent toujours une maintenance, en particulier si l'interface utilisateur de votre application change radicalement.

Enfin, comme l'utilisation de tout outil tiers, les développeurs doivent tenir compte du risque de verrouillage du fournisseur . Faire confiance à un fournisseur tiers pour gérer vos tests vous offrira de nombreuses fonctionnalités à faible coût, mais il se peut qu'il ne soit pas possible de migrer hors de certaines plates-formes de test sans code.

Codeless Testing and the Future

Malgré cela

Les outils disponibles aujourd'hui sont utiles pour les tests de bout en bout, mais nous pourrions voir émerger plus d'outils de test unitaire sans code à l'avenir. En permettant aux membres non techniques de l'équipe de contribuer aux tests, ces outils continueront à raccourcir les cycles de rétroaction et à améliorer la coopération entre les développeurs et les chefs de produit tout au long du processus de développement logiciel.

Enfin, si vous supposez que l'intelligence artificielle continuera à s'améliorer dans le dans les années à venir, il est assez sûr de parier que davantage de données apparaîtront dans les outils de test sans code. «Nous avons beaucoup entendu parler de la technologie [AI and ML] qui entre régulièrement dans le monde des tests», a déclaré Panchev, «Mais je crois que la valeur réelle et l'innovation ici restent à voir.»

Nous sommes toujours dans les premiers jours des tests sans code, il est donc passionnant d'imaginer ce que cette tendance va réserver pour l'avenir de notre industrie. J'adorerais entendre ce que vous pensez, alors n'hésitez pas à laisser un commentaire ci-dessous.





Source link