Cadre d'automatisation des tests : Archistructure et types

โšก Rรฉsumรฉ intelligent

L'architecture d'un framework d'automatisation des tests dรฉfinit les normes de codage, la gestion des donnรฉes de test et les rรจgles du rรฉfรฉrentiel d'objets que suivent les scripts d'automatisation. Il en existe cinq types รฉtablis, chacun prรฉsentant un compromis entre l'effort de configuration, la rรฉutilisation, le coรปt de maintenance et l'รฉvolutivitรฉ ร  long terme.

  • (I.e. Dรฉfinition principale : Un framework est un ensemble de lignes directrices, et non de rรจgles, qui favorise la rรฉutilisation, la portabilitรฉ et rรฉduit les coรปts de maintenance.
  • ๐Ÿ‡ง๐Ÿ‡ท Programmation linรฉaire : L'enregistrement et la lecture sont les fonctionnalitรฉs les plus rapides ร  mettre en place et les plus difficiles ร  maintenir, car les donnรฉes restent codรฉes en dur.
  • ๐Ÿงฑ Bibliothรจque de tests Archistructure : Les รฉtapes communes deviennent des fonctions rรฉutilisables appelรฉes par un script pilote, ce qui augmente la rรฉutilisation au prix d'un temps de planification plus long.
  • (I.e. Axรฉ sur les donnรฉes : La logique de test reste dans les scripts tandis que les donnรฉes sont transfรฉrรฉes vers Excel, CSV ou une base de donnรฉes, permettant ainsi de nombreux scรฉnarios par script.
  • (I.e. Axรฉ sur les mots clรฉs : Les actions sont stockรฉes sous forme de mots-clรฉs dans un tableau, ce qui rend les tests indรฉpendants de l'outil et de l'application.
  • ๐Ÿ”€ Modรจle hybride: La plupart des suites logicielles matures combinent des tableaux de mots-clรฉs avec une dรฉcomposition fonctionnelle pour รฉquilibrer l'effort et la couverture.

Cadre d'automatisation des tests Archistructure et types

Quโ€™est-ce que le framework dans les tests dโ€™automatisation ?

A Cadre d'automatisation des tests est un ensemble de lignes directrices telles que les normes de codage, la gestion des donnรฉes de test, le traitement du rรฉfรฉrentiel d'objets, etc. qui, lorsqu'elles sont suivies lors des scripts d'automatisation, produisent des rรฉsultats bรฉnรฉfiques tels qu'une rรฉutilisation accrue du code, une portabilitรฉ plus รฉlevรฉe, une rรฉduction des coรปts de maintenance des scripts, etc. Ce ne sont que des lignes directrices et non rรจgles; ils ne sont pas obligatoires et vous pouvez toujours rรฉdiger un script sans suivre les directives. Mais vous passerez ร  cรดtรฉ des avantages dโ€™avoir un Framework.

Pourquoi avez-vous besoin d'un framework ?

Prenons un exemple pour comprendre pourquoi vous avez besoin d'un Framework.

Je suis sรปr que vous avez assistรฉ ร  un sรฉminaire/confรฉrence/confรฉrence oรน les participants ont รฉtรฉ invitรฉs ร  respecter les directives suivantes :

  • Les participants doivent occuper leur place 5 minutes avant le dรฉbut d'une confรฉrence.
  • Apportez un cahier et un stylo pour prendre des notes.
  • Lisez les abdostract, pour que vous ayez une idรฉe du contenu de la prรฉsentation.
  • Les tรฉlรฉphones mobiles doivent รชtre rรฉglรฉs sur silencieux.
  • Utilisez les portes de sortie ร  lโ€™extrรฉmitรฉ opposรฉe de lโ€™orateur si vous devez partir au milieu de la confรฉrence.
  • Les questions seront rรฉpondues ร  la fin de la sรฉance.

Pensez-vous pouvoir animer un sรฉminaire SANS respectant ces directives ?

La rรฉponse est un grand OUI! Certes, vous pouvez organiser un sรฉminaire/une confรฉrence/une confรฉrence/une dรฉmonstration sans les directives ci-dessus. En fait, certains d'entre nous ne les suivront pas mรชme si elles sont prรฉsentรฉes !

Mais si les directives sont respectรฉes, cela se traduira par un rรฉsultat bรฉnรฉfique comme une rรฉduction de la dรฉsaffection du public.traction pendant les cours, augmentation de la rรฉtention des participants et meilleure comprรฉhension du sujet.

Sur la base de ce qui prรฉcรจde, un Le cadre peut รชtre dรฉfini comme un ensemble de lignes directrices qui, lorsquโ€™elles sont suivies, produisent des rรฉsultats bรฉnรฉfiques.

Cadre d'automatisation des tests Archistructure : Composants clรฉs

Avant de comparer les types, il est utile de voir ce que contient chaque framework. ArchiLa structure dรฉcrit la maniรจre dont ces parties sont agencรฉes en couches, de sorte qu'une modification d'une couche n'affecte pas les autres.

  • Couche de script de test : Contient les cas de test. Les scripts restent courts car ils font appel ร  des fonctions rรฉutilisables au lieu de rรฉpรฉter les รฉtapes de navigation.
  • Bibliothรจque de fonctions : Enregistre les actions partagรฉes telles que la connexion, la recherche et la dรฉconnexion, de sorte qu'une modification du flux de travail n'est effectuรฉe qu'une seule fois.
  • Rรฉfรฉrentiel d'objets : Associe des noms conviviaux ร  des localisateurs d'รฉlรฉments d'interface graphique. Lorsque l'interface change, seule cette couche est modifiรฉe.
  • Couche de donnรฉes de test : Conserve les valeurs d'entrรฉe et les valeurs attendues dans des sources Excel, CSV ou de bases de donnรฉes plutรดt que dans le code.
  • Couche de configuration : Contient l'environnement URLs, choix du navigateur, dรฉlais d'expiration et informations d'identification.
  • Couche de reporting : Gรฉnรจre des rapports d'exรฉcution, des captures d'รฉcran des รฉchecs et des journaux de diagnostic.
  • Couche d'exรฉcution : Dรฉclenche des suites de tรขches depuis un serveur de compilation, reliant l'automatisation ร  intรฉgration continue.

Les types de cadres ci-dessous diffรจrent principalement par la rigueur avec laquelle ils sรฉparent ces couches.

Types de cadres d'automatisation des tests

Vous trouverez ci-dessous les diffรฉrents types de frameworks de tests automatisรฉs :

  1. Script linรฉaire
  2. La bibliothรจque de tests ArchiCadre technologique.
  3. Le axรฉ sur les donnรฉes Tests Cadre.
  4. Le cadre de test pilotรฉ par mots-clรฉs ou par tableaux.
  5. Le cadre d'automatisation des tests hybrides.

Regardons-les en dรฉtail โ€“

1) Script linรฉaire โ€“ Enregistrement et lecture

Il s'agit du plus simple de tous les frameworks d'automatisation des tests et รฉgalement connu sous le nom de ยซ Enregistrement et lecture ยป. Dans ce Tests d'automatisation Framework, le testeur enregistre manuellement chaque รฉtape (navigation et entrรฉes utilisateur), insรจre des points de contrรดle (รฉtapes de validation) au premier tour. Il lit ensuite le script enregistrรฉ lors des tours suivants.

Exemple : Pensez ร  vous connecter Demande de rรฉservation de vol et vรฉrifier si l'application s'est chargรฉe lors d'une connexion rรฉussie. Ici, le testeur enregistrera simplement les รฉtapes et ajoutera des รฉtapes de validation.

SystemUtil.Run "flight4a.exe","","","open"
Dialog("Login").WinEdit("Agent Name:").Set "Guru99"
Dialog("Login").WinEdit("Password:").Set "Mercury"
Dialog("Login").WinButton("OK").Click
'Check Flight Reservation Window has loaded after successful log-on
Window("Flight Reservation").Check CheckPoint("Flight Reservation")

Avantages

  • Le moyen le plus rapide de gรฉnรฉrer un script
  • Expertise en automatisation non requise
  • Le moyen le plus simple d'apprendre les fonctionnalitรฉs de l'outil de test

Dรฉsavantages

  • Peu de rรฉutilisation des scripts
  • Les donnรฉes de test sont codรฉes en dur dans le script
  • Cauchemar de maintenance

2) La bibliothรจque de tests ArchiCadre technique

On l'appelle aussi ยซ Scripts structurรฉs ยป or ยซ Dรฉcomposition fonctionnelle ยป.

Dans ce framework de tests d'automatisation, les scripts de test sont initialement enregistrรฉs par ยซEnregistrement et lecture" mรฉthode. Later, les tรขches courantes ร  l'intรฉrieur des scripts sont identifiรฉes et regroupรฉes en fonctions. Ces fonctions sont appelรฉes par le script de test principal appelรฉ Chauffeur de diffรฉrentes maniรจres pour crรฉer des cas de test.

Exemple : En utilisant le mรชme exemple que ci-dessus, la fonction de connexion ร  Flight Reservation ressemblera ร  .

Function Login()
  SystemUtil.Run "flight4a.exe","","","open"
  Dialog("Login").WinEdit("Agent Name:").Set "Guru99"
  Dialog("Login").WinEdit("Password:").Set "Mercury"
  Dialog("Login").WinButton("OK").Click
End Function

Maintenant, vous appellerez cette fonction dans le script principal comme suit

Call Login()
---------------------------
'Other Function calls / Test Steps.
---------------------------

Avantages

  • Un niveau plus รฉlevรฉ de rรฉutilisation du code est atteint dans les scripts structurรฉs par rapport ร  ยซ enregistrement et lecture ยป
  • Les scripts d'automatisation sont moins coรปteux ร  dรฉvelopper en raison d'une plus grande rรฉutilisation du code
  • Maintenance des scripts plus facile

Dรฉsavantages

  • Une expertise technique est nรฉcessaire pour รฉcrire des scripts ร  l'aide de Test Library Framework
  • Il faut plus de temps pour planifier et prรฉparer les scripts de test.
  • Les donnรฉes de test sont codรฉes en dur dans les scripts

3) Le cadre de tests basรฉs sur les donnรฉes

