Framework per l'automazione dei test: Archistruttura e tipologie

โšก Riepilogo intelligente

L'architettura del Test Automation Framework definisce gli standard di codifica, la gestione dei dati di test e le regole del repository degli oggetti che gli script di automazione seguono. Esistono cinque tipologie consolidate, ognuna delle quali bilancia lo sforzo di configurazione con il riutilizzo, i costi di manutenzione e la scalabilitร  a lungo termine.

  • ๐Ÿ“ Definizione di base: Un framework รจ un insieme di linee guida, non di regole, che favoriscono il riutilizzo, la portabilitร  e riducono i costi di manutenzione.
  • โบ๏ธ Scripting lineare: La registrazione e la riproduzione sono le funzionalitร  piรน veloci da implementare ma anche le piรน difficili da gestire, perchรฉ i dati rimangono codificati in modo rigido.
  • ๐Ÿงฑ Libreria di prova Architecnologia: Le fasi comuni diventano funzioni riutilizzabili richiamate da uno script di controllo, aumentando il riutilizzo a scapito dei tempi di pianificazione.
  • ๐Ÿ“Š Basato sui dati: La logica di test rimane negli script, mentre i dati vengono trasferiti in Excel, CSV o in un database, consentendo di simulare numerosi scenari con un singolo script.
  • ๐Ÿ”‘ Ricerca basata su parole chiave: Le azioni vengono memorizzate come parole chiave in una tabella, rendendo i test indipendenti sia dallo strumento che dall'applicazione.
  • ๐Ÿ”€ Modello ibrido: La maggior parte delle suite piรน mature combina tabelle di parole chiave con la scomposizione funzionale per bilanciare sforzo e copertura.

Test del framework di automazione Archistruttura e tipologie

Cos'รจ il Framework nei test di automazione?

A Test del framework di automazione รจ un insieme di linee guida come standard di codifica, gestione dei dati di test, trattamento del repository di oggetti ecc... che, se seguite durante lo scripting di automazione, producono risultati vantaggiosi come un maggiore riutilizzo del codice, una maggiore portabilitร , costi di manutenzione degli script ridotti ecc. Queste sono solo linee guida e non regole; non sono obbligatorie e puoi comunque scrivere script senza seguire le linee guida. Ma perderai i vantaggi di avere un Framework.

Perchรฉ hai bisogno di un quadro?

Consideriamo un esempio per capire perchรฉ รจ necessario un Framework.

Sono sicuro che hai partecipato a un seminario/lezione/conferenza in cui ai partecipanti รจ stato chiesto di osservare le seguenti linee guida:

  • I partecipanti dovranno occupare i propri posti 5 minuti prima dell'inizio della lezione.
  • Porta con te un quaderno e una penna per prendere appunti.
  • Leggi gli addominalitracCosรฌ avrete un'idea di cosa tratterร  la presentazione.
  • I telefoni cellulari dovrebbero essere impostati sulla modalitร  silenziosa.
  • Utilizza i cancelli di uscita all'estremitร  opposta rispetto all'oratore se hai bisogno di uscire nel bel mezzo della lezione.
  • Al termine della sessione verranno poste delle domande.

Pensi di poter condurre un seminario SENZA Osservando queste linee guida?

La risposta รจ una grande SรŒ! Certamente, รจ possibile condurre un seminario/lezione/conferenza/dimostrazione senza le linee guida di cui sopra... infatti, alcuni di noi non le seguiranno anche se sono predisposte!

Ma se le linee guida vengono seguite, si otterrร  un risultato positivo come una riduzione del disinteresse del pubblicotracmaggiore coinvolgimento durante le lezioni, migliore memorizzazione da parte dei partecipanti e maggiore comprensione della materia.

Sulla base di quanto sopra, a Il framework puรฒ essere definito come un insieme di linee guida che, se seguite, producono risultati benefici.

Test del framework di automazione ArchiStruttura: Componenti chiave

Prima di confrontare le diverse tipologie, รจ utile vedere cosa contiene ciascun framework. ArchiLa struttura descrive come queste parti sono stratificate in modo che una modifica in uno strato non comprometta gli altri.

  • Livello dello script di test: Contiene i casi di test. Gli script rimangono brevi perchรฉ richiamano funzioni riutilizzabili invece di ripetere i passaggi di navigazione.
  • Libreria di funzioni: Memorizza le azioni condivise come l'accesso, la ricerca e la disconnessione, in modo che una modifica al flusso di lavoro venga effettuata una sola volta.
  • Archivio degli oggetti: Associa i nomi descrittivi agli elementi dell'interfaccia grafica. Quando l'interfaccia cambia, viene modificato solo questo livello.
  • Livello dati di test: Mantiene i valori di input e quelli attesi in file Excel, CSV o database, anzichรฉ inserirli nel codice.
  • Livello di configurazione: Contiene l'ambiente URLs, scelte del browser, timeout e credenziali.
  • Livello di reporting: Genera report di esecuzione, screenshot degli errori e log diagnostici.
  • Livello di esecuzione: Attiva le suite da un server di build, collegando l'automazione a integrazione continua.

Le tipologie di framework descritte di seguito si differenziano principalmente per il grado di rigore con cui separano questi livelli.

Tipi di framework di automazione dei test

Di seguito sono riportati i diversi tipi di framework di test automatizzati:

  1. Scripting lineare
  2. La libreria di test Archiquadro strutturale.
  3. I dati guidati Collaudo Struttura.
  4. Il framework di test basato su parole chiave o tabelle.
  5. Il framework ibrido per l'automazione dei test.

Vediamoli nel dettaglio โ€“

1) Scripting lineare: registrazione e riproduzione

รˆ il piรน semplice di tutti i Testing Automation Framework ed รจ anche conosciuto come โ€œRegistrazione e riproduzioneโ€. In questo Test di automazione Framework, il tester registra manualmente ogni passaggio (navigazione e input dell'utente), inserisce checkpoint (passaggi di convalida) nel primo round. Quindi, riproduce la sceneggiatura registrata nei round successivi.

Esempio: Considera l'idea di accedere Domanda di prenotazione del volo e verificare se l'applicazione รจ stata caricata dopo l'accesso riuscito. Qui, il tester registrerร  semplicemente i passaggi e aggiungerร  passaggi di convalida.

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")

Vantaggi

  • Il modo piรน veloce per generare uno script
  • Competenza in automazione non richiesta
  • Il modo piรน semplice per apprendere le funzionalitร  dello strumento di test

Svantaggi

  • Piccolo riutilizzo degli script
  • I dati del test sono codificati nello script
  • Incubo di manutenzione

2) La Biblioteca dei test Archiquadro strutturale

รˆ anche conosciuto come โ€œScript strutturatoโ€ or โ€œDecomposizione funzionaleโ€.

In questo Automation Testing Framework, gli script di test vengono inizialmente registrati da "Registra e riproduci" metodo. Later, le attivitร  comuni all'interno degli script vengono identificate e raggruppate in Funzioni. Queste funzioni vengono richiamate dallo script di test principale richiamato Guidatore in diversi modi per creare casi di test.

Esempio: Utilizzando lo stesso esempio di cui sopra, la funzione per accedere alla Prenotazione del volo sarร  simile a .

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

Ora chiamerai questa funzione nello script principale come segue

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

Vantaggi

  • Nello scripting strutturato si ottiene un livello piรน elevato di riutilizzo del codice rispetto a "Registrazione e riproduzione"
  • Gli script di automazione sono meno costosi da sviluppare grazie al maggiore riutilizzo del codice
  • Manutenzione degli script piรน semplice

Svantaggi

  • รˆ necessaria competenza tecnica per scrivere script utilizzando Test Library Framework
  • รˆ necessario piรน tempo per pianificare e preparare gli script di test.
  • I dati di test sono codificati all'interno degli script

3) Il quadro di test basato sui dati

In questo quadro, mentre Test Case La logica risiede negli script di test, mentre i dati di test sono separati e mantenuti al di fuori degli script di test. I dati di test vengono letti da file esterni (file Excel, file di testo, file CSV, sorgenti ODBC, oggetti DAO, oggetti ADO) e caricati nelle variabili all'interno dello script di test. Le variabili vengono utilizzate sia per i valori di input che per i valori di verifica. Gli script di test stessi vengono preparati utilizzando Linear Scripting o Test Library Framework. La tecnica รจ spiegata piรน dettagliatamente in test guidati dai dati tutorial.

Esempio: Sviluppareping Lo script di accesso alla prenotazione del volo che utilizza questo metodo prevede due passaggi.

Passo 1) Crea un test: file di dati che potrebbe essere Excel, CSV o qualsiasi altra origine di database.

NomeAgente Password
Jimmy Mercury
Tina MERCURY
Bill Mercurio

Passo 2) Sviluppa lo script di test e fai riferimento alla tua origine dati di 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.

Vantaggi

  • Le modifiche agli script di test non influiscono sui dati di test
  • I casi di test possono essere eseguiti con piรน set di dati
  • รˆ possibile eseguire una varietร  di scenari di test semplicemente variando i dati di test nel file di dati esterno

Svantaggi

  • รˆ necessario piรน tempo per pianificare e preparare sia gli script di test che i dati di test

4) Il framework di test basato su parole chiave o basato su tabelle

Migliori Basato su parole chiave oppure lo sviluppo di un framework di automazione basato su tabelle richiede tabelle di dati e parole chiave, indipendente dal strumento di automazione dei test utilizzati per eseguirli. I test possono essere progettati con o senza l'applicazione. In un test basato su parole chiave, la funzionalitร  dell'applicazione sottoposta a test รจ documentata in una tabella e in istruzioni passo passo per ciascun test.

Ci sono 3 componenti di base di un Framework basato su parole chiave, ovvero parola chiave, mappa dell'applicazione, funzione del componente.

La parola chiave รจ un'azione che puรฒ essere eseguita su un componente GUI. Ad esempio, per la casella di testo del componente GUI, alcune parole chiave (azione) potrebbero essere InputText, VerifyValue, VerifyProperty e cosรฌ via.

Cos'รจ la mappa delle applicazioni?

Una mappa dell'applicazione fornisce riferimenti denominati per i componenti della GUI. Le mappe applicative non sono altro che โ€œRepository di oggetti"

Cos'รจ la funzione componente?

Le funzioni del componente sono quelle funzioni che manipolano o interrogano attivamente il componente della GUI. Un esempio di funzione potrebbe essere fare clic sul pulsante Web con tutta la gestione degli errori, inserire i dati in una modifica Web con tutta la gestione degli errori. Le funzioni dei componenti potrebbero essere dipendenti o indipendenti dall'applicazione.

Esempio: Per comprendere Keyword View, prendiamo lo stesso esempio. Implica 2 passaggi

Fase 1: Creazione della tabella dati (diversa dalla tabella dati di test creata in Data Driven Framework). Questa tabella dati contiene l'azione da eseguire sugli oggetti GUI e gli argomenti corrispondenti, se presenti. Ogni riga rappresenta una fase del test.

Oggetto Action
(MAPPA dell'applicazione) (PAROLE CHIAVE) Argomento
WinEdit(Nome agente) Impostato Guru99
WinModifica(Password) Impostato Mercury
Pulsante Win(OK) Clicchi
Finestra (Prenotazione del volo) Verifica Esiste

Fase 2: Scrivere Code sotto forma di funzioni componenti.

Dopo aver creato le tabelle di dati, scrivi semplicemente un programma o una serie di script che leggono ogni passaggio, eseguono il passaggio in base alla parola chiave contenuta nel campo Azione, eseguono il controllo degli errori e registrano tutte le informazioni rilevanti. Questo programma o insieme di script sarebbe simile allo pseudo codice seguente:

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

Questo รจ tutto per il Keyword Driven Framework.

Il vantaggio di Keyword Driven Framework รจ che le parole chiave sono riutilizzabili. Per capirlo, considera di voler verificare l'operazione di login per un sito Web, ad esempio YAHOO MAIL. La tabella apparirร  cosรฌ:

Oggetto Action
(MAPPA DELLE APPLICAZIONI) (PAROLA CHIAVE) Argomento
Modifica Web(Nome Utente) Impostato abc@yahoo.com
Modifica Web(Password) Impostato xxxxx
Pulsante Web(OK) Clicchi
Finestra (Yahoo Mail) Verifica Carichi

Se in questo caso noti che le parole chiave Imposta, Fai clic, Verifica rimangono le stesse per le quali sono giร  state sviluppate le corrispondenti funzioni dei componenti. Tutto ciรฒ che devi fare รจ modificare la Mappa dell'applicazione.ping (Archivio degli oggetti) da prenotazione voli precedente a Yahoo Mail , con una modifica nei valori degli argomenti e lo stesso script funzionerร !

Vantaggi

  • Fornisce un'elevata riutilizzabilitร  del codice
  • Strumento di test indipendente
  • Indipendentemente dall'applicazione in test, lo stesso script funziona per AUT (con alcune limitazioni)
  • I test possono essere progettati con o senza AUT

Svantaggi

  • Poichรฉ l'investimento iniziale รจ piuttosto elevato, i vantaggi possono essere realizzati solo se l'applicazione รจ considerevolmente grande e gli script di test devono essere mantenuti per diversi anni.
  • Per creare il framework basato sulle parole chiave รจ necessaria un'elevata esperienza nell'automazione.

NOTA: Sebbene OpenText UFT Uno (precedentemente Micro Focus) UFTSebbene si presenti come un framework basato su parole chiave, non รจ possibile ottenere una completa indipendenza dagli strumenti di test e dalle applicazioni utilizzandolo.

5) Il framework ibrido per l'automazione dei test

Come suggerisce il nome, questo framework รจ la combinazione di uno o piรน framework di automazione discussi sopra, sfruttandone i punti di forza e cercando di mitigarne i punti deboli. Il framework di automazione del QA dei test ibridi รจ ciรฒ in cui la maggior parte dei framework di automazione dei test si evolve nel tempo e in piรน progetti. L'industria massima utilizza Keyword Framework in una combinazione del metodo di scomposizione delle funzioni.

PS: Altri framework di automazione degni di nota sono

Testare il quadro di modularitร 

In questo contesto, un'attivitร  comune nello script di test รจ raggruppata come Moduli.

Esempio: Utilizzo delle azioni in QTP รจ possibile creare script modulari

Script di esempio per l'accesso

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

Ora puoi chiamare questa azione nello script principale come segue:

RunAction ("Login[Argument]", oneIteration)

Test dei processi aziendali (BPT)

Questi framework di automazione suddividono i processi aziendali di grandi dimensioni in componenti che possono essere riutilizzati piรน volte negli stessi o in diversi script di test. Ad esempio, il processo aziendale di prenotazione di un volo รจ suddiviso in componenti come accesso, ricerca di voli, prenotazione, pagamento e disconnessione che possono essere riutilizzati nello stesso processo aziendale o in processi diversi. Inoltre, BPT facilita un piรน stretto coordinamento tra le PMI e gli ingegneri dell'automazione.

Come scegliere il framework di automazione dei test piรน adatto

Non esiste un unico tipo che risulti sempre vincente. La scelta corretta dipende dalle competenze del team, dalle dimensioni dell'applicazione e dalla durata di validitร  della suite. La tabella seguente confronta i cinque tipi in base ai fattori che ne determinano l'esito.

Tipo quadro Sforzo di installazione Code Riutilizzo Costo di manutenzione Adatto a
Scripting lineare Molto basso Molto basso Molto alto Manifestazioni e controlli del fumo una tantum
Libreria di prova Architectura Medio Medio Medio Applicazioni stabili con flussi di lavoro ripetitivi
Data-Driven Medio Medio Basso Moduli e calcoli che richiedono numerosi set di input
Basato su parole chiave Alto Molto alto Basso Ampie suite gestite da team tecnici misti.
IBRIDO Alto Molto alto Basso Programmi aziendali di lunga durata

Rifletti su queste domande prima di prendere una decisione:

  1. Quanto durerร  la suite? Anni di manutenzione giustificano l'elevato investimento iniziale di un design basato su parole chiave o ibrido. Un progetto di breve durata non lo giustifica.
  2. Chi elabora i test? Se i tester manuali contribuiscono con dei casi di studio, una tabella di parole chiave consente loro di lavorare senza dover imparare il linguaggio di scripting.
  3. Quanto รจ instabile l'interfaccia? I frequenti cambi di schermata rendono indispensabile un repository di oggetti separato, altrimenti ogni script necessita di essere modificato.
  4. Di quanta variabilitร  dei dati c'รจ bisogno? Molte combinazioni di input indicano chiaramente una progettazione basata sui dati.
  5. Quale strumento รจ giร  in uso? La struttura deve adattarsi a quella scelta strumento di automazione e una lingua che la squadra conosce, come ad esempio Selenium con Java or Cucumber.

La maggior parte dei team inizia con un approccio basato su una libreria o sui dati, per poi evolversi verso un modello ibrido man mano che regressione La suite si espande.

Vantaggi del Test Automation Framework Architectura

Di seguito sono riportati i vantaggi dell'architettura del framework di automazione dei test:

  • Un framework di automazione dei test aiuta a ridurre i rischi e le spese
  • Migliora l'efficienza dei test
  • Aiuta a ridurre i costi di manutenzione
  • Consente il riutilizzo del codice
  • Permette di ottenere la massima copertura del test
  • Massimizza la funzionalitร  dell'applicazione
  • Aiuta a ridurre la duplicazione dei test case
  • Aiuta a migliorare l'efficienza e le prestazioni dei test con l'automazione dei test

DOMANDE FREQUENTI

Uno strumento esegue comandi su un'applicazione. Un framework รจ l'insieme di convenzioni, struttura di cartelle e librerie riutilizzabili che definiscono come questi comandi vengono scritti, organizzati e gestiti.

No. Il Page Object Model รจ un modello di progettazione per il livello del repository di oggetti. Viene comunemente utilizzato all'interno di framework basati su librerie, data-driven e ibridi, piuttosto che in sostituzione di alcuno di essi.

L'intelligenza artificiale aggiunge localizzatori auto-riparanti e comparazione visiva al livello del repository degli oggetti. L'architettura a livelli rimane la stessa, ma gli script si interrompono meno frequentemente quando l'interfaccia utente cambia leggermente.

Sรฌ. Gli assistenti basati sull'IA convertono i passaggi scritti in righe di oggetti, azioni e argomenti. Un revisore deve comunque confermare che i nomi degli oggetti corrispondano a quelli del repository, altrimenti le righe generate non funzionano in fase di esecuzione.

Track ore di manutenzione degli script per rilascio, percentuale di errori instabili e tempo che intercorre tra la compilazione e il risultato. Un framework sano mostra una diminuzione dello sforzo di manutenzione mentre la copertura automatizzata continua ad aumentare.

Riassumi questo post con: