Découvrez comment intégrer facilement l'analyse statique, les tests unitaires et d'autres méthodes de test de logiciels C et C++ dans votre pipeline CI/CD. Inscrivez-vous pour la démo >>

Accélérez les tests logiciels en partageant les ressources de test entre les équipes de développement et de test

Par Jamie Motheral

9 janvier 2019

8  min lire

Alors que le tout concept de décalage à gauche est en effet incroyablement précieux, vous pouvez accélérer les tests pour suivre le développement en réduisant simplement les retouches dans les tests fonctionnels et en améliorant la collaboration entre les équipes. Autrement dit, si vous avez le bon outil.

Au début de 2019, j'ai dû réfléchir aux milliers de conversations que j'ai eues au cours de l'année dernière avec l'assurance qualité, les ingénieurs de test et les gestionnaires. Cette année, en particulier le dernier trimestre, a été dominée par des discussions sur l'accélération des tests, en particulier sur la manière d'aligner les stratégies de test en même temps que le développement. J'ai donc eu le plaisir de partager avec de nombreuses personnes comment réduire les retouches entre les tests fonctionnels et non fonctionnels avec Parasoft SOAtest, améliorant simultanément la collaboration entre les équipes tout en accélérant les tests pour suivre le développement.

Je peux dire en toute confiance que SOAtest est le solution complète pour la création et l'automatisation de tests fonctionnels. C'est le sang, la sueur et les larmes de plus de 17 ans de développement, produits par une entreprise dont l'objectif unique et constant est l'automatisation des tests et la simplification et la rationalisation des tests pour ses clients. En termes de tests de bout en bout, il réduit l'effort manuel de création de tests pour divers types de tests fonctionnels, tels que les tests de définition de service / contrat, les tests de fumée, les tests de composants API, les tests de scénario API, les tests d'interface utilisateur Web, les tests de base de données , des tests omnicanaux, des tests de microservices, des tests de performance / charge et des tests de sécurité API, qui sont tous facilement automatisés et peuvent être liés à votre pipeline CI / CD via une interface de ligne de commande ou l'API REST primée de SOAtest.

Il y a beaucoup de délire que je peux faire à propos de SOAtest et de sa profondeur de technologie, des innovations dans l'IA et l'apprentissage automatique, et le succès qu'il a eu pour permettre à nos clients d'atteindre leurs objectifs de qualité et de livraison; cependant, aujourd'hui je veux parler de la valeur qui est débloquée lorsqu'une organisation utilise SOAtest pour combler le fossé entre les équipes de développement, d'assurance qualité et de test de performance, afin d'atteindre une synergie complète dans une organisation de test.

Le développement jette les bases des tests

Alors je vais juste déchirer le pansement et le mettre là-bas: le développement doit tester.

Et je ne dis pas seulement les tests unitaires (ce qui est évidemment précieux). Le développement doit être impliqué dans le test de toute API nouvelle ou modifiée. Maintenant, je ne dis pas que le développement devrait construire des scénarios de test complets, et je pense que lorsque vous vous y penchez vraiment, le développement est probablement déjà en train de faire certains des tests dont je parle ici. Lorsqu'une nouvelle API est en cours de création ou qu'une API a subi une modification de schéma ou de service, le développement   créer au minimum des tests de contrat et des tests de fumée pour chacune de ces API afin de valider que le contrat de service est écrit conformément aux spécifications et de valider le schéma (requête et réponse) et les points de terminaison (HTTP, MQ / JMS Topic / Queue, etc.).

Si les développeurs peuvent commencer à utiliser le même outil de test fonctionnel pour créer des tests, l'équipe d'assurance qualité peut simplement tirer parti de ces tests pour former les scénarios de test plus complexes dont ils ont besoin pour valider. Alors, comment les développeurs peuvent-ils tirer parti de Parasoft SOAtest pour accélérer les tests?

Les développeurs peuvent créer des tests de définition de service

