Qu'est-ce que le test de concurrence?
Le test de concurrence est défini comme une technique de test pour détecter les défauts dans une application lorsque plusieurs utilisateurs sont connectés. En d'autres termes, surveiller l'effet pendant que plusieurs utilisateurs exécutent la même action en même temps. L'image ci-dessous montre les tests simultanés
Les tests simultanés sont également appelés tests multi-utilisateurs . Tester un programme simultané est plus difficile que tester un programme séquentiel, en raison de problèmes de non-déterminisme et de synchronisation.
Pourquoi tester la concurrence
- Identifie les effets de l'accès aux mêmes enregistrements de base de données, modules ou code d'application en même temps.
- Identifie et mesure le niveau de blocage, de verrouillage et d'utilisation du code monothread et de restriction d'accès aux ressources partagées
Avantages des tests simultanés
- Cela réduit relativement l'effort nécessaire pour tester une application en limitant la portée des interactions simultanées à quelques composants largement utilisés et bien testés.
- La valeur d'encapsulation permet d'analyser le comportement d'une partie d'un programme sans revoir l'intégralité du code ou du programme
- Il contribue à améliorer la fiabilité et la robustesse des programmes simultanés.
Inconvénients des tests simultanés
Inconvénients pouvant être rencontrés par le test lors de l'exécution de tests simultanés
- Besoin de tester sur plusieurs plates-formes
- Nécessite des tests plus intensifs
- Les fonctions ne renvoient pas immédiatement leur résultat à l'appelant, mais au lieu de cela, il peut être livré plus tard via des notifications, des blocs, des fonctions de rappel ou des mécanismes similaires, ce qui rend les tests plus difficiles.
- Les informations ou le flux de programme ne sont pas reflétés dans la pile d'appels.
- Le nombre de chemins d'exécution dans le système peut être extrêmement important car les processus d'un système concurrent peuvent interagir les uns avec les autres pendant leur exécution
- Les programmes simultanés ont plus de taux d'échec que les programmes séquentiels
- Débogage de programmes concurrents
Résumé:
Une technique de test simultané ou de concurrence est effectuée pour détecter les défauts dans une application lorsque plusieurs utilisateurs sont connectés.