Qu'est-ce que le test dynamique ? Types, techniques et exemple
โก Rรฉsumรฉ intelligent
Les tests dynamiques exรฉcutent l'application et observent le comportement du code en cours d'exรฉcution avec des entrรฉes rรฉelles, permettant ainsi aux testeurs de valider les fonctionnalitรฉs, les performances et la stabilitรฉ, ce qu'aucune analyse documentaire ne peut rรฉvรฉler.
Quโest-ce que les tests dynamiques ?
Test dynamique Le test dynamique est une mรฉthode de test logiciel utilisรฉe pour tester le comportement dynamique du code. Son principal objectif est d'examiner le comportement du logiciel avec des variables dynamiques (variables non constantes) et de dรฉceler les points faibles de l'environnement d'exรฉcution. L'exรฉcution du code est nรฉcessaire pour tester le comportement dynamique.
Les tests sont verification ET VALIDATIONLes deux approches (V, V et V) sont nรฉcessaires pour un test complet. La vรฉrification est effectuรฉe par des tests statiques, qui examinent les exigences, les documents de conception et le code sans les exรฉcuter. La validation est effectuรฉe par des tests dynamiques, qui exรฉcutent l'application et comparent son comportement rรฉel ร son comportement attendu.
Le tableau ci-dessous permet de les distinguer en un coup d'ลil.
| Aspect | Tests statiques (vรฉrification) | Tests dynamiques (validation) |
| Code rรฉalisรฉ | Non | Oui |
| Activitรฉs typiques | Revvues, visites guidรฉes, inspections, analyse statique | Exรฉcution des cas de test ร tous les niveaux de test |
| Rรฉponse ร la question | Construisons-nous le produit correctement ? | Construisons-nous le bon produit ? |
| Dรฉfauts trouvรฉs | Exigences ambiguรซs, violations des normes de codage, code mort | Sorties incorrectes, fuites de mรฉmoire, erreurs de synchronisation, dรฉfaillances d'intรฉgration |
| Dรฉbut | Dรจs qu'un artefact existe | Une fois qu'une version exรฉcutable existe |
| Coรปt relatif d'une rรฉparation | Plus bas, car les dรฉfauts sont dรฉtectรฉs plus tรดt. | Plus รฉlevรฉ, car les dรฉfauts apparaissent plus tard. |
Exemple de test dynamique
Un court exemple concret illustre le comportement des tests dynamiques en pratique.
Supposons qu'une page de connexion soit en cours de test. Elle comporte deux champs, Nom d'utilisateur et Mot de passe, et le Nom d'utilisateur est limitรฉ aux caractรจres alphanumรฉriques.
Lorsque l'utilisateur saisit le nom d'utilisateur comme ยซGuru99โ, le systรจme l'accepte. Lorsque l'utilisateur saisit ยซGuruร la saisie de ยซ 99@123 ยป, lโapplication gรฉnรจre un message dโerreur. Ce rรฉsultat indique que le code rรฉagit dynamiquement en fonction des donnรฉes saisies par lโutilisateur.
Les tests dynamiques consistent donc ร travailler avec le systรจme rรฉel, ร fournir une entrรฉe et ร comparer le comportement rรฉel de l'application avec le comportement attendu โ autrement dit, ร travailler avec le systรจme dans le but de trouver des erreurs.
Les tests dynamiques consistent donc ร valider une application logicielle comme le ferait un utilisateur final, dans diffรฉrents environnements, afin de concevoir le logiciel adรฉquat.
ร quoi servent les tests dynamiques ?
L'objectif principal des tests dynamiques est de garantir le bon fonctionnement du logiciel pendant et aprรจs son installation, afin de fournir une application stable et exempte de dรฉfauts majeurs. Aucun logiciel n'est totalement exempt d'erreurs, et les tests peuvent rรฉvรฉler la prรฉsence de dรฉfauts, mais jamais leur absence.
Les tests dynamiques garantissent รฉgalement la cohรฉrence de l'ensemble du logiciel, comme le montre cet exemple.
Dans une application bancaire, il existe plusieurs รฉcrans, tels que Mes comptes, Virements et Bill Payer. Tous contiennent un champ montant.
Supposons que le champ ยซ Mes comptes ยป affiche le montant de 25 000, que le champ ยซ Virement de fonds ยป affiche รฉgalement 25 000 $ et queโฆ Bill L'รฉcran de paiement affiche 25 000 $. Le montant est le mรชme, mais la faรงon dont il est affichรฉ est diffรฉrente, ce qui rend le logiciel incohรฉrent.
La cohรฉrence ne se limite pas aux fonctionnalitรฉs. Elle englobe รฉgalement des normes telles que la performance, l'ergonomie et la compatibilitรฉ, ce qui explique l'importance des tests dynamiques.
Types de tests dynamiques
Les tests dynamiques sont classรฉs en deux catรฉgories.
- Blanc Box Tests
- Noir Box Tests
Le diagramme ci-dessous met en correspondance les deux catรฉgories avec les niveaux de test qui leur sont subordonnรฉs.
Chaque type et son usage prรฉvu sont dรฉcrits ci-dessous.
Blanc Box Tests โ Une mรฉthode de test logiciel oรน la structure interne et la conception du systรจme sont connues du testeur. Son objectif principal est de vรฉrifier le fonctionnement du systรจme ร partir du code. Elle est gรฉnรฉralement mise en ลuvre par des dรฉveloppeurs ou des testeurs ยซ boรฎte blanche ยป possรฉdant des connaissances en programmation.
Noir Box Tests โ Une mรฉthode de test oรน la structure interne, le code et la conception sont inconnus du testeur. Son objectif principal est de vรฉrifier la fonctionnalitรฉ du systรจme testรฉ. Ce type de test nรฉcessite l'exรฉcution de la suite de tests complรจte, est principalement rรฉalisรฉ par des testeurs et ne requiert aucune connaissance en programmation.
Les tests en boรฎte noire sont ร nouveau classรฉs en deux types.
- Essais fonctionnels
- Tests non fonctionnels
Essais fonctionnels
Test fonctionel Cette vรฉrification vise ร s'assurer que toutes les fonctionnalitรฉs dรฉveloppรฉes correspondent aux spรฉcifications fonctionnelles. Elle est rรฉalisรฉe en exรฉcutant le test fonctionnel. cas de test Rรฉdigรฉ par l'รฉquipe d'assurance qualitรฉ. Durant cette phase, le systรจme est testรฉ en fournissant des donnรฉes d'entrรฉe, en vรฉrifiant les rรฉsultats de sortie et en comparant les rรฉsultats obtenus aux rรฉsultats attendus.
Il existe diffรฉrents niveaux de tests fonctionnels, dont les plus importants sont les quatre ci-dessous.
- Tests unitaires โ Une unitรฉ est un petit fragment de code testable. Les tests unitaires sont effectuรฉs sur chaque unitรฉ logicielle et sont rรฉalisรฉs par les dรฉveloppeurs.
- Test d'intรฉgration โ Effectuรฉe aprรจs les tests unitaires, en combinant les unitรฉs testables individuelles. Elle est rรฉalisรฉe soit par les dรฉveloppeurs, soit par les testeurs.
- Test du systรจme โ Ce test est rรฉalisรฉ pour s'assurer que le systรจme se comporte conformรฉment aux exigences. Il est gรฉnรฉralement effectuรฉ par les testeurs lorsque le systรจme complet est prรชt, une fois la version transmise ร l'รฉquipe d'assurance qualitรฉ.
- Test de rรฉception โ Ce test est rรฉalisรฉ pour vรฉrifier si le systรจme rรฉpond aux exigences mรฉtier et s'il est prรชt ร รชtre utilisรฉ ou dรฉployรฉ. Il est gรฉnรฉralement effectuรฉ par les utilisateurs finaux.
Tests non fonctionnels
Tests non fonctionnels Les tests non fonctionnels sont une technique de test qui ne se concentre pas sur les aspects fonctionnels, mais plutรดt sur les attributs non fonctionnels du systรจme, tels que les fuites de mรฉmoire, les performances ou la robustesse. Ils sont effectuรฉs ร tous les niveaux de test.
Il existe de nombreuses techniques de test non fonctionnelles, dont les cinq plus importantes sont prรฉsentรฉes ci-dessous.
- Test de performance โ vรฉrifie si le temps de rรฉponse du systรจme est normal, conformรฉment aux exigences, sous la charge rรฉseau souhaitรฉe.
- Test de rรฉcupรฉration โ vรฉrifie la capacitรฉ d'un systรจme ร se remettre de pannes et de dรฉfaillances matรฉrielles.
- Test de compatibilitรฉ โ vรฉrifie le comportement du systรจme dans diffรฉrents environnements.
- Test de sรฉcuritรฉ โ vรฉrifie la robustesse de l'application, en s'assurant que seuls les utilisateurs et les rรดles autorisรฉs peuvent accรฉder au systรจme.
- Tests d'utilisabilitรฉ โ vรฉrifie la facilitรฉ d'utilisation du systรจme par les utilisateurs finaux et leur niveau de confort avec celui-ci.
Techniques de tests dynamiques
Une fois les types dรฉfinis, la question suivante est de savoir comment un cycle de test dynamique est concrรจtement exรฉcutรฉ.
techniques de test dynamique dans le STLC Les tests dynamiques comprennent des tรขches telles que l'analyse des exigences, la planification des tests, la conception et la mise en ลuvre des cas de test, la configuration de l'environnement de test, l'exรฉcution des cas de test, le signalement des anomalies et, enfin, la clรดture des tests. Chaque tรขche dรฉpend de la rรฉalisation de la prรฉcรฉdente.
Dans le cadre du cycle de vie des tests logiciels (STLC), le processus de test dynamique proprement dit dรฉbute par la conception des cas de test. Le diagramme ci-dessous illustre la sรฉquence des activitรฉs, dรฉcrites ci-aprรจs.
Avant d'entamer le processus, la stratรฉgie ร suivre pour les tests dynamiques doit รชtre dรฉfinie.
Une stratรฉgie de test doit principalement tenir compte des ressources disponibles et du calendrier. En fonction de ces deux facteurs, l'objectif, le pรฉrimรจtre, les phases ou cycles de test, le type d'environnement, les hypothรจses ou difficultรฉs potentielles et les risques doivent รชtre documentรฉs.
Une fois la stratรฉgie dรฉfinie et acceptรฉe par la direction, le processus de conception des cas de test proprement dit peut commencer.
Conception et mise en ลuvre des tests
Dans cette phase, l'รฉquipe identifie les รฉlรฉments suivants.
- Fonctionnalitรฉs ร tester
- Conditions de test dรฉrivรฉes de ces fonctionnalitรฉs
- รlรฉments de couverture dรฉcoulant des conditions de test
- cas de test dรฉrivรฉs des รฉlรฉments de couverture
Boรฎte noire techniques de conception de tests comme le partitionnement par รฉquivalence, l'analyse des valeurs limites, test de table de dรฉcision et test de transition d'รฉtat sont ce qui transforme une condition de test en un ensemble concret de cas exรฉcutables.
Configuration de l'environnement de test
Le environnement de test L'environnement de test doit toujours รชtre similaire ร l'environnement de production. Durant cette phase, la configuration est installรฉe et les machines de test sont gรฉrรฉes et configurรฉes.
Test d'exรฉcution
Durant cette phase, les cas de test sont effectivement exรฉcutรฉs, soit manuellement, soit par le biais de l'automatisationet les rรฉsultats rรฉels sont comparรฉs aux rรฉsultats attendus.
Rapport de bug capturรฉ
Si, suite ร l'exรฉcution, les rรฉsultats attendus et les rรฉsultats obtenus diffรจrent, le cas de test doit รชtre marquรฉ comme ayant รฉchouรฉ et un bogue doit รชtre consignรฉ. gestion des dรฉfauts processus.
Avantages des tests dynamiques
- Les tests dynamiques rรฉvรจlent des dรฉfauts considรฉrรฉs comme trop difficiles ou trop complexes ร dรฉtecter, et que l'analyse statique ne peut absolument pas couvrir.
- Le logiciel est exรฉcutรฉ de bout en bout, ce qui amรฉliore la qualitรฉ du produit et du projet.
- Les tests dynamiques constituent un moyen essentiel de dรฉtecter les menaces de sรฉcuritรฉ dans un systรจme en fonctionnement.
- Les dรฉfauts survenant uniquement lors de l'exรฉcution, tels que les fuites de mรฉmoire, les problรจmes de synchronisation et les รฉchecs d'intรฉgration, apparaissent ici et nulle part ailleurs.
Inconvรฉnients des tests dynamiques
- Les tests dynamiques sont chronophages, car l'exรฉcution de l'application ou du code nรฉcessite une grande quantitรฉ de ressources.
- Cela augmente le coรปt du projet, car cela ne commence pas tรดt dans le cycle de vie du logiciel et les problรจmes corrigรฉs ultรฉrieurement coรปtent plus cher ร rรฉparer.
- Un environnement de production et des donnรฉes de test rรฉalistes sont des prรฉrequis, et leur mise en place et leur maintenance nรฉcessitent des efforts.


