Test dynamique
Le test dynamique est une méthode de test logiciel utilisée pour tester le comportement dynamique du code logiciel. Le but principal des tests dynamiques est de tester le comportement du logiciel avec des variables dynamiques ou des variables qui ne sont pas constantes et de trouver des points faibles dans l'environnement d'exécution du logiciel. Le code doit être exécuté afin de tester le comportement dynamique.
Nous savons tous que le test est une vérification et une validation, et qu'il faut 2 Vs pour terminer le test. Sur les 2 V, la vérification est appelée un test statique et l'autre «V», la validation est appelée test dynamique.
Exemple de test dynamique
Comprenons comment faire des tests dynamiques avec un exemple:
Supposons que nous testions une page de connexion où nous avons deux champs, «Nom d'utilisateur» et «Mot de passe», et le nom d'utilisateur est limité à alphanumérique.
Lorsque l'utilisateur entre le nom d'utilisateur comme "Guru99", le système accepte la même chose. Où, comme lorsque l'utilisateur entre en tant que Guru99 @ 123, l'application envoie un message d'erreur. Ce résultat montre que le code agit de manière dynamique en fonction de l'entrée de l'utilisateur.
Le test dynamique consiste à travailler avec le système réel en fournissant une entrée et en comparant le comportement réel de l'application au comportement attendu. En d'autres termes, travailler avec le système dans le but de trouver des erreurs.
Ainsi, sur la base des déclarations ci-dessus, nous pouvons dire ou conclure que le test dynamique est un processus de validation des applications logicielles en tant qu'utilisateur final dans différents environnements pour créer le bon logiciel.
Que font les tests dynamiques?
L'objectif principal des tests dynamiques est de s'assurer que le logiciel fonctionne correctement pendant et après l'installation du logiciel, garantissant une application stable sans aucun défaut majeur (cette déclaration est faite car aucun logiciel n'est exempt d'erreur, les tests ne peuvent montrer que la pas une absence)
Le but principal du test dynamique est d'assurer la cohérence avec le logiciel; discutons de cela avec un exemple.
Dans une application bancaire, on retrouve différents écrans comme la section Mes comptes, Transfert de fonds, Bill Pay, etc… Tous ces écrans contiennent un champ montant qui accepte certains caractères.
Disons que le champ Mes comptes affiche le montant de 25 000 et le transfert de fonds de 25 000 $ et l'écran de paiement de la facture de 25 000 $ bien que le montant soit le même, la façon dont le montant est affiché n'est pas la même, ce qui rend le logiciel non cohérent.
La cohérence n'est pas seulement limitée à la fonctionnalité, elle fait également référence à différentes normes telles que les performances, la convivialité, la compatibilité, etc., il devient donc très important d'effectuer des tests dynamiques.
Types de tests dynamiques
Les tests dynamiques sont classés en deux catégories
- Test de la boîte blanche
- Test de la boîte noire
La représentation illustrée ci-dessous nous donne une idée des types de tests dynamiques, des niveaux de test, etc.
Laissez-nous discuter brièvement de chaque type de test et de son objectif
Test de la boîte blanche - Le test de la boîte blanche est une méthode de test logicielle dans laquelle la structure / conception interne est connue du testeur. L'objectif principal des tests White Box est de vérifier les performances du système en fonction du code. Il est principalement réalisé par les Développeurs ou Testeurs de White Box qui ont des connaissances sur la programmation.
Black Box Testing - Black Box Testing est une méthode de test dans laquelle la structure interne / le code / la conception n'est PAS connu du testeur. L'objectif principal de ce test est de vérifier la fonctionnalité du système testé et ce type de test nécessite d'exécuter la suite de tests complète et est principalement effectué par les testeurs, et aucune connaissance en programmation n'est nécessaire.
Le test de la boîte noire est à nouveau classé en deux types.
Elles sont
- Test fonctionel
- Tests non fonctionnels
Test fonctionel:
Des tests fonctionnels sont effectués pour vérifier que toutes les fonctionnalités développées sont conformes aux spécifications fonctionnelles, et ils sont effectués en exécutant les cas de test fonctionnels écrits par l'équipe d'assurance qualité, en phase de test fonctionnel, le système est testé en fournissant une entrée, en vérifiant la sortie et comparer les résultats réels avec les résultats attendus.
Il existe différents niveaux de tests fonctionnels parmi lesquels les plus importants sont
- Test unitaire - En général, l'unité est un petit morceau de code qui peut être testé, le test unitaire est effectué sur une unité individuelle du logiciel et est effectué par les développeurs
- Test d'intégration - Le test d' intégration est le test qui est effectué après les tests unitaires et est effectué en combinant toutes les unités individuelles qui sont testables et est effectué par des développeurs ou des testeurs
- Test du système - Le test du système est effectué pour s'assurer que le système fonctionne selon les exigences et est généralement effectué lorsque le système complet est prêt, il est effectué par des testeurs lorsque la version ou le code est remis à l'équipe d'assurance qualité.
- Test d'acceptation - Les tests d'acceptation sont effectués pour vérifier si le système répond aux exigences de l'entreprise et s'il est prêt à l'emploi ou prêt pour le déploiement et est généralement effectué par les utilisateurs finaux.
Test non fonctionnel : le test non fonctionnel est une technique de test qui ne se concentre pas sur les aspects fonctionnels et se concentre principalement sur les attributs non fonctionnels du système tels que les fuites de mémoire, les performances ou la robustesse du système. Les tests non fonctionnels sont effectués à tous les niveaux de test.
Il existe de nombreuses techniques de test non fonctionnelles parmi lesquelles les plus importantes sont
- Test de performance - Le test de performance est effectué pour vérifier si le temps de réponse du système est normal selon les exigences sous la charge réseau souhaitée.
- Test de récupération - Le test de récupération est une méthode permettant de vérifier dans quelle mesure un système est capable de récupérer après des pannes et des pannes matérielles.
- Test de compatibilité - Des tests de compatibilité sont effectués pour vérifier le comportement du système dans différents environnements.
- Tests de sécurité - Des tests de sécurité sont effectués pour vérifier la robustesse de l'application, c'est-à-dire pour s'assurer que seuls les utilisateurs / rôles autorisés accèdent au système
- Test d'utilisabilité - Les tests d' utilisabilité sont une méthode permettant de vérifier l'utilisabilité du système par les utilisateurs finaux afin de vérifier le degré de confort des utilisateurs avec le système.
Techniques de test dynamiques
Les techniques de test dynamiques dans STLC se composent de différentes tâches telles que l'analyse des exigences pour les tests, la planification des tests, la conception et la mise en œuvre de cas de test, la configuration de l'environnement de test, l'exécution de cas de test, le rapport de bogue et enfin la clôture de test. Toutes les tâches des techniques de test dynamique dépendent de l'achèvement de la tâche précédente dans le processus de test.
Dans STLC, nous pouvons dire que le processus de test dynamique réel commence à partir de la conception de cas de test, discutons de chaque activité en détail.
Avant d'entrer dans le processus, discutons de la stratégie à suivre pour les tests dynamiques.
La stratégie de test doit se concentrer principalement sur les ressources disponibles et le calendrier. Sur la base de ces facteurs, l'objectif des tests, la portée des tests, les phases ou cycles de tests, le type d'environnement, les hypothèses ou les défis qui pourraient être rencontrés, les risques, etc. doivent être documentés.
Une fois la stratégie définie et acceptée par la direction, la conception du cas de test de processus proprement dit commence
Qu'est-ce que la conception et la mise en œuvre des tests
Dans cette phase, nous identifions le,
- Caractéristiques à tester
- Dériver les conditions de test
- Dériver les éléments de couverture
- Dériver les cas de test
Configuration de l'environnement de test
Nous devons nous assurer que l'environnement de test doit toujours être similaire à l'environnement de production, dans cette phase, nous devons installer la construction et gérer les machines de test.
Exécution des tests
Au cours de cette phase, les cas de test sont effectivement exécutés.
Rapport de bogue capturé
En fonction de l'exécution, si les résultats attendus et réels ne sont pas les mêmes, le cas de test doit être marqué comme échec et un bogue doit être consigné.
Avantages des tests dynamiques
- Les tests dynamiques peuvent révéler les défauts découverts qui sont considérés comme trop difficiles ou compliqués et qui ne peuvent pas être couverts par l'analyse statique
- Dans les tests dynamiques, nous exécutons le logiciel de bout en bout, garantissant un logiciel sans erreur qui à son tour augmente la qualité d'un produit et d'un projet.
- Les tests dynamiques deviennent un outil essentiel pour détecter les menaces de sécurité
Inconvénients des tests dynamiques
- Le test dynamique prend du temps car il exécute l'application / le logiciel ou le code qui nécessite une énorme quantité de ressources
- Le test dynamique augmente le coût du projet / produit car il ne démarre pas tôt dans le cycle de vie du logiciel et, par conséquent, tout problème résolu dans les étapes ultérieures peut entraîner une augmentation des coûts.
Conclusion:
En génie logiciel, la vérification et la validation sont deux mesures utilisées pour vérifier que le produit logiciel répond aux spécifications des exigences. Les tests statiques impliquent une vérification tandis que les tests dynamiques impliquent une validation. Ensemble, ils contribuent à fournir un logiciel de qualité rentable.
Cet article est rédigé par Radhika Renamala