soa testing tutorial
Tutoriel de test SOA:
Dans cet article, nous allons discuter des techniques de test pour une architecture SOA.
Les logiciels actuels sont si polyvalents et susceptibles de gérer les attentes changeantes des utilisateurs de temps en temps, un modèle autonome n'est pas utile.
C'est là que la SOA s'intègre parfaitement en tant que solution.
C’est la raison pour laquelle de nombreuses entreprises adaptent ou tentent d’adapter l’approche SOA en raison de ses avantages tels que; Réduction des coûts, agilité commerciale, maintenance facile, etc. Avec le marché à venir plein d'architecture SOA, il devient nécessaire pour les testeurs modernes de se faire une idée juste des tests SOA.
tests pilotés par les données dans soapui à l'aide d'un script groovy
Dans cet article, nous aborderons les bases de la SOA avec des exemples.
Cela donnerait aux lecteurs une idée de base sur SOA. Cela serait suivi de l'approche de mise en œuvre des services Web. Enfin, nous entrerons dans le processus de test qui peut être suivi pour un modèle d'architecture SOA.
Ce que vous apprendrez:
- Qu'est-ce que SOA?
- Exemples de SOA
- Services Web
- Processus de test SOA
- Défis des tests SOA
- Outils de test SOA
- lecture recommandée
Qu'est-ce que SOA?
SOA ou Sevice-Oriented-Architecture est une méthode flexible / agile / efficace d'intégration de diverses applications / services afin de répondre à certains besoins de l'entreprise.
- Contrairement à d'autres systèmes complexes, la SOA comprend des composants / services / micro-services plus petits liés entre eux de manière à répondre aux besoins de l'entreprise.
- Les services sont les unités qui rendent le système complet et quand il y a un besoin de changement, plutôt que de changer le système entier, le service spécifique est modifié.
- Un service est un composant capable d'exécuter une tâche.
- Cette architecture est plus vendable que l'ancien système car l'utilisateur final n'obtient que les services nécessaires pour répondre à ses besoins. Il n’a pas besoin d’avoir tout le système.
- Les services / micro-services sont faiblement couplés, réutilisables, sans état, ce qui rend le système encore plus robuste.
- Ce modèle est très rentable en termes de déploiement, de développement et de maintenance.
Exemples de SOA
Besoin commercial: Une application à laquelle un utilisateur peut se connecter et rechercher des restaurants en fonction de la géolocalisation, télécharger les détails du restaurant et le menu à partir du serveur une fois la recherche terminée et enfin un paiement peut être effectué pour passer la commande.
Ce besoin commercial peut être satisfait par la mise en œuvre de SOA.
Il peut y avoir des services / micro-services comme suit pour effectuer diverses tâches:
- Lors de la connexion, le service qui serait utilisé est «Service d’authentification»
- La recherche de restaurants serait effectuée par le «service de géolocalisation»
- Le menu de téléchargement doit être effectué par le «service de téléchargement de menu»
- Enfin, le paiement serait effectué par «Service de paiement»
Chacun des services mentionnés ci-dessus fait quelque chose d'unique afin de faire fonctionner le système et de fournir ce qu'il est censé faire. Désormais, si un client a besoin de voir uniquement le restaurant et son menu mais n'a pas besoin d'une interface de passerelle de paiement, il achètera / déploiera uniquement les trois premiers services.
Cela rend le travail simple pour le développement, le déploiement, les ventes, la maintenance et après tout le client / l'utilisateur final.
Services Web
- Ce sont des API (Interfaces de programmation d'application) qui facilitent l'interaction entre différents logiciels.
- Il existe un fournisseur de services qui héberge le service sur le Web. Dans le cadre de l'hébergement, un WSDL est hébergé par le fournisseur.
- Lorsque le client envoie un message de demande au fournisseur de services, la communication est établie à l'aide de l'URL / WSDL.
- Dans l'exemple ci-dessous, le serveur de géolocalisation héberge un service Web qui est utilisé par le demandeur de service.
Processus de test SOA
Chaque produit, modèle, infrastructure doit passer en phase de test afin de satisfaire l'utilisateur final en termes d'un produit de bonne qualité. Les tests SOA ne se limitent pas uniquement aux tests d'une couche / test de protocole de service Web. Il s'agit du test global de l'architecture et de chaque partie de celle-ci.
L'approche de test peut être similaire à celle du processus de test normal. c'est à dire.
- Processus d'examen des exigences
- Planification des tests
- Conception des tests
- Configuration de l'environnement
- Phase d'exécution
- Phase de rapport
Le processus de test SOA s'articule autour de 3 couches dans l'architecture:
- Consommateurs de services
- Couches de processus
- Couches de service
En suivant le même exemple ci-dessus, nous pouvons avoir nos couches comme suit:
- La couche du consommateur de services facilite l’interaction avec le consommateur. Cela aide à lire l'entrée de l'utilisateur final et à renvoyer la réponse appropriée pour la demande reçue. En d'autres termes, cela a essentiellement l'interface utilisateur.
- C'est la couche qui se concentre sur le front de la mise en œuvre. Cette couche dans notre exemple aura des méthodes d'authentification, la création d'un utilisateur etc.
- Les couches de service sont les fonctions métier en termes de services. Tous les services qui sont réellement appelés lorsqu'une tâche spécifique est effectuée se trouvent dans cette couche.
Le test peut être divisé en 4 étapes différentes;
Niveau # 1
1) Test de niveau de service:
- Chaque service impliqué dans le système est testé individuellement en fonction d'une méthode de demande et de réponse.
- Ce test est obligatoire et très important pour procéder à d'autres processus de test.
2) Test fonctionnel:
- Le test est effectué pour les services sur les besoins de leur entreprise afin de déterminer si la réponse reçue est correcte.
- Les besoins métier sont d'abord convertis en cas de test et les instructions de requête sont formées.
- Ensuite, les instructions de demande sont traitées pour voir si les réponses obtenues sont correctes.
- En cas de données d'entrée non valides, un code d'erreur approprié doit être émis ou un message d'erreur approprié doit être déclenché.
- Les formats de la réponse, ainsi que les scénarios négatifs, doivent être exécutés.
3) Test de sécurité:
- Chaque fois qu'il s'agit d'un service Web, les tests de sécurité jouent un rôle clé dans le succès du processus de test.
- Les passerelles d'authentification, les passerelles de paiement, etc. doivent être cryptées lorsque les données sont analysées.
- Lorsqu'il s'agit de XML, des vulnérabilités telles que CSRF, l'injection SQL doivent être vérifiées.
4) Test de performance:
- Les services utilisés dans l'architecture sont hébergés afin que de nombreuses autres applications puissent en profiter. Les tests de performance garantissent la crédibilité de ces services.
- Le test des services doit être effectué pour découvrir les ensembles de résultats suivants;
- Déterminer la stabilité des services.
- Valider l'évolutivité des services.
- Comportement de service dans des conditions de charge de pointe
- Pour trouver les temps de réponse entre les services
Niveau 2
1) Test de processus:
- Ce processus implique le test de divers processus métier.
- Cela devrait comprendre les scénarios d'intégration des services Web et de l'application couvrant les besoins de l'entreprise
- L'utilisation de simulateurs doit être faite pour générer des échantillons de données d'entrée et une validation doit être effectuée pour les sorties respectives.
- Le flux de données de différentes couches doit être effectué pour prouver le bon fonctionnement du système lorsqu'il est intégré.
Niveau 3
1) Test de bout en bout:
largeur de l'arborescence C ++ de première recherche
- Cette phase est destinée à valider les exigences de l'entreprise à la fois fonctionnellement et non fonctionnellement.
- L'interface utilisateur de l'application est validée.
- Le processus métier impliqué est testé.
- Le flux de données de bout en bout est validé dans cette phase.
- Travailler avec tous les services lorsque les services sont intégrés les uns aux autres est validé.
Niveau # 4
1) Test de régression:
- La stabilité du système dans les versions de build incrémentielles est validée par ces tests.
- Ceci peut être réalisé soit par des tests manuels / des tests d'automatisation.
Défis des tests SOA
Quelqu'un a dit à juste titre: «Plus le maillage est plus gros; Plus gros est le désordre! ». SOA peut devenir un enfant vraiment complexe et avide d'attention.
En d'autres termes, avec autant de pièces minuscules constituant l'architecture SOA, il devient vraiment difficile de la certifier en test.
- Difficile de simuler les environnements de test pour faire avancer le processus de test.
- Les produits impliqués dans le modèle peuvent être de la même technologie / fournisseur. Mais, ils peuvent aussi être différents. Plus de problèmes?
- Les combinaisons de tests augmentent avec le nombre de services / composants impliqués.
- Complexité du modèle
- La reproduction / le test des problèmes est un travail difficile.
- Contrairement aux autres modèles, l'objectif principal des tests doit être la portée de l'entreprise plutôt que le service et ses fonctionnalités.
Outils de test SOA
Il existe de nombreuses applications pour les tests SOA. Les outils de test SOA sont sélectionnés en fonction de leurs résultats précis et d'une meilleure productivité.
- SoapUI: Il s'agit d'un outil gratuit destiné aux tests de services Web. SoapUI est capable de faire des tests fonctionnels, des tests de performance et des tests de charge
- Apache Jmeter: Il s'agit également d'un utilitaire OPEN SOURCE utilisé pour analyser les performances de l'appel SOAP.
- JProfiler: Ceci est utilisé pour arrêter ou détecter la fuite de mémoire, trouver des goulots d'étranglement dans les performances, etc.
- Test de service HP: Ceci est intégré à HP QC. Il s'agit d'un outil de test fonctionnel, qui prend également en charge les tests d'interface utilisateur et de service partagé
A travers cet article, nous avons compris la singularité du modèle. C'est très différent du modèle hérité et l'article en donne une bonne idée. Cet article jette également un éclairage sur la procédure SOA et les moyens de procéder aux tests.
A propos de l'auteur: Ceci est un message d'invité de Subhasis. Il travaille en tant que chef d'équipe avec plus de 8 ans d'expérience en entreprise au sein de sociétés informatiques Fortune 500.
Postez ci-dessous vos questions / commentaires liés aux tests SOA.
Tous mes vœux!
lecture recommandée
- Meilleurs outils de test de logiciels 2021 (Outils d'automatisation des tests QA)
- Téléchargement de l'e-book 'Testing Primer'
- Tutoriel sur les tests destructifs et les tests non destructifs
- Test fonctionnel vs test non fonctionnel
- Tutoriels Eclipse détaillés pour les débutants
- Top 15 des outils de test SOA pour les testeurs
- Tutoriel de test par paires ou de test toutes paires avec outils et exemples
- Tutoriel sur l'outil de test d'accessibilité WAVE