Fermer

avril 24, 2019

Utilisation de test oracles pour garantir la vraie validité de vos tests


Levez la main si quelque chose de similaire vous est déjà arrivé: Vous écrivez un test fonctionnel qui utilise l’interface utilisateur de votre système pour créer un utilisateur. Vous automatisez la navigation vers le bon écran, vous saisissez toutes les bonnes valeurs, cliquez sur le bouton Soumettre et vous vérifiez le message «Utilisateur créé!». Vous effectuez le test plusieurs fois pour vous assurer que tout fonctionne correctement. Les choses se présentent bien, alors vous enregistrez dans le contrôle de code source, où il est intégré aux opérations d’automatisation habituelles.

Peu de temps après le dépôt d’un nouveau bogue indiquant que les utilisateurs nouvellement créés ne se présentent pas ailleurs dans le système. L'enquête sur le bogue révèle que l'enregistrement du nouvel utilisateur dans la base de données était une anomalie. Cette routine en particulier échouait sans traitement correct des erreurs. Les échecs ont été ignorés et le message "Utilisateur créé!" Était affiché quelle que soit l'action réelle de la base de données.

Whoops.

Pour obtenir un véritable test de bout en bout, vous ne devez pas vous fier aux commentaires Interface utilisateur pour valider le test réussi; vous devez plutôt effectuer une étape supplémentaire consistant à valider les informations internes du système.

Intégration des oracles dans vos tests

Le terme «test des oracles» décrit une méthode, une action ou une étape qui vous aide à franchir cette étape supplémentaire. Les oracles prennent de nombreuses formes différentes selon ce que vous testez. Vous devrez peut-être vérifier un enregistrement dans la base de données, valider le statut d’un fichier de configuration ou déterminer si un courrier électronique a été envoyé dans le format approprié.

Le test suivant est un exemple d’existence d’un fichier. Le test fait partie de notre application de démonstration hébergée sur GitHub. Si cela vous intéresse, vous pouvez télécharger le dernier téléchargement ou simplement cloner le référentiel entier.

Ce test ouvre une session sur l'application et exporte la liste actuelle des utilisateurs vers un fichier PDF.

[19659005] Implémentation d’un Oracle basé sur des fichiers

Voici à quoi ressemble le test lui-même:

Le test exécute une étape d’initialisation, ouvre une session sur le système et accède à la page d’accueil, clique sur le bouton “Exporter”. to PDF ”, enregistre le fichier dans un emplacement spécifique, puis valide que ce fichier existe réellement.

Voyons cela plus en détail.

L'étape Initialize est une étape codée simple qui définit une variable d'extraction pointant vers l'emplacement où sera enregistré le fichier:

 string downloadPath = @ "d:  temp  contacts.pdf"; 

 SetExtreatedValue ("downloadPath", downloadPath); 

 

 si (System.IO.File.Exists (downloadPath)) {

 System.IO.File.Delete (downloadPath); 

} 

Nous supprimez également le fichier s'il existe déjà depuis une exécution. [1]

L’étape suivante utilise la fonction Tester par étape de Test Studio pour exécuter un autre test complet en une seule étape. Cet autre test nous connecte au système et nous amène à la grille principale.

La troisième étape clique sur le bouton Exporter au format PDF, tandis que la quatrième étape gère la boîte de dialogue de téléchargement. Notez que les données sont exploitées et que la variable extraite downloadPath est extraite.

Une fois le téléchargement terminé, l'étape 4, une autre étape codée, vérifie l'existence du fichier dans le chemin de téléchargement que nous avons défini. étape 1.

 Assert.IsTrue (System.IO.File.Exists (GetExtractedValue ("downloadPath"). ToString ())); 

Notez que nous devons appeler explicitement ToString () sur la valeur de retour de GetExtreatedValue – c'est parce que GetExtreatedValue retourne un objet brut, pas une chaîne.

Voilà: nous avons effectué notre test et franchi une étape supplémentaire pour nous assurer que le fichier est bien écrit. Notez que nous n'avons pas confirmé que le fichier est correctement formé, qu'il contient les bonnes informations, etc. C'est un peu plus long que ce que je souhaite lire dans cet article!

Closing Up

Prenez le temps d'écrire des oracles dans votre Les tests garantissent que vous obtenez un test bien meilleur pour vérifier la validité de votre système. La fonction pas à pas codée de Test Studio vous permet d’écrire de grands oracles directement dans l’interface utilisateur de Test Studio. Vous pouvez également ouvrir Visual Studio et tirer parti de cet environnement pour écrire des oracles extrêmement puissants à l'aide des étapes de génie logiciel nécessaires.

[1] La valeur initiale de downloadPath est une chaîne câblée. Il s'agit en fait d'une mauvaise pratique car elle verrouille votre configuration et vous causera très probablement beaucoup de chagrin lorsque vous exécutez ces tests sur un système différent. Je vivement vous encourage à placer ce fichier dans un fichier de paramètres que vous pouvez conserver propre et unique pour chaque environnement dans lequel vous exécutez vos tests. Je le couvrirai dans un prochain article.

À propos de l'auteur

 Jim Holmes

Jim Holmes

compte environ 25 ans d'expérience dans le domaine des technologies de l'information. Il est co-auteur de "Windows Developer Power Tools" et du chef Cat Herder de la conférence CodeMash. Il est blogueur et évangéliste pour le Test Studio de Telerik, un ensemble impressionnant d’outils permettant aux équipes de fournir de meilleurs logiciels. Trouvez-le sous le nom @aJimHolmes sur Twitter.


Les commentaires sont désactivés en mode Prévisualisation.






Source link