Dans ce cadre, alors que Cas de test La logique rรฉside dans les scripts de test, tandis que les donnรฉes de test sont sรฉparรฉes et stockรฉes en dehors de ces scripts. Ces donnรฉes sont lues ร  partir de fichiers externes (fichiers Excel, texte, CSV, sources ODBC, objets DAO, objets ADO) et chargรฉes dans les variables des scripts de test. Ces variables servent ร  la fois aux valeurs d'entrรฉe et aux valeurs de vรฉrification. Les scripts de test sont prรฉparรฉs soit par programmation linรฉaire, soit ร  l'aide d'une bibliothรจque de tests. Cette technique est expliquรฉe plus en dรฉtail dans la section suivante. test basรฉ sur les donnรฉes tutoriel.

Exemple : Dรฉvelopperping Le script de connexion ร  la rรฉservation de vols utilisant cette mรฉthode comprendra deux รฉtapes.

ร‰tape 1) Crรฉez un fichier Test โ€“ Donnรฉes qui peut รชtre Excel, CSV ou toute autre source de base de donnรฉes.

Nom d'agent Mot de passe
Jimmy Mercury
Tina MERCURY
Bill Mercure

ร‰tape 2) Dรฉveloppez un script de test et faites des rรฉfรฉrences ร  votre source de donnรฉes de test.

