what is thread testing software testing
Ce didacticiel explique ce qu'est le test de thread, quand et comment l'exécuter, les types de test basé sur les threads et les défis rencontrés:
Le test de thread est une technique de test de logiciel utilisée pour tester les applications basées sur un serveur client.
Les tests basés sur les threads doivent être effectués aux étapes initiales des tests d'intégration afin que les fonctions clés puissent être testées / vérifiées pour une tâche / programme ou thread spécifique.
Ce que vous apprendrez:
- Pourquoi tester les fils
- Quand et comment les tests de filetage sont-ils effectués
- Types de tests basés sur les fils
- Différence entre le fil et les processus
- Différence entre les tests basés sur les threads et les tests basés sur l'utilisateur
- Conclusion
Pourquoi tester les fils
Lorsque les composants sont intégrés, il est nécessaire de vérifier si le système fonctionnera comme prévu ou non et toutes les transactions se produiront selon les besoins ou non. Ainsi, les tests basés sur les threads viennent tester la même chose.
Ce test se fait en intégrant les threads progressivement à tous les niveaux à partir du sous-système jusqu'au système complet c'est-à-dire l'ensemble du système. Toutes les activités du système avancent avec les threads uniquement.
La définition des threads permet de partager l'arrière-plan fonctionnel et les détails d'exécution des threads entre les développeurs et les développeurs et les testeurs.
À propos des threads
Un thread est le flux de contrôle dans un processus. C'est la plus petite tâche du système qui peut être exécutée.
questions d'entretien de base sur le HTML et le CSS
Exemple
Un navigateur Web peut avoir un ou plusieurs threads en cours d'exécution, à savoir. un fil pour afficher des images et du texte et un autre fil pour récupérer des données. Dans certains cas, une seule application doit être requise pour desservir tous les processus.
La création de multi-threads est la meilleure solution pour la même chose, sinon plusieurs demandes seront envoyées au serveur par le client et il faudra du temps pour accuser réception des demandes une par une. Le multi-thread aidera à répondre aux demandes simultanément.
Quand et comment les tests de filetage sont-ils effectués
Cela devrait être fait au stade initial des tests d'intégration du système.
Les tests d'intégration sont effectués en intégrant différents modules de manière planifiée. Le plan d'intégration est suivi pour le même qui spécifie l'ordre dans lequel les modules seront intégrés pour faire le système complet.
Vous trouverez ci-dessous les techniques d'exécution des tests d'intégration:
- Approche Big-Bang
- Approche descendante
- Une approche en profondeur
- Approche mixte
Voyons chaque technique en détail.
# 1) Approche Big-Bang
L'approche big bang n'est utilisée que pour les petits systèmes car tous les modules sont intégrés et testés en une seule fois.
Tout problème détecté au cours de cette approche est difficile à localiser car le problème peut provenir de l'un des modules intégrés. Par conséquent, les problèmes de débogage trouvés sont très coûteux à résoudre dans cette approche.
# 2) Approche descendante
L'approche descendante se fait à l'aide des stubs, c'est-à-dire qu'une fois que le module de niveau supérieur a été testé, les sous-programmes immédiats sont intégrés et testés.
Les stubs sont les programmes qui simulent l'effet des routines de niveau inférieur et sont appelés par les routines testées. Les tests de threads utilisent une approche descendante.
# 3) Approche ascendante
Dans l'approche ascendante, tous les sous-systèmes sont testés individuellement, puis le système complet est testé. La raison de tester tous les sous-systèmes séparément est de tester l'interface parmi tous les modules qui font partie du sous-système.
Cette technique nécessite des pilotes de test, c'est-à-dire le programme qui appelle les autres modules et fournit la même sortie que le produit réel.
# 4) Test d'intégration mixte
Cette technique est une combinaison d'approches descendantes et ascendantes. Par conséquent, il est appelé Test d'intégration mixte.
convertir youtube en fichier wav gratuitement
Points clés pour effectuer des tests basés sur les threads
- Lors de l'exécution de tests de threads, des threads ou de petites fonctionnalités sont intégrés et testés. Les tests effectués sont des tests incrémentiels au niveau du sous-système, puis en tant que système complet.
- Au stade initial lui-même, les testeurs d'intégration ont une bonne idée et des connaissances sur ce qu'il faut tester davantage.
- Les testeurs d'intégration doivent appliquer et exécuter des scénarios à la fois positifs et négatifs dans les limites des threads uniquement. Ils doivent décider d'une approche de test de filetage à suivre pour couvrir également les cas exceptionnels et les cas limites.
- La définition de thread fournie par le développeur au testeur permet de tester le thread en conséquence par les testeurs intégrateurs. Toutes les informations supplémentaires requises par le testeur peuvent être traitées dans le processus de révision des fils.
- Les processus de thread fonctionnent pour les processus d'intégration plutôt que pour le processus de développement de bout en bout.
- Pour tester la fonctionnalité multi-thread, laissez les multiples instances de l'application ou du programme à tester être actives en même temps.
- Exécutez le programme multi-thread sur un matériel différent.
- Le test de thread est une forme de test de session pour lequel les sessions sont formées de threads. Il n’est pas nécessaire qu’un thread formé soit une session.
Types de tests basés sur les fils
Deux types de tests basés sur les threads sont effectués:
- Test de filetage unique
- Test multi-thread
# 1) Test de filetage unique
Le test de thread unique teste une transaction à la fois. Le temps d'attente pour que le client obtienne une réponse à sa demande pourrait être un peu plus long car il pourra servir ou répondre à un client à la fois.
Ce test aide le testeur à comprendre et à tester la logique du programme ou du code écrit.
# 2) Test multi-thread
Le test multi-thread teste plusieurs transactions actives en même temps. Dans ce cas, des threads séparés sont créés pour les demandes du client. Chaque fois qu'une demande est effectuée, un thread est créé pour le service ou répond à la demande.
Une transaction qui fonctionnait correctement dans le test de thread unique peut échouer lors du test en multi-thread et peut également interférer avec d'autres threads et fonctionnalités et les empêcher de fonctionner comme prévu.
Une approche multithread est-elle meilleure qu'une approche à un seul thread?
Les applications multithreads sont meilleures que les applications à thread unique car elles améliorent les performances de l'application. Le multi-threading permet à un certain nombre de ressources de travailler sur un problème / une demande en même temps.
Défis lors des tests basés sur les threads
Lors de l'exécution de tests basés sur les threads, le testeur est confronté à plusieurs défis qui ont un impact sur les performances, le temps et le coût des tests.
- L'écriture de cas de test unitaires pour du code multi-thread est un défi.
- Lorsque le test multi-thread est effectué sur un matériel différent, cela varie en fonction de la taille, de la capacité de stockage, de la mémoire, des problèmes, etc.
- Les scénarios de test pour un thread unique et pour plusieurs threads sont différents.
- Dans les tests de threads multiples, des tests reproductibles pour les tests unitaires doivent être programmés.
Avantages / inconvénients du multi-threading
Le multi-threading présente de nombreux avantages ainsi que des inconvénients. En tant que testeur, connaître la même chose les aide à tester et à interrompre le processus de test en conséquence.
Avantages
- Le multi-threading augmente la réactivité vis-à-vis de l'utilisateur. L'application peut laisser le programme s'exécuter même si une partie de l'application est bloquée.
- Le partage de ressources est un autre avantage car les threads partagent les ressources du processus auquel ils sont liés ou auxquels ils appartiennent.
- La création de threads est économique car elle partage les ressources auxquelles ils appartiennent.
Désavantages
- Processus de test complexe
- Les résultats sont très imprévisibles.
- La rédaction d'un programme devient plus difficile.
- Occurrence de blocage.
Qu'est-ce que l'impasse
Lorsque le multi-threading est terminé, le thread entre dans un état d'attente si la ressource n'est pas disponible.
L'état d'attente peut ne pas changer pour le thread car la ressource demandée est détenue par d'autres threads en attente. Lorsqu'une telle situation se présente, on appelle cela un blocage.
Différence entre le fil et les processus
Comprenons les différences entre Thread et Process:
S. Non | Fil de discussion | Traiter |
---|---|---|
7 | Les threads ne peuvent pas être divisés davantage. | Les processus peuvent avoir plusieurs threads. |
1 | Le fil est un processus léger. | Le processus est un processus lourd. |
deux | Si le thread du serveur est bloqué, un deuxième thread de la même tâche peut s'exécuter et terminer le processus. | Si le processus serveur est bloqué, les autres processus ne peuvent pas s'exécuter tant que le processus serveur bloqué n'est pas débloqué. |
3 | Les threads n'isolent pas, ils partagent la mémoire. | Le processus est isolé. |
4 | La création de threads, le changement de contexte, l'arrêt prend moins de temps dans le thread. | La création de threads, le changement de contexte, la terminaison prennent plus de temps dans les processus. |
5 | Thread fait référence à la tâche spécifique d'un processus. | Processus fait référence à l'exécution de n'importe quel programme. |
6 | Les ressources utilisées sont très peu nombreuses dans le fil. | Les ressources utilisées dans les processus sont plus. |
Différence entre les tests basés sur les threads et les tests basés sur l'utilisateur
S.No. | Test basé sur les threads | Tests basés sur l'utilisation |
---|---|---|
1 | Les fils sont intégrés et testés individuellement. | Les tests commencent avec des classes qui ne sont pas dépendantes les unes des autres, c'est-à-dire indépendantes. |
deux | Des tests de régression sont effectués pour s'assurer que rien n'est affecté. | Une fois le test des classes indépendantes effectué, les classes dépendantes sont testées. Les personnes à charge sont celles qui dépendent des classes indépendantes. Cette série se poursuit jusqu'au moment où le système complet est construit. |
3 | Les tests basés sur les threads intègrent les classes qui sont essentielles pour accuser réception d'une entrée ou d'un événement du système. | Le test de base d'utilisation intègre les classes qui sont essentielles pour répondre ou reconnaître le cas d'utilisation. |
Questions fréquemment posées
Q # 1) Qu'est-ce que le test de thread?
Répondre: Les tests basés sur les threads sont une méthodologie qui est effectuée au cours de la phase initiale des tests d'intégration. Les threads ou programmes sont intégrés et testés de manière incrémentielle dans un sous-système, puis comme un système entier.
Q # 2) Quels tests sont effectués en premier?
Répondre : Habituellement, un test ascendant est effectué en premier, puis un test descendant est effectué.
Q # 3) Qu'est-ce que le test descendant?
Répondre: De haut en bas est une technique de test d'intégration où les tests sont effectués à l'aide de stubs, c'est-à-dire que lorsque les composants de niveau inférieur ne sont pas encore prêts à tester l'intégration, des stubs (modules temporaires) sont créés pour obtenir le même résultat que dans le cas des modules réels.
Conclusion
Les tests d'intégration basés sur les threads jouent un rôle important dans le test des fonctionnalités principales ou de la tâche ou du thread spécifique. Cette méthodologie est la meilleure pour une architecture client-serveur.
Lors du test de filetage, le testeur doit faire face à de nombreux défis, mais présente également de nombreux avantages qui le rendent facile et fiable à exécuter. Il a permis aux testeurs de tester toutes les transactions et de vérifier si cela fonctionne comme prévu et conformément aux exigences.
Il est impossible de tester toutes les transactions / événements pour terminer le test de thread à cause de quoi, il est divisé en types mono et multi-thread.
lecture recommandée
- Choisir les tests de logiciels comme carrière
- Quelques questions d'entretien intéressantes sur les tests de logiciels
- Le test logiciel est-il une tâche émotionnelle?
- Java synchronisé: qu'est-ce que la synchronisation des threads en Java
- Threads Java avec méthodes et cycle de vie
- Multithreading en C ++ avec des exemples
- Multithreading en Java - Tutoriel avec des exemples
- Thread.Sleep () - Méthode Thread Sleep () en Java avec des exemples