Cos'è uno script di test? Come scriverlo con un esempio

⚡ Riepilogo intelligente

Uno script di test nel testing del software è un insieme di istruzioni eseguibili riga per riga che guida un'applicazione e verifica ogni passaggio. Questa guida illustra i tre metodi di compilazione, un modello riutilizzabile e un ambiente di lavoro. Selenium esempio.

  • 📝 Definizione di base: Uno script specifica ogni transazione da eseguire, i dati esatti da inserire e il risultato atteso per ogni passaggio.
  • Tre metodi di costruzione: Registrazione e riproduzione, scripting basato su parole chiave o dati e scrittura di codice direttamente in un linguaggio di programmazione.
  • 🧱 Libertà linguistica: Il linguaggio di scripting non deve necessariamente corrispondere al linguaggio dell'applicazione, quindi un Java il prodotto può essere testato con JavaScrittura o Python.
  • 📋 Disciplina del modello: Un modello standard definisce i campi relativi a ID, prerequisiti, dati di test, passaggi, risultato atteso e stato.
  • Sceneggiatura vs Caso: Un caso di test è una procedura manuale passo passo, mentre uno script di test viene eseguito automaticamente da uno strumento.
  • Regole di qualità: Assicurati che ogni script sia chiaro, limita ogni passaggio a una sola azione e progetta i percorsi dal punto di vista dell'utente reale.

Che cosa è uno script di test

Cos'è uno script di test nel test del software?

A script di prova Si tratta di una descrizione dettagliata, riga per riga, delle transazioni di sistema che devono essere eseguite per convalidare l'applicazione in fase di test. Elenca ogni passaggio da effettuare insieme al risultato atteso per ciascuno di essi.

Essendo eseguibile, lo stesso script può essere riprodotto sistematicamente su diversi dispositivi e versioni. Uno script utilizzabile registra sempre sia l'input effettivo da inserire sia l'output previsto.

Come scrivere uno script di prova

Prova della sceneggiatura
Prova della sceneggiatura

Esistono tre modi diversi per creare uno script di test:

Registra e riproduci

Con questo metodo, il tester non ha bisogno di scrivere alcun codice, ma solo di registrare le azioni dell'utente. La programmazione sarà comunque necessaria in seguito per correggere eventuali problemi o per perfezionare il comportamento dell'automazione.

Questo metodo è più semplice che scrivere uno script di test completo da zero perché hai già il codice completo. Viene utilizzato principalmente in un linguaggio di programmazione semplificato come VBScript.

Scripting basato su parole chiave o dati

In questo metodo esiste una chiara separazione tra tester e sviluppatori. Nello scripting basato sui dati, il tester definisce il test utilizzando parole chiave senza conoscere il codice sottostante.

In questo caso, il compito degli sviluppatori è implementare il codice dello script di test per le parole chiave e aggiornare questo codice quando necessario. Quindi, con questo metodo, il tester non deve preoccuparsi del sistema. Tuttavia, faranno molto affidamento sulle risorse di sviluppo per qualsiasi nuova funzionalità che desideri testare automaticamente.

Scrivere codice in un linguaggio di programmazione

Se scegli questo metodo, di solito hai comunque a disposizione le funzioni di registrazione e riproduzione per generare una prima bozza della sceneggiatura.

Prima o poi, però, un tester deve andare oltre la registrazione e la riproduzione e imparare a scrivere script semplici a mano. È importante capire che puoi scegliere il tuo Linguaggio di programmazione anche se la tua domanda è scritta Java.

Tuttavia, ciò non significa che devi scrivere i tuoi script di test Java, che può essere difficile da imparare. Invece, puoi scrivere i tuoi script di test in un linguaggio più semplice come JavaCopione o Ruby (o qualsiasi linguaggio più semplice che desideri utilizzare).

Esempio di script di prova

Ad esempio, per verificare la funzione di accesso su un sito web, lo script di test potrebbe effettuare le seguenti operazioni:

  • Specificare in che modo lo strumento di automazione può individuare i campi "Nome utente" e "Password" nella schermata di accesso. Diciamo, in base ai loro ID di elemento CSS.
  • Carica la home page del sito Web, quindi fai clic sul collegamento "Accedi". Verifica che la schermata di accesso visualizzata e i campi “Nome utente” e “Password” siano visibili.
  • Inserisci il nome utente "Charles" e la password "123456", quindi individua il pulsante "Conferma" e cliccaci sopra.
  • Devono specificare come un utente può individuare il titolo della schermata di benvenuto che appare dopo il login, ad esempio tramite il suo ID elemento CSS.
  • Verificare che il titolo della schermata di benvenuto sia visibile.
  • Leggi il titolo della schermata di benvenuto.
  • Affermare che il testo del titolo corrisponde a "Benvenuto Charles".
  • Se il titolo corrisponde alle aspettative, registrare il test come superato. Altrimenti, registrarlo come non superato.