SystemUtil.Run "flight4a.exe","","","open"
Dialog("Login").WinEdit("Agent Name:").Set DataTable("AgentName", dtGlobalSheet)
Dialog("Login").WinEdit("Password:").Set DataTable("Password", dtGlobalSheet)
Dialog("Login").WinButton("OK").Click
'Check Flight Reservation Window has loaded
Window("Flight Reservation").Check CheckPoint("Flight Reservation")
'Note "dtGlobalSheet" is the default excel sheet provided by QTP.

Avantages

  • Les modifications apportรฉes aux scripts de test n'affectent pas les donnรฉes de test
  • Les cas de test peuvent รชtre exรฉcutรฉs avec plusieurs ensembles de donnรฉes
  • Une variรฉtรฉ de scรฉnarios de test peuvent รชtre exรฉcutรฉs en faisant simplement varier les donnรฉes de test dans le fichier de donnรฉes externe.

Dรฉsavantages

  • Plus de temps est nรฉcessaire pour planifier et prรฉparer ร  la fois les scripts de test et les donnรฉes de test.

4) Le cadre de test pilotรฉ par mots-clรฉs ou pilotรฉ par table

Le Axรฉ sur les mots clรฉs ou le dรฉveloppement d'un framework d'automatisation pilotรฉ par les tables nรฉcessite des tables de donnรฉes et des mots-clรฉs, indรฉpendant du outil d'automatisation de test utilisรฉ pour les exรฉcuter. Les tests peuvent รชtre conรงus avec ou sans l'application. Dans un test basรฉ sur des mots clรฉs, la fonctionnalitรฉ de l'application testรฉe est documentรฉe dans un tableau ainsi que dans des instructions รฉtape par รฉtape pour chaque test.