Avec Parasoft SOAtest, les développeurs peuvent très facilement valider:

  • La définition du service est-elle sémantiquement correcte?
  • Le service décrit est-il valide?
  • Le service répond-il aux normes d'interopérabilité?
  • Le service a-t-il changé récemment?

Les développeurs utilisant SOAtest créent facilement des tests pour valider et appliquer les politiques d'un WSDL, Swagger, RAML, etc., via la consommation de ce fichier de définition de service. SOAtest effectuera des tests de schéma et de validité sématique pour s'assurer que le fichier de définition est lisible par machine et consommable. Il validera l'interopérabilité pour s'assurer qu'il adhère aux normes de l'industrie d'un fichier de définition de service, et enfin il créera un test de régression pour valider que rien n'a changé depuis le dernier test.

Ces tests fournissent cette base stable que l'assurance qualité peut exploiter pour construire efficacement une stratégie de test solide et résiliente (plus à ce sujet dans un instant).

Les développeurs peuvent créer des tests de composants (tests de fumée)

En utilisant Parasoft SOAtest, les développeurs peuvent facilement créer leurs tests de composants, pour tester les composants individuels d'un service cherchant à valider que:

  • Les charges utiles de demande / réponse sont bien formées
  • L'état de la réponse est comme prévu
  • Les charges utiles d'erreur de réponse ont les messages d'erreur corrects
  • La réponse répond aux critères de base
  • La réponse est reçue dans les délais prévus

Avec SOAtest, créer ces tests de fumée fonctionnels est littéralement aussi simple que de télécharger votre fichier de définition dans SOAtest et de sélectionner «Créer un test fonctionnel». Cela analysera automatiquement votre API, créant un test pour chaque service individuel contenu dans cette API. Ces tests sont immédiatement exécutables et permettent aux développeurs de passer un minimum de temps à valider que les erreurs qu'ils ont pu recevoir sont les messages d'erreur et les réponses correctement attendus.

Accélérer les tests en améliorant la collaboration et en tirant parti du travail entre les équipes

Le développement à ce stade a fait son travail - ils ont validé les fonctionnalités de base pour chaque service, et maintenant c'est au tour du contrôle qualité. Les testeurs doivent créer des tests qui vont au-delà des fonctionnalités de base et tester la logique métier réelle et les scénarios complexes de l'API pour découvrir les comportements imprévus et inattendus. Dev fait un beau travail de construction, et le travail de QA est de créer des scénarios complexes destinés à tester la stabilité des services lorsqu'ils fonctionnent de concert. J'aime le regarder comme ceci: lorsque le développement a utilisé SOAtest pour ses tests de contrat et de composants, l'assurance qualité arrive dans une cuisine déjà approvisionnée en ingrédients prêts à être mélangés, mélangés et assemblés en un repas.

C'est incroyable pour moi à quel point cette réutilisabilité des artefacts de test est précieuse et à quel point elle peut accélérer les pratiques de test, simplement en éliminant la refonte du contrôle qualité en créant des tests qui ont déjà été effectués par le développement. Dans le paradigme du travail intelligent, l'assurance qualité commence par la cuisine équipée et peut en faire plus en moins de temps. C'est juste logique.

Voyons comment cela peut accélérer les tests.

Réutilisation des artefacts de test des développeurs pour créer efficacement des tests de scénario significatifs

Le contrôle qualité peut réutiliser les mêmes tests de composants que ceux créés par les développeurs dans Parasoft SOAtest pour s'assurer que tout fonctionne dans un scénario spécifié. Ils peuvent:

  • Assurez-vous que les API fonctionnent lorsqu'elles sont combinées dans un scénario
  • Conduisez le test avec des données
  • Utilisez les données de réponse pour alimenter les demandes suivantes
  • Tirez parti des tests de démarrage et de démontage en option

