|
|
DIDACTICIEL VERSION 1.08.6 |
| SOMMAIRE | CHAPITRE 4 - UTILISATION DU DEBOGUEUR |
|
Création d'une Procédure Générale Gestion de Composants d'IHM Complexes Avant de démarrer votre propre Application
|
4.4 NSud Actif versus NSud Sélectionné 4.5 Exécution Pas à Pas d'un Test ou d'une Séquence 4.6 Saut de l'Exécution de NSuds 4.7 Paramétrage des Points d'Interruption 4.8 Résolution de Problèmes d'Exécution
Dans ce chapitre, nous allons apprendre à exécuter une suite de test avec le débogueur intégré et intuitif de qftestJUI. Pour ceux qui sont familiers avec les programmes de débogage en Java ou en d'autres langages de programmation, vous trouverez ce débogueur similaire aussi bien en termes de fonctionnalités que d'utilité. Pour le didacticiel sur le débogueur, nous utiliserons une suite de test avec laquelle vous vous êtes déjà familiarisé(e) : Options.qft. Si cette suite de test n'est pas déjà en exécution sur votre système, merci de bien vouloir vous référer au Chapitre 2. Le débogueur de qftestJUI peut être démarré soit en sélectionnant un nSud (ou des nSuds) à exécuter et en appuyant sur les boutons step-in
Figure 4.1 - Sélection d'un NSud dans la Suite de Test Options.qft et Démarrage du Débogueur Veuillez noter que si vous exécutez les tests sur votre suite de test et que vous utilisez le bouton de rejeu pour démarrer l'exécution, le débogueur ne sera normalement pas visible. Si vous activez le débogueur avec le menu Debugger -> Enable debugger, le débogueur sera activé automatiquement si une exception non capturée est générée. Si un point d'interruption défini par l'utilisateur est atteint, le débogueur est activé sans condition. Dans tous les cas, l'exécution de la suite de test sera arrêtée et le nSud qui a arrêté l'exécution apparaîtra avec une flèche. Le débogueur est exécuté soit depuis la vue normale de la suite de test, soit en ouvrant la fenêtre Débogueur dédiée via le menu Debugger -> Show Debugger Window (une fois le débogueur démarré). Vous pouvez également faire en sorte que la fenêtre débogueur s'ouvre automatiquement lorsque le débogueur démarre en changeant les propriétés globales par le menu Debugger -> Options -> Always Show Debugger Window. La fenêtre débogueur ressemble à la vue normale de la suite de test avec laquelle vous êtes désormais familiarisé(e). Elle contient cependant seulement un sous-ensemble des opérations de qftestJUI nécessaires au débogage. La figure ci-dessous montre la fenêtre Débogueur après le démarrage du débogueur pour la suite de test Options.qft.
Figure 4.2 - Fenêtre Débogueur Quand la fenêtre Débogueur est affichée, vous remarquez que les opérations de débogage dans la fenêtre principale suite de test sont alors désactivées, permettant ainsi le contrôle du débogueur uniquement à partir de la fenêtre Débogueur. 4.4 NSud Actif versus NSud Sélectionné Quand le débogueur s'exécute, un indicateur est utilisé pour marquer le nSud courant, qui montre simplement où est le débogueur pendant qu'un test ou une séquence s'exécute. Veuillez noter que qftestJUI marque la hiérarchie de l'exécution, depuis le point d'entrée au nSud actif, avec un petit pointeur (Cf. figure 4.2 - Fenêtre Débogueur). Si à n'importe quel moment pendant que le débogueur s'exécute, vous ne pouvez pas voir immédiatement le nSud courant, vous pouvez appuyer sur le bouton de localisation du nSud courant (Locate Current Node) ou sélectionner le menu Debugger -> Locate Current Node pour faire en sorte que le débogueur sélectionne le nSud courant. Un nSud "sélectionné" est un nSud qui est mis en évidence quand vous cliquez dessus avec la souris. Cela peut parfois être source de confusion, parce que le nSud actif pendant le débogage est souvent également sélectionné. Il vous faut donc apprendre à les distinguer ! 4.5 Exécution Pas à Pas d'un Test ou d'une Séquence Vous êtes maintenant prêt(e) à commencer l'exécution pas à pas des nSuds de votre suite de test pour voir le comportement du débogueur. Avec le nSud actif positionné à Sequence: Table (Cf. figure 4.2), appuyez sur le bouton step-in Vous verrez que le débogueur provoque l'ouverture du nSud courant pour afficher ses nSuds fils, et que c'est le premier nSud fils qui est désormais sélectionné, comme le montre la figure ci-dessous :
Figure 4.3 - Après une opération de step-in Appuyez sur le bouton step-in Maintenant que vous avez vu la fonctionnalité de l'opération de step-in, appuyez sur le bouton Continue test-run pour permettre à cette séquence particulière de s'exécuter complètement. Après l'exécution de la première séquence de la suite de test, la vue Débogueur montre quelque chose de similaire à la figure ci-dessous :
Figure 4.4 - Préparation de la commande step-over Si ce nSud Sequence: Tab n'est pas sélectionné dans votre fenêtre comme montré dans la figure, alors sélectionnez-le. Une fois que vous êtes prêt(e), appuyez sur le bouton step-over . Cette fois, le débogueur réagit en démarrant l'exécution de la séquence, mais à la différence de l'opération de step-in, vous ne voyez pas les étapes individuelles. Tandis que la séquence s'exécute, vous pouvez ouvrir le nSud Sequence: Tab et voir qu'il y a plusieurs nSuds fils dessous, en effet il y a plusieurs autres séquences situées ici. L'opération step-over est donc une façon pour vous d'exécuter un nSud sans avoir à vous préoccuper des détails des étapes individuelles de ce nSud. Lorsque l'exécution du nSud Sequence: Tab est achevée, le nSud Sequence: Text Check est alors sélectionné. Appuyez sur le bouton step-in afin que la vue du débogueur vous montre ce qui suit :
Figure 4.5 - Préparation de la commande step-out Maintenant appuyez sur le bouton step-out Que fait l'opération step-out ? Très simplement, elle exécute tous les nSuds trouvés au même niveau dans la hiérarchie que le nSud courant et elle s'arrête lorsqu'un nSud d'un niveau supérieur dans la structure hiérarchique est trouvé. Tout nSud fils trouvé durant l'exécution du step-out est bien évidemment exécuté comme prévu. Dans cet exemple, la fonctionnalité de step-out peut sembler similaire à celle de l'opération Continue test-run. C'est en partie vrai, mais il y a une différence bien nette : l'opération step-out s'arrête au nSud suivant qui est plus élevé dans la hiérarchie, tandis que Continue test-run fonctionne jusqu'à ce qu'il trouve un nSud qui soit au même niveau que le nSud point d'entrée avec lequel vous avez commencé. Si cela vous semble compliqué, essayez simplement de jouer avec les deux opérations au sein de la suite de test. 4.6 Saut de l'Exécution de NSuds Les fonctions skip étendent les possibilités du débogueur de qftestJUI d'une manière puissante qui n'est typiquement pas possible pour un débogueur dans un environnement de programmation standard. En bref, elles vous permettent de sauter un ou plusieurs nSuds sans avoir à les exécuter du tout. Cela peut s'avérer utile pour différentes raisons, comme pour naviguer plus rapidement à une certaine position dans l'exécution du test ou pour sauter un nSud qui génère une erreur. Installez la suite de test à nouveau comme vous l'avez fait au début de la section précédente, et appuyez sur le bouton step-in à nouveau jusqu'à ce que le nSud courant soit à l'intérieur de la séquence (Cf. figure 4.3). Maintenant appuyez sur le bouton skip-out Votre suite de test devrait désormais ressembler à la figure 4.4. Laissez-la telle qu'elle est, et maintenant appuyez sur le bouton skip-over Remarque : Utilisez prudemment le skip-over et le skip-out. Sauter une séquence avant son achèvement peut faire que votre SUT soit laissé dans un état inconnu, si bien que d'autres séquences ou tests de votre suite de test ne puissent réagir avec. 4.7 Paramétrage des Points d'Interruption Paramétrez un point d'interruption est une façon déterministe pour permettre à votre suite de test de s'exécuter jusqu'à ce qu'elle atteigne le nSud que vous avez spécifié comme point d'interruption, lorsque le débogueur sera actif et vous permettra de continuer comme vous le voulez. Pour paramétrer un point d'interruption, cliquez simplement sur un nSud et sélectionnez le menu Debugger -> Breakpoint on/off, ou tapez le raccourci clavier Ctrl+F8. Le point d'interruption est indiqué avec un (B) devant le nSud du nSud, comme montré ci-dessous :
Figure 4.6 - Paramétrage d'un Point d'Interruption Pour voir comment un point d'interruption fonctionne, sélectionnez le nSud le plus haut dans la hiérarchie de votre suite de test et appuyez sur le bouton de rejeu. Pour désactiver un point d'interruption, cliquez simplement sur le nSud où le point d'interruption a été paramétré, et sélectionnez le menu Debugger -> Breakpoint on/off ou utilisez le raccourci clavier Ctrl+F8. Le menu Debugger -> Clear all breakpoints est également utile pour supprimer tous les points d'interruption paramétrés dans votre suite de test. Il n'y a aucune limite quant au nombre de points d'interruption que vous pouvez paramétrer dans votre suite de test, mais veuillez noter que les points d'interruption ne sont pas sauvegardés avec votre session. Aussi lorsque vous fermez la suite de test et puis l'ouvrez à nouveau, les points d'interruption auront disparu. 4.8 Résolution de Problèmes d'Exécution Lorsque vous commencez à créer et à exécuter vos propres suites de test, vous pouvez vous retrouver confronté(e) à des problèmes comme un ID de composant ou un nom de procédure inconnu. C'est un problème courant, souvent dû à un ID ou un nom incorrect ou peut-être à un changement dans le nom ou l'ID auquel vous vous référencez. Pendant l'exécution, ce problème se manifeste par l'arrêt de l'exécution de votre suite de test, avec un message approprié dans qftestJUI en rapport avec l'élément inconnu. Cela est l'occasion de démontrer une des plus puissantes fonctionnalités du débogueur de qftestJUI : la possibilité de corriger de tels problèmes à la volée pendant l'exécution (runtime) de la suite de test. Tout d'abord , faisons en sorte que votre suite de test génère une exception quand elle s'exécute avec un ID de composant inconnu. Prenez n'importe quel nSud au sein de la suite de test et éditez le champ ID de composant qui est évidemment mauvais. Pour cet exemple, nous avons pris le premier nSud sous la séquence Table utilisé en figure 4.6 :
Figure 4.7 - Sélection d'un Noeud à Modifier et dont l'ID de composant a été modifié pour ressembler à :
Figure 4.8 - NSud Modifié Pour éditer le champ ID composant, cliquez sur le nSud et alors sélectionnez le menu Edit -> Edit, ou alors éditez le champ dans la fenêtre Détails (sélectionnez le menu View -> Show Details si la fenêtre Détails n'est pas visible à votre écran). Cliquez sur OK dans le dialogue d'édition ou la fenêtre Détails après avoir effectué vos changements. Vous verrez alors un avertissement indiquant que l'ID du composant n'est pas valide. qftestJUI essaie de trouver les problèmes avant qu'ils ne se produisent à l'exécution. Toutefois, pour cet exemple, nous voulons forcer une référence incorrecte, aussi laissez l'entrée modifiée telle qu'elle est. Nous pouvons maintenant exécuter la suite de test modifiée. Sélectionnez le nSud Test: Clickstream et appuyez sur le bouton de rejeu pour commencer l'exécution. Le test en cours d'exécution va rapidement s'arrêter avec l'apparition d'un message d'erreur :
Figure 4.9 - ID de Composant Inconnu Cliquez sur OK pour fermer la boîte de dialogue. Vous voyez que l'exécution de la suite de test est en pause avec le nSud modifié sélectionné comme nSud courant. Le débogueur attend vos directives. Voulez-vous sauter le nSud incriminé ? Arrêter complètement l'exécution de votre suite de test pour examiner le problème ? Modifier à la volée le nSud ? ou Continuer l'exécution ? Dans ce cas, nous optons pour le dernier choix. Le débogueur étant en pause, vous pouvez éditer à nouveau le champ ID du composant pour le remettre à son état original. Si vous avez oublié quel était son état original, sélectionnez le menu Edit -> Undo pour le restaurer (en vous assurant que vous n'avez fait aucun autre changement dans votre suite de test). Une fois l'ID correct restauré, appuyez sur le bouton Continue test-run Parfois retrouver des erreurs dans votre suite de test n'est pas aussi simple que dans l'exemple précédent. La cause de certains problèmes peut résider dans une séquence d'événements qui a amené l'exception ou l'erreur finale que vous avez devant vous. Dans de telles circonstances, le run-log peut être d'une grande utilité à des fins de débogage, dans la mesure où il montre en détail les différentes étapes de qftestJUI pour exécuter chaque nSud et la manière dont il résout les ID de composant, les noms de procédure, les variables ou d'autres éléments. Comme le run-log peut être fastidieux pour rechercher, plus particulièrement si votre suite de test devient assez complexe, le débogueur vous fournit un mécanisme simple pour passer immédiatement à la région d'intérêt dans le run-log quand une erreur se produit. Nous allons démontrer ce point en utilisant le même exemple simple que celui utilisé en section 4.8, qui a généré une exception en raison d'un ID de composant inconnu. Répétez les mêmes étapes décrites dans cette section et exécutez la suite de test comme précédemment, sauf que maintenant au lieu de corriger l'ID de composant comme nous l'avons fait lorsque l'erreur s'est produite, nous allons en premier inspecter le run-log. Pour passer à l'endroit approprié dans le run-log, sélectionnez le menu Debugger -> Jump to Run-Log, ou utilisez le raccourci clavier Ctrl+J. Le run-log s'ouvre et le nSud incriminé est automatiquement sélectionné comme montré ci-dessous :
Figure 4.10 - Saut au run-log Prenez quelques minutes maintenant pour regarder les différents éléments qui vous sont présentés dans le run-log. Bien que l'exemple que nous utilisons soitfacilement compréhensible, vous familiariser avec ce puissant outil vous sera d'une grande aide dès lors que vos suites de test deviendront compliquées. Quand vous avez fini, vous pouvez continuer avec l'exemple comme précédemment ou arrêter simplement l'exécution du test. Cependant, souvenez-vous de ne pas sauvegarder les changements dans la suite de test si vous n'avez pas corrigé l'erreur. |
|
qftestJUI est une marque de Quality First Software GmbH. Kapitec Software SAS est le Distributeur Français de qftestJUI. Ce didacticiciel a été traduit de l'anglais par Kapitec Software SAS (Novembre 2005). Date de mise à jour : 06-Oct-2006 |