Il existe 3 composants de base d'un framework basรฉ sur les mots clรฉs, ร  savoir. Mot-clรฉ, carte d'application, fonction du composant.

Le mot clรฉ est une action qui peut รชtre effectuรฉe sur un composant GUI. Ex. Pour la zone de texte du composant GUI, certains mots-clรฉs (action) seraient InputText, VerifyValue, VerifyProperty, etc.

Qu'est-ce que la carte des candidatures ?

Une carte d'application fournit des rรฉfรฉrences nommรฉes pour les composants de l'interface graphique. Les cartes d'application ne sont rien d'autre que ยซRรฉfรฉrentiel d'objets"

Qu'est-ce que la fonction des composants ?

Les fonctions de composant sont les fonctions qui manipulent ou interrogent activement le composant GUI. Un exemple de fonction serait de cliquer sur le bouton Web avec toute la gestion des erreurs, de saisir des donnรฉes dans une รฉdition Web avec toute la gestion des erreurs. Les fonctions des composants peuvent dรฉpendre de l'application ou รชtre indรฉpendantes.

Exemple: Pour comprendre la vue par mot-clรฉ, prenons le mรชme exemple. Cela implique 2 รฉtapes

ร‰tape 1: Crรฉation d'une table de donnรฉes (diffรฉrente de la table de donnรฉes de test crรฉรฉe dans Data Driven Framework). Cette table de donnรฉes contient l'action ร  effectuer sur les objets GUI et les arguments correspondants, le cas รฉchรฉant. Chaque ligne reprรฉsente une รฉtape de test.

Sujet Action
(Application CARTE) (MOTS CLร‰S) Argument
WinEdit (nom de l'agent) complet ยป Guru99
WinEdit (Mot de passe) complet ยป Mercury
Bouton Win (OK) Cliquez ร  nouveau
Fenรชtre (rรฉservation de vol) Vรฉrifier Existe

ร‰tape 2: En รฉcrivant Code sous la forme de fonctions composantes.

Une fois que vous avez crรฉรฉ votre ou vos tables de donnรฉes, il vous suffit d'รฉcrire un programme ou un ensemble de scripts qui lit chaque รฉtape, exรฉcute l'รฉtape en fonction du mot-clรฉ contenu dans le champ Action, effectue une vรฉrification des erreurs et enregistre toutes les informations pertinentes. Ce programme ou ensemble de scripts ressemblerait au pseudo-code ci-dessous :

Function main()
{
  Call ConnectTable(Name of the Table) { //Calling Function for connecting to the table.
  while (Call TableParser() != -1) //Calling function for Parsing and extracting values from the table.
  {
    Pass values to appropriate COMPONENT functions. Like Set(Object Name, Argument) ex. Set(Agent Name, Guru99).
  }
}
  Call CloseConnection() //Function for Closing connection after all the operation has been performed.
} //End of main

Cโ€™est tout pour Keyword Driven Framework.

Lโ€™avantage du Keyword Driven Framework est que les mots-clรฉs sont rรฉutilisables. Pour comprendre cela, considรฉrez que vous souhaitez vรฉrifier l'opรฉration de connexion ร  un site Web, par exemple YAHOO MAIL. Le tableau ressemblera ร  ceci โ€“

Sujet Action
(CARTE DES APPLICATIONS) (MOT-CLร‰) Argument
WebEdit (Nom d'utilisateur) complet ยป abc@yahoo.com
WebEdit (Mot de passe) complet ยป xxxxx
Bouton Web (OK) Cliquez ร  nouveau
Fenรชtre (Yahoo Mail) Vรฉrifier Charges

Dans ce cas, vous constaterez que les mots clรฉs ยซ Dรฉfinir ยป, ยซ Cliquer ยป et ยซ Vรฉrifier ยป restent inchangรฉs, car les fonctions correspondantes sont dรฉjร  dรฉveloppรฉes. Il vous suffit de modifier la carte d'application.ping (Rรฉfรฉrentiel d'objets) de la rรฉservation de vol prรฉcรฉdente vers Yahoo Mail , avec un changement dans les valeurs des arguments et le mรชme script fonctionnera !

Avantages

  • Fournit une rรฉutilisation รฉlevรฉe du code
  • Outil de test indรฉpendant
  • Indรฉpendamment de l'application testรฉe, le mรชme script fonctionne pour AUT (avec quelques limitations)
  • Les tests peuvent รชtre conรงus avec ou sans AUT

Dรฉsavantages

  • L'investissement initial รฉtant assez รฉlevรฉ, les avantages ne peuvent รชtre rรฉalisรฉs que si l'application est considรฉrablement volumineuse et si les scripts de test doivent รชtre maintenus pendant plusieurs annรฉes.
  • Une expertise รฉlevรฉe en automatisation est requise pour crรฉer le cadre axรฉ sur les mots clรฉs.

NOTE: Mรชme si OpenText UFT One (anciennement Micro Focus) UFTBien que ce framework se prรฉsente comme un framework pilotรฉ par mots-clรฉs, son utilisation ne permet pas d'atteindre une indรฉpendance totale entre les outils de test et les applications.

5) Le cadre d'automatisation des tests hybrides

Comme son nom l'indique, ce cadre est la combinaison d'un ou plusieurs cadres d'automatisation รฉvoquรฉs ci-dessus tirant parti de leurs points forts et essayant d'attรฉnuer leurs faiblesses. Le cadre d'automatisation de l'assurance qualitรฉ des tests hybrides est ce vers quoi la plupart des cadres d'automatisation des tests รฉvoluent au fil du temps et de plusieurs projets. L'industrie maximale utilise Keyword Framework dans une combinaison de mรฉthodes de dรฉcomposition de fonctions.

PS: D'autres cadres d'automatisation qui mรฉritent d'รชtre mentionnรฉs sont

Cadre de modularitรฉ des tests

Dans ce cadre, une tรขche courante dans le script de test est regroupรฉe en modules.

Exemple: Utilisation des actions dans QTP L'utilisateur peut crรฉer des scripts modulaires

Exemple de script pour la connexion

SystemUtil.Run "flight4a.exe","","","open"
Dialog("Login").WinEdit("Agent Name:").Set "Guru99"
Dialog("Login").WinEdit("Password:").Set "Mercury"
Dialog("Login").WinButton("OK").Click
'End of Script

Vous pouvez maintenant appeler cette action dans le script principal comme suit :

RunAction ("Login[Argument]", oneIteration)

Tests de processus mรฉtier (BPT)

Ces cadres d'automatisation divisent les grands processus mรฉtier en composants qui peuvent รชtre rรฉutilisรฉs plusieurs fois dans le mรชme ou dans des scripts de test diffรฉrents. Par exemple, le processus mรฉtier de rรฉservation d'un vol est divisรฉ en composants tels que la connexion, la recherche de vols, la rรฉservation, le paiement et la dรฉconnexion qui peuvent รชtre rรฉutilisรฉs dans le mรชme processus mรฉtier ou dans diffรฉrents processus. En outre, BPT facilite une coordination plus รฉtroite entre les PME et les ingรฉnieurs en automatisation.

Comment choisir le bon framework d'automatisation des tests

Aucun type de solution n'est systรฉmatiquement gagnant. Le choix optimal dรฉpend des compรฉtences de l'รฉquipe, de la taille de l'application et de la durรฉe de vie requise. Le tableau ci-dessous compare les cinq types de solutions selon les facteurs dรฉterminants.

Type de cadre Effort de configuration Code Rรฉutilisation Coรปt de maintenance Idรฉal pour
Script linรฉaire Trรจs faible Trรจs faible Trรจs รฉlevรฉ Dรฉmonstrations et contrรดles de fumรฉe ponctuels
Bibliothรจque de tests Architecture Moyenne Moyenne Moyenne Applications stables avec des flux de travail rรฉpรฉtitifs
Axรฉe sur les donnรฉes Moyenne Moyenne Low Formulaires et calculs nรฉcessitant de nombreux ensembles d'entrรฉes
Axรฉ sur les mots clรฉs Haute Trรจs รฉlevรฉ Low De vastes suites entretenues par des รฉquipes techniques mixtes
Hybride Haute Trรจs รฉlevรฉ Low programmes d'entreprise ร  long terme

Rรฉflรฉchissez ร  ces questions avant de vous engager :

  1. Combien de temps durera la suite ? Des annรฉes de maintenance justifient l'investissement initial รฉlevรฉ d'une conception basรฉe sur des mots-clรฉs ou hybride. Ce n'est pas le cas pour un projet de courte durรฉe.
  2. Qui rรฉdige les tests ? Si des testeurs manuels contribuent aux cas d'utilisation, un tableau de mots-clรฉs leur permet de travailler sans avoir ร  apprendre le langage de script.
  3. ร€ quel point l'interface est-elle volatile ? Les changements frรฉquents d'รฉcran rendent indispensable un rรฉfรฉrentiel d'objets sรฉparรฉ, sinon chaque script devra รชtre modifiรฉ.
  4. Quel degrรฉ de variation des donnรฉes est nรฉcessaire ? De nombreuses combinaisons de donnรฉes d'entrรฉe indiquent clairement une conception axรฉe sur les donnรฉes.
  5. Quel outil est dรฉjร  utilisรฉ ? Le cadre doit correspondre au choix outil d'automatisation et une langue que l'รฉquipe connaรฎt, comme Selenium au Java or Cucumber.

La plupart des รฉquipes commencent par une approche basรฉe sur une bibliothรจque ou sur les donnรฉes, puis รฉvoluent vers un modรจle hybride. rรฉgression La suite s'agrandit.

Avantages du cadre d'automatisation des tests Architecture

Voici les avantages de lโ€™architecture du cadre dโ€™automatisation des tests :

  • Un cadre d'automatisation des tests permet de rรฉduire les risques et les coรปts
  • Il amรฉliore lโ€™efficacitรฉ des tests
  • Cela aide ร  rรฉduire les coรปts de maintenance
  • Permet la rรฉutilisation du code
  • Il permet d'obtenir une couverture de test maximale
  • Il maximise la fonctionnalitรฉ de l'application
  • Aide ร  rรฉduire la duplication des scรฉnarios de test
  • Il contribue ร  amรฉliorer l'efficacitรฉ et les performances des tests grรขce ร  l'automatisation des tests.

FAQ

Un outil exรฉcute des commandes sur une application. Un framework est l'ensemble des conventions, de la structure des dossiers et des bibliothรจques rรฉutilisables qui dรฉfinissent la maniรจre dont ces commandes sont รฉcrites, organisรฉes et maintenues.

Non. Le modรจle Page Object est un patron de conception pour la couche de gestion des objets. Il est couramment utilisรฉ dans les frameworks de type bibliothรจque, pilotรฉ par les donnรฉes et hybrides, sans pour autant les remplacer.

L'IA ajoute des localisateurs autorรฉparateurs et une comparaison visuelle ร  la couche de rรฉfรฉrentiel d'objets. L'architecture en couches reste inchangรฉe, mais les scripts sont moins sujets aux dysfonctionnements lorsque l'interface utilisateur est lรฉgรจrement modifiรฉe.

Oui. Les assistants IA convertissent les รฉtapes รฉcrites en lignes d'objet, d'action et d'argument. Un relecteur doit toutefois vรฉrifier que les noms des objets correspondent ร  ceux du rรฉfรฉrentiel ; dans le cas contraire, les lignes gรฉnรฉrรฉes รฉchoueront ร  l'exรฉcution.

TracNombre d'heures de maintenance des scripts par version, pourcentage d'รฉchecs alรฉatoires et dรฉlai entre la compilation et l'obtention des rรฉsultats. Un framework performant affiche une diminution des efforts de maintenance et une couverture automatisรฉe en constante augmentation.

Rรฉsumez cet article avec :