Étant donné que le contrôle qualité dispose déjà des éléments de base dont il a besoin (grâce au développement), ils peuvent sélectionner et choisir sans script, avec de simples commandes copier-coller, les composants individuels qui seront utilisés pour tester leur scénario. Ces composants peuvent être glissés et déposés dans le bon ordre et restructurés pour créer chaque scénario. Les réponses et les informations du premier test peuvent être paramétrées en quelques clics, et utilisées pour piloter les données de demande du second test, et ainsi de suite sur toute la ligne.

Ces tests de scénario sont créés plus efficacement, en bénéficiant des composants déjà fournis par l'équipe de développement. Avec SOAtest, vous pouvez aller encore plus loin dans cette efficacité, en réduisant encore plus les retouches en «modélisant» la logique métier (c'est-à-dire les assertions, les validations, l'authentification) en règles, avec machine learning. La réutilisation de la logique de test améliore la cohérence des tests d'API, tout en accélérant les tests en éliminant le travail précédemment effectué par un autre membre de l'équipe.

Réduire le ping-pong entre le développement et le test pour accélérer les temps de correction des défauts

Une lutte constante qui survient en raison de l'écart entre le développement et l'assurance qualité est le ping-pong dans la communication qui se produit lorsqu'un défaut est détecté par l'assurance qualité. C'est une tâche fastidieuse de documenter ce défaut, de prendre les captures d'écran, d'écrire les étapes de test exactes qui ont révélé le défaut, puis de le communiquer au développement, qui reviendra souvent avec la réponse frustrante que cela fonctionne bien. leur environnement.

Ce ping-pong entre Dev et QA ralentit les temps de correction des défauts et prend un temps précieux à la fois pour le développeur (car ils ont du mal à recréer l'environnement de test) et le testeur (qui est pris dans un cycle de documentation et de communication cassé plutôt que de dépenser leur temps à créer plus de tests).

Au lieu de cela, lorsque les deux équipes utilisent Parasoft SOAtest, cette lacune de communication / collaboration est comblée par la création de scénarios de test réexécutables, accélérant considérablement le partage des connaissances entre les testeurs et le développement. Lorsqu'un membre du contrôle qualité trouve un problème, il peut créer rapidement un scénario de test (fichier .tst), présentant le comportement, qui peut ensuite être partagé avec l'équipe de développement. Le développement peut ensuite exécuter le scénario de test sur sa machine pour voir le comportement et voir les étapes et les appels exacts qui conduisent au comportement incorrect, ce qui raccourcit le temps de correction des défauts.

Gestion du schéma d'API et du changement de service pour réduire la dette de maintenance des tests

L'assurance qualité fonctionne désormais intelligemment. Ils ont créé une stratégie cohérente pour tester leurs API, basée sur les tests de composants existants créés par Development, ce qui réduit les retouches en modélisant l'application de la logique métier afin qu'elle puisse être réutilisée et exploitée dans toute l'équipe de test. Mais que se passe-t-il lorsque des modifications sont apportées à vos applications?

Le changement peut prendre de nombreuses formes telles que:

  • Changement de format de message de protocole
  • Éléments ajoutés ou supprimés de l'API
  • Changements de code affectant le format des données
  • Services en cours de réarchitecture en microservices

Habituellement, un énorme casse-tête pour les organisations d'assurance qualité est de comprendre ces changements, d'identifier les cas de test impactés par le changement, et de mettre à jour et de réexécuter ces cas de test pour valider que les changements n'ont rien cassé. Sans SOAtest, ces choses nécessitent une étude approfondie des deux versions d'un fichier de définition d'API ainsi qu'un effort herculéen pour comprendre les tests impactés et comment éditer ou réécrire chaque test impacté pour valider ce changement.

SOAtest offre à l'assurance qualité un moyen simple de gérer et d'atténuer l'impact du changement grâce à son module Change Advisor. Vous vous souvenez de la définition de service ou des tests contractuels qui étaient si importants pour le stockage de la cuisine d'AQ? Ces fichiers de définition de service reviennent pour aider à la gestion des changements.

En cas de modification dans votre schéma d'API ou vos services, le développement mettra à jour ce fichier de définition et fournira au contrôle qualité la version la plus récente. Le module Change Advisor de SOAtest entre et compare automatiquement la nouvelle version du fichier de définition avec l'ancienne version, crée deux cartes qui présentent graphiquement les opérations et les schémas entre les anciens et les nouveaux fichiers de définition, puis le contrôle qualité peut entrer, identifier facilement ce qui doit être changé, et en quelques clics, révisez et mettez à jour en fonction des changements. Et une fois que toutes les modifications ont été examinées, ce modèle de modification peut facilement être appliqué pour refactoriser automatiquement en masse tous les tests existants impactés par ces modifications.

Réutilisation d'artefacts de test existants dans les performances

L'assurance qualité a maintenant fait son travail. Les testeurs ont créé plusieurs scénarios de test complexes destinés à tester la logique métier de l'API et à valider les fonctionnalités des services de concert les uns avec les autres. La logique métier est solide et chaque cas d'utilisation a été testé et validé. Tous les défauts trouvés ont été facilement communiqués au développement sous la forme d'un fichier .tst pour une reproduction et une correction rapides. Une stratégie complète et minimalement manuelle est en place pour maintenir ces tests d'API et mettre à jour les tests en cas de changement. Il est maintenant temps de casser l'application - il est temps pour les testeurs de performances de tester le comportement de l'API lorsqu'elle compte plus de 100, 500, 1000 utilisateurs essayant d'exécuter les mêmes scénarios en même temps à partir de différents endroits dans le monde.

Dans de nombreux cas, un testeur de performances devra créer ses propres scénarios de test spécifiquement dans ces conditions. Heureusement, en tirant parti de Parasoft SOAtest, l'équipe de performance n'a pas encore besoin de réinventer la roue. Ils peuvent utiliser la combinaison de tests de composants créés par le développement et les tests de scénarios créés par QA pour valider leurs SLA et les performances en temps opportun de l'application, le tout dans le module de test de charge de SOAtest.

Dans le module de test de charge, les tests de composants ou de scénarios SOAtest existants peuvent être facilement exploités et pilotés avec n'importe quel nombre possible d'utilisateurs virtuels et répartis sur n'importe quel nombre de machines esclaves pour tester des scénarios sous différents types de charge tels que cloche, tampon, linéaire et stead load, vous permettant de valider que l'application peut se comporter comme prévu sous les différents types de contraintes.

En conclusion….

«Travailler intelligemment, pas dur» devrait être l'objectif final de votre stratégie de test fonctionnel, mais répéter sans cesse les mêmes actions a plutôt été la norme pour les équipes de test en matière de test d'API. Très souvent, je parle aux responsables de l'assurance qualité et aux coaches DevOp qui sont chargés d'identifier des moyens d'accélérer leur vitesse de test et d'augmenter la collaboration, et ce que j'ai décrit ici est la réponse.

Les équipes peuvent réduire les retouches et augmenter l'efficacité en tirant parti des capacités de SOAtest. Il est facile à adopter à la fois au niveau de l'entreprise et au niveau du projet individuel ou du démarrage, car il a été créé pour évoluer habilement et nécessite un faible niveau d'expertise technique pour la création et l'automatisation des tests. Le fait d'avoir un outil unifié pour les tests fonctionnels utilisé par le développement, l'assurance qualité et les performances permet un niveau de collaboration révolutionnaire et une réduction des retouches qui peuvent avoir un impact sur les résultats, réduisant les efforts de test, le temps et les coûts globaux.

La principale solution de test fonctionnel d'API et d'interface utilisateur, optimisée par l'IA et l'apprentissage automatique

Par Jamie Motheral

Responsable de compte chez Parasoft, Jamie travaille en étroite collaboration avec les clients et prospects. Son expertise pour aider les organisations à atteindre leurs objectifs grâce à des stratégies de test évolutives et facilement adoptables a aidé ses clients à passer de manière organique des méthodologies en cascade aux méthodologies agiles et DevOps.

Recevez les dernières nouvelles et ressources sur les tests de logiciels dans votre boîte de réception.