Esempio di script di test in Selenium con Java

L'elenco puntato sopra descrive un test di accesso in linguaggio semplice. Ecco lo stesso test scritto come script eseguibile, utilizzando Selenium WebDriver e JUnitOgni punto elenco corrisponde a una o due righe di codice.

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.junit.Assert;
import org.junit.Test;

public class LoginTestScript {

    @Test
    public void validLoginShowsWelcomeMessage() {
        // Step 1: start the browser and open the site
        WebDriver driver = new ChromeDriver();
        driver.get("https://demo.guru99.com/test/login.html");

        // Step 2: locate the fields by their element ids
        driver.findElement(By.id("email")).sendKeys("Charles");
        driver.findElement(By.id("passwd")).sendKeys("123456");

        // Step 3: submit the form
        driver.findElement(By.id("SubmitLogin")).click();

        // Step 4: read the welcome title and assert the expected result
        String actual = driver.findElement(By.id("welcome")).getText();
        Assert.assertEquals("Welcome Charles", actual);

        driver.quit();
    }
}

Tre dettagli distinguono una sceneggiatura reale da una registrata:

  • I localizzatori sono espliciti. Gli elementi vengono individuati tramite ID anziché tramite posizione sullo schermo, pertanto lo script non si altera in caso di modifiche al layout.
  • L'asserzione è la prova. Senza assertEquals, lo script si limita a fare clic; è l'asserzione che decide se il test ha successo o meno.
  • La pulizia viene sempre eseguita. driver.quit() chiude il browser, altrimenti un'esecuzione fallita lascia dei processi attivi.

La stessa struttura si applica in qualsiasi lingua. In Python con Selenium le chiamate diventano driver.find_element(By.ID, “email”) e assert actual == “Welcome Charles”.

Suggerimenti per la creazione di uno script di prova

Ecco alcuni suggerimenti importanti per la creazione di uno script di test:

Mantienilo chiaro

Lo script di test dovrebbe essere sufficientemente chiaro da poter essere eseguito senza assistenza. Se un tester deve continuamente chiedere al responsabile del progetto dettagli sull'applicazione, si sprecano tempo e risorse.

Per evitare ciò, verifica che ogni passaggio dello script di test sia chiaro, conciso e coerente. Questo contribuisce a mantenere fluido il processo di test.

Keep it simple

Dovresti creare uno script di test che contenga solo un'azione specifica che i tester possono eseguire. Ciò garantisce che ciascuna funzione venga testata correttamente e che i tester non perdano passaggi nel processo di test del software.

Pensaci bene

Per scrivere lo script di test, devi metterti nei panni dell'utente per decidere quali percorsi testare. Dovresti essere abbastanza creativo da prevedere tutti i diversi percorsi che gli utenti utilizzerebbero durante l'esecuzione di un sistema o di un'applicazione.

Quando utilizzare l'approccio con script di test?

Ecco i motivi per utilizzare lo script di prova.

  • Uno script di test è il metodo più affidabile per confermare che nessun passaggio venga saltato e che i risultati corrispondano al piano di test concordato.
  • Uno script preparato in anticipo riduce notevolmente il rischio di errori durante l'esecuzione.
  • Quando i tester esplorano un prodotto liberamente, possono facilmente tralasciare alcune funzionalità.
  • Un tester può anche presumere che una funzione abbia prodotto il risultato atteso quando in realtà non lo ha fatto.
  • È particolarmente utile quando la prestazione dell'utente è importante e specifica.

Cos'è un modello di script di test?

Un modello di script di test è un documento riutilizzabile e preformattato che contiene i campi che ogni script del progetto deve compilare. La standardizzazione determina il livello di dettaglio dei test e garantisce che nessun revisore debba indovinare il significato di un passaggio.

Un modello funzionale contiene i seguenti campi:

Settore Missione
ID script Identificatore univoco utilizzato per traccapacità e collegamento dei difetti
Titolo Una riga che indica cosa convalida lo script
Modulo o funzionalità L'area dell'applicazione in fase di test
Presupposti Indicare che il sistema deve essere attivo prima dell'esecuzione del primo passaggio.
Dati di test Dati di input precisi, incluse credenziali e valori limite.
Passaggi Azioni numerate, un'azione per ogni passaggio
Risultato atteso Il risultato osservabile di ogni fase
Risultato attuale Compilato al momento dell'esecuzione
Stato Superato, non superato, bloccato o non eseguito
Autore e data Proprietà e cronologia delle versioni

Differenza tra caso di test e script di test

Ecco le principali differenze tra un caso di test e uno script di test:

Test Case Script di test
Caso di prova è una procedura passo passo utilizzata per testare un'applicazione. Lo script di test è un insieme di istruzioni per testare automaticamente un'applicazione.
I casi di test vengono utilizzati per l'ambiente di test manuale. Test Script viene utilizzato nell'ambiente di test di automazione.
Viene eseguito manualmente. Viene eseguito in base al formato di scripting.
Il modello del test case include l'ID del test, i dati del test, la procedura del test, i risultati effettivi e attesi, ecc. Nel Test Script possiamo utilizzare diversi comandi per sviluppare uno script.

Vantaggi e svantaggi delle schede di test

La programmazione tramite script è un investimento. Sapere dove si ottiene un ritorno sull'investimento permette di individuare i test da automatizzare per primi.

Vantaggi

  • Ripetibile: Gli stessi passaggi vengono eseguiti in modo identico su ogni build, ed è questo che rende pratico il test di regressione.
  • Veloce su larga scala: Una suite che richiede a un tester un giorno può essere eseguita in pochi minuti e può essere eseguita durante la notte.
  • Coerente: La sceneggiatura non si annoia mai, non salta mai un passaggio e non interpreta erroneamente un risultato.
  • Cross-platform: Un singolo script può essere riprodotto su diversi browser, dispositivi e sistemi operativi.
  • Pronto per la CI: Gli script si integrano in una pipeline di build in modo che ogni commit venga verificato automaticamente.

Svantaggi

  • Costi di installazione elevati: Scrivere ed eseguire il debug di uno script richiede molto più tempo che eseguire il test manualmente una sola volta.
  • Onere di manutenzione: La modifica dell'ID di un elemento o la riprogettazione della pagina causano errori negli script, che devono poi essere riparati.
  • Requisiti di abilità: Oltre alla registrazione e alla riproduzione, il team necessita di competenze di programmazione.
  • Ciechi di fronte all'imprevisto: Uno script controlla solo ciò che gli è stato indicato di controllare, quindi difetti visivi e di usabilità passano inosservati.
  • Falsa fiducia: Una serie di script superficiali e poco incisivi può nascondere lacune reali nella copertura.

La regola pratica: predefinire i percorsi stabili, ripetitivi e ad alto rischio, e mantenere manuali le attività di esplorazione e usabilità.

Test di simulazione: punti chiave

  • Per script di test si intende una descrizione riga per riga contenente le informazioni sulle transazioni di sistema che dovrebbero essere eseguite per convalidare l'applicazione o il sistema sottoposto a test.
  • Il test case è una procedura passo passo utilizzata per testare un'applicazione mentre lo script di test è un insieme di istruzioni per testare automaticamente un'applicazione.
  • Tre modi per creare uno script di test sono: 1) Registrazione/riproduzione 2) Scripting basato su parole chiave/dati, 3) Scrittura Code Utilizzo del linguaggio di programmazione.
  • Lo script di test dovrebbe essere chiaro e dovresti creare uno script di test che dovrebbe contenere solo un'azione specifica che i tester possono eseguire.
  • Uno script di test è il metodo più affidabile per confermare che nessun passaggio venga saltato e che i risultati corrispondano al piano di test concordato.
  • Test Script Template è un documento formattato riutilizzabile che contiene informazioni preselezionate importanti per la creazione di uno script di test utilizzabile.

DOMANDE FREQUENTI

Un caso di test è una procedura manuale passo-passo scritta per un tester umano. Uno script di test è un codice eseguibile che uno strumento esegue automaticamente. Un caso di test spesso si trasforma in uno script di test una volta automatizzato.

Iniziate registrando e riproducendo il codice per visualizzarne la struttura, quindi modificate il codice generato. Passate a scrivere gli script manualmente quando quelli registrati smettono di funzionare, perché i localizzatori registrati raramente sopravvivono a una modifica dell'interfaccia utente.

Qualsiasi cosa venga eseguita una sola volta, qualsiasi cosa cambi a ogni sprint e qualsiasi cosa venga valutata visivamente. I test esplorativi, le revisioni di usabilità e i controlli una tantum costano di più se automatizzati tramite script che se eseguiti manualmente.

Sì. Gli strumenti di intelligenza artificiale possono convertire i casi di test scritti in script eseguibili e proporre localizzatori auto-riparanti quando un elemento cambia. RevEsamina ogni asserzione generata, perché uno script che non fallisce mai non sta testando nulla.

Gli strumenti basati sull'intelligenza artificiale rilevano gli elementi modificati e aggiornano i localizzatori senza intervento umano, eliminando la causa più comune di errori negli script. I team continuano comunque a esaminare le modifiche prima di fidarsi nuovamente della suite.

Riassumi questo post con: