automated regression testing
Questo tutorial spiega le sfide del test di regressione automatizzato. Impareremo anche il processo e i passaggi per automatizzare i test di regressione:
Impareremo come automatizzare i casi di test di regressione iniziando dall'identificarli, selezionando uno strumento per eseguire l'automazione, facendo analisi di costi, tempi e sforzi, scrivendo script e infine consegnandoli al team di test manuali in modo che possano eseguire i casi di test da qualsiasi luogo in qualsiasi momento.
Se ti stai chiedendo perché solo la suite di test di regressione, è perché la suite di test di regressione è il principale candidato per l'automazione in quanto è l'insieme di casi di test che sono ripetitivi e richiedono tempo. Pertanto, automatizzarli risparmierebbe davvero molte risorse e richiederebbe anche meno tempo.
Riceverai rapporti rapidi sui casi di test di regressione e puoi utilizzare questi passaggi per automatizzare anche qualsiasi altra suite di test.
=> Fare clic qui per la serie completa di test di regressione.
Cosa imparerai:
- Test di regressione automatizzato
- Test automatizzati: sfide in un ambiente agile
- Passaggi per automatizzare i test di regressione
- Conclusione
Test di regressione automatizzato
Recentemente, quando ho voluto avviare il mio nuovo progetto di test automatizzato con quattro risorse, ho pensato di applicare una qualsiasi delle metodologie Agile. Ma non ho potuto continuare perché mi sono state poste in mente una serie di domande.
Le domande erano come:
- È possibile utilizzare metodologie Agile nei test automatizzati?
- Posso usare strumenti tradizionali?
- Dovrei optare per strumenti open source?
- Quali sono le sfide che devo affrontare se sto implementando l'automazione nell'Ambiente Agile?
In questo articolo analizziamo alcune delle sfide che dobbiamo affrontare durante l'implementazione dell'automazione con metodologie Agile. Il test di regressione automatizzato nell'ambiente Agile rappresenta un rischio di diventare caotico, non strutturato e incontrollato.
I progetti Agile presentano le proprie sfide al team di automazione. La metodologia Agile enfatizza la collaborazione in team e la consegna frequente di un prodotto. Fattori come ambito del progetto poco chiaro, ripetizioni multiple, documentazione minima, esigenze di automazione precoci e frequenti e coinvolgimento attivo delle parti interessate, ecc., Richiedono molte sfide dal team di automazione.
Test automatizzati: sfide in un ambiente agile
Ci sono diverse sfide Agile per il team di automazione. Tuttavia, a alcuni di loro sono descritti di seguito.
Sfida 1:Fase dei requisiti
Lo sviluppatore di Test Automation acquisisce i requisiti sotto forma di 'storie utente', che sono brevi descrizioni delle funzionalità rilevanti per il cliente.
Ogni requisito deve avere la priorità come segue:
Alto: Questi sono requisiti mission-critical che devono essere assolutamente soddisfatti nella prima versione
Medio: Questi sono i requisiti che sono importanti, ma possono essere aggirati fino all'implementazione.
Basso: Questi sono i requisiti che sono piacevoli da avere ma non critici per il funzionamento del software.
Una volta stabiliti i priorati, vengono pianificate le 'iterazioni' di rilascio. Normalmente, ogni iterazione di rilascio Agile richiede da 1 a 3 mesi per essere consegnata. I clienti / addetti al software si prendono la libertà di apportare troppe modifiche ai requisiti. A volte, queste modifiche sono così volatili che le iterazioni vengono eliminate. Questi cambiamenti rappresentano sfide maggiori nell'implementazione del processo di test di Agile Automation.
domande e risposte dell'intervista di oracle pl sql per pdf con esperienza
Sfida 2:Selezione degli strumenti giusti
Gli strumenti tradizionali e test-last con funzionalità di registrazione e riproduzione costringono i team ad attendere fino al termine del software. Inoltre, i tradizionali strumenti di automazione dei test non funzionano per un contesto Agile perché risolvono problemi tradizionali diversi dalle sfide che devono affrontare i team di Agile Automation.
L'automazione nelle prime fasi di un progetto agile è solitamente molto difficile, ma man mano che il sistema cresce ed evolve, alcuni aspetti si risolvono e diventa appropriato distribuire l'automazione. Quindi la scelta degli strumenti di test diventa fondamentale per raccogliere i vantaggi di efficienza e qualità dell'agile.
Sfida 3:Fase di sviluppo dello script
I tester dell'automazione, gli sviluppatori, gli analisti aziendali e gli stakeholder del progetto contribuiscono insieme alle riunioni di avvio in cui vengono selezionate le 'User-Story' per lo sprint successivo. Una volta selezionate le 'User-Story' per lo sprint, vengono utilizzate come base per una serie di test.
Man mano che la funzionalità cresce con ogni iterazione, è necessario eseguire il test di regressione per garantire che la funzionalità esistente non sia stata influenzata dall'introduzione di nuove funzionalità in ogni ciclo di iterazione. Il scala del test di regressione cresce con ogni sprint e garantisce che questo rimanga un compito gestibile e il team di test utilizza l'automazione del test per la suite di regressione.
Sfida 4:Gestione delle risorse
L'approccio Agile richiede una combinazione di abilità di test, ovvero saranno necessarie risorse di test per definire scenari e casi di test poco chiari, condotte Test manuale insieme agli sviluppatori, scrivi test di regressione automatizzati ed esegui i pacchetti di regressione automatizzati.
Man mano che il progetto avanza, saranno necessarie anche competenze specialistiche per coprire ulteriori aree di test che potrebbero includere l'integrazione e il test delle prestazioni.
Ci dovrebbe essere una combinazione appropriata di specialisti di dominio che pianificano e raccolgono i requisiti. La parte più impegnativa nella gestione delle risorse è scoprire risorse di prova con più competenze e assegnarle.
Sfida 5:Comunicazione
Deve esistere una buona comunicazione tra i Test di automazione team, sviluppatori, analisti aziendali e stakeholder. Deve esserci un'interazione altamente collaborativa tra il cliente e i team di consegna. Un maggiore coinvolgimento del cliente implica più suggerimenti o modifiche da parte del cliente. E implica più larghezza di banda per la comunicazione.
La sfida principale è che il processo dovrebbe essere in grado di acquisire e implementare efficacemente tutte le modifiche e l'integrità dei dati deve essere mantenuta. Nei test tradizionali, sviluppatori e tester sono come l'olio e l'acqua, ma in un ambiente agile, il compito impegnativo è che entrambi devono lavorare insieme per raggiungere l'obiettivo.
Sfida 6:Daily Scrum Meeting
Il Daily Scrum Meeting è una delle attività chiave del Processo Agile. Le squadre si incontrano per 15 minuti di sessioni in piedi. Qual è l'efficacia di questi incontri? Fino a che punto questi incontri aiutano gli sviluppatori a fare pratica con l'automazione? ecc. vengono discussi in questa riunione.
Sfida 7:Fase di rilascio
Lo scopo del progetto Agile è fornire un prodotto funzionante di base il più rapidamente possibile e quindi passare attraverso un processo di miglioramento continuo. Ciò significa che non esiste una singola fase di rilascio per un prodotto. La parte più impegnativa risiede nel test di integrazione e nel test di accettazione del prodotto.
Passaggi per automatizzare i test di regressione
Il processo da seguire per automatizzare la regressione può essere suddiviso con precisione nei seguenti passaggi:
Questi 7 passaggi sono spiegati di seguito in dettaglio in termini semplici per una facile comprensione.
1. Identificazione
# 1) Identifica il casi test che dovrebbe far parte della suite di test di regressione.
- Per iniziare ad automatizzare i casi di test di regressione, la prima cosa che devi fare è identificare e definire correttamente i casi di test di regressione con tutti i passaggi, i dati e i prerequisiti.
- Per assicurarti di avere una suite di test di regressione efficace, non dimenticare di includere:
- Casi di test con difetti ricorrenti.
- Casi di test che coprono scenari end-to-end.
- Casi di test più visibili agli utenti finali.
- Casi di test sui valori limite.
- Buon mix di casi di test positivi e negativi.
- Casi di test complessi.
#Due) Identifica il strumenti di automazione che sono i migliori per le tue esigenze e il comportamento dell'applicazione. Una volta che i casi di test di regressione sono stati identificati e pronti per l'automazione, identifica gli strumenti che si adattano meglio ai tuoi casi di test.
Il modo migliore per identificare gli strumenti è creare una matrice con gli strumenti e le tue esigenze e quindi tenere traccia di quale strumento soddisfa quali requisiti.
Letture consigliate => Elenco dei migliori strumenti di test di automazione
# 3) Identifica il Linguaggio di programmazione che vuoi usare. Con così tanti strumenti disponibili sul mercato, più lingue sono supportate da questi strumenti. Pertanto, è importante identificare il linguaggio di programmazione in cui si desidera scrivere i casi di test di automazione.
Esempio :Supponiamo di avere un progetto in cui vogliamo automatizzare una suite di test di regressione per un'applicazione basata su browser.
Come spiegato sopra, identificheremo i casi di test.
- Supponiamo che il nostro caso di test sia 'Verifica che un utente possa accedere correttamente utilizzando un nome utente e una password validi'.
Successivamente, identificheremo gli strumenti di automazione.
- Un test case basato su browser può essere automatizzato con ' Selenio ',' Ranorex ',' TestComplete '. Decidiamo lo strumento Selenio in quanto si adatta meglio ai requisiti.
Ora, identifichiamo un linguaggio di programmazione.
- Vogliamo utilizzare ' Giava 'Come linguaggio di programmazione poiché è un linguaggio altamente supportato.
2. Analisi
# 1) Fare Costo analisi. È molto importante lavorare entro i limiti del budget. Così, dopo la fase di identificazione, avrai un'idea di quanti casi di test devono essere automatizzati e quali sono i possibili strumenti che possono essere utilizzati.
Tutti i risultati della fase di identificazione ti aiuteranno a elaborare un budget approssimativo e quindi, se necessario, potrai ottenere qualsiasi approvazione, ecc.
#Due) Fare risorsa e impegno analisi per vedere se hai le risorse per lavorare su questo. Insieme all'analisi dei costi, è molto importante eseguire un'analisi delle risorse e degli sforzi per una migliore allocazione delle risorse e utilizzare il loro tempo nel progetto in modo efficiente.
Durante la stima delle risorse e degli sforzi, assicurati di tenere conto dei rischi come, se qualcuno si ammala o se alcuni casi di test necessitano di più risorse per l'esecuzione, ecc.
# 3) Fare Tempo Analisi. L'analisi del tempo è necessaria per assicurarsi di poter completare il progetto di automazione entro il budget e le tempistiche. Mentre si lavora sull'analisi del tempo, sarà utile preparare un diagramma temporale per monitorare i progressi durante lo sviluppo.
Per una migliore analisi della cronologia del progetto:
- Identifica le attività e le attività secondarie nei tuoi progetti.
- Dai la priorità alle attività e alle attività secondarie.
- Disegna un diagramma di Gantt o un diagramma di rete per una migliore rappresentazione grafica della sequenza temporale.
Esempio :Andando avanti con il nostro esempio in considerazione dalla fase di identificazione, la spiegazione di questa fase è data di seguito:
Analisi dei costi:
Supponiamo che il costo approssimativo per questo progetto sia di $ X importo.
Risorse e impegno:
Per questo, un caso di test deve essere automatizzato dall'inizio alla fine e abbiamo bisogno di una risorsa a tempo pieno per circa 24 ore e abbiamo anche bisogno di un'altra risorsa per rivedere il lavoro. Pertanto, abbiamo bisogno di 2 risorse e la stima dello sforzo è di circa 40 ore.
Analisi del tempo:
Per questo, disegniamo un piccolo diagramma di Gantt per vedere la sequenza temporale.
3. Formazione / Assunzione
# 1) Se alcune risorse richiedono formazione , quindi pianifica la loro formazione. A volte potresti avere alcune risorse di test manuali che sono interessate a scrivere casi di test di automazione o alcune persone hanno lavorato sull'automazione ma strumenti diversi e sono disposti a imparare lo strumento che hai selezionato per la tua automazione.
In questo caso, identificare queste risorse e pianificare la loro formazione in modo che possano iniziare a lavorare sull'automazione dei casi di test di regressione.
#Due) Se abbiamo bisogno di più risorse, lavora sul file assumere Piano. Quando hai fatto l'analisi delle risorse per gli sforzi e se non sei in grado di soddisfare i bisogni con le risorse già disponibili, allora pianifica di assumere alcune nuove risorse con le competenze adeguate che sono richieste per il progetto all'interno del budget.
Esempio:
Supponiamo di avere già una risorsa che ha familiarità con i concetti di Java e vuole imparare il selenio. Quindi organizzeremo l'addestramento al selenio per quella persona.
Se non abbiamo risorse disponibili per l'automazione. Quindi assumeremo una persona che abbia esperienza nell'automazione di tali casi di test utilizzando selenio e java.
4. Framework e linee guida
# 1) Una volta che lo strumento e le risorse sono pronti, lavora per creare un file struttura o decidere quale utilizzare dai framework esistenti. È possibile utilizzare più framework già costruiti o creare il proprio framework da zero.
Durante la selezione o la creazione di un framework, assicurarsi di coinvolgere i componenti su, casi di test, log, report, input, connessione al database, ecc.
#Due) Decidi l'altro strumenti di supporto che vuoi usare. Poiché lo sviluppo di script di automazione è un'attività di sviluppo che implica la scrittura di codice, sarebbe molto meglio capire gli altri strumenti di sviluppo che sarebbero necessari per supportare la scrittura degli script.
Per esempio , Alcuni strumenti che possono essere di aiuto includono git, GitHub, Jenkins, ecc.
# 3) Delinea il file linee guida per scrivere script di automazione. È necessario delineare le linee guida in modo che tutte le risorse che lavorano al progetto siano sincronizzate e utilizzino le stesse convenzioni di denominazione, le stesse procedure per il check-in / check-out del codice e lo stesso linguaggio di programmazione.
gateway predefinito non disponibile correzione di Windows 10
Esempio:
Struttura: Decidiamo BDD (sviluppo guidato dal comportamento) per i test di automazione.
Strumenti di supporto: Gli strumenti di cui abbiamo bisogno per supportare completamente l'automazione saranno GitHub, Jenkins, Log4J, Cucumber e JUnit.
5. Script di automazione
Inizia a scrivere script di automazione. Una volta che abbiamo tutto, ovvero lo strumento, il linguaggio di programmazione, le competenze richieste e i casi di test che devono essere automatizzati, possiamo iniziare a scrivere script di automazione.
Durante la scrittura degli script, dobbiamo assicurarci che:
- Le linee guida vengono seguite.
- Stiamo usando gli strumenti.
- I casi di test sono modularizzati.
- Dovremmo essere in grado di riutilizzare i componenti se sono necessari in più casi di test.
Dobbiamo anche assicurarci che il codice sia correttamente mantenuto nello strumento di controllo della versione e che tutti i membri del team possano collaborare facilmente.
Esempio:
Scriviamo script reali per eseguire questo caso di test. Il campione dagli script può essere mostrato come di seguito.
Innanzitutto, lo scenario del cetriolo per questo caso di test sarebbe il seguente:
Funzionalità: verifica la funzionalità di accesso
Come utente voglio accedere all'applicazione
Schema dello scenario: accedere all'applicazione
Dato che ho aperto l'applicazione
Quando inserisco il nome utente ''
E inserisco la password ''
E clicco sul pulsante Accedi
Poi vado alla Home page
Esempi:
| nome utente | password |
| testuser1 | password1 |
| testuser2 | password2 |
Dopo il file di funzionalità, implementeremo la definizione del passaggio per i passaggi menzionati nel file di funzionalità.
public class Login { LoginImpl loginImpl = new LoginImpl(); @Given('^I open application$') public void i_open_application() { loginImpl.openURL('URL'); } @When('^I Enter username '((^')*)'$') public void i_Enter_username(String arg1) { loginImpl.enterUserName(arg1); } @When('^I Enter password '((^')*)'$') public void i_Enter_password(String arg1) { loginImpl.enterPassword(arg1); } @When('^I click on Login button$') public void i_click_on_Login_button() { loginImpl.clickLoginButton(); } @Then('^I go to Home page$') public void i_go_to_Home_page() { loginImpl.verifyHomePage(); } }
Alla fine, l'effettiva implementazione della classe di funzionalità di accesso dovrebbe apparire come di seguito:
public class LoginImpl { WebDriver driver; public LoginImpl(){ System.setProperty('webdriver.chrome.driver', 'webdriver/chromedriver.exe'); driver = new ChromeDriver(); } public void openURL(String string) { driver.get(string); } public void enterUserName(String arg1) { driver.findElement(By.id('UserName')).sendKeys(arg1); } public void enterPassword(String arg1) { driver.findElement(By.id('Password')).sendKeys(arg1); } public void clickLoginButton() { driver.findElement(By.id('LoginButton')).click(); } public void verifyHomePage() { String currUrl = driver.getCurrentUrl(); if(currUrl.equals('homePageURL')) { System.out.println('Home page verified'); } } }
6. Revisione
(Immagine fonte )
# 1) Revisione del codice: Una volta che uno sviluppatore di automazione ha finito di scrivere script di automazione, è molto importante passare attraverso i diversi livelli di revisione del codice.
Le revisioni del codice aiutano in
- Identificazione di verifiche errate.
- Trovare punti di ottimizzazione del codice.
- Trovare modi migliori per implementare la funzionalità per un uso efficiente delle risorse.
Le revisioni del codice espongono anche il lavoro di uno sviluppatore agli altri sviluppatori e gli danno una prospettiva diversa e anche margini di miglioramento.
# 2) Revisione dei casi di test: Insieme alla revisione del codice, anche la revisione del test case è molto importante. Dobbiamo assicurarci che gli script dei test di automazione quando eseguiti eseguano lo stesso insieme di azioni e verifiche che ci aspettiamo dai casi di test manuali.
Pertanto, la revisione dei casi di test di automazione con analisti aziendali o esperti di test aiuta a rafforzare la fiducia nei test di automazione di tali casi di test.
Esempio:
Per il nostro esempio in considerazione, supponiamo che per la revisione del codice abbiamo ricevuto commenti come 'elemento di ricerca per ID e non per nome'. Qui, ne terremo conto e modificheremo il nostro script di conseguenza.
Inoltre, è possibile eseguire una revisione del test per aggiungere passaggi per il test se ci si trova nella home page dopo un accesso riuscito. Quindi, lo aggiungeremo anche ai nostri script.
7. Consegnare
Fornisci i casi di test, in modo che chiunque possa eseguirli in qualsiasi momento. Una volta che gli script di automazione sono pronti per l'uso, è molto importante elaborare un piano di consegna per gli script di automazione.
Questo piano è necessario perché vogliamo assicurarci che l'automazione dei casi di test non limiti la sua esecuzione a un insieme specifico di persone o competenze. Tutti i membri del team o del progetto dovrebbero essere autorizzati a eseguire i casi di test.
Uno dei possibili piani di consegna è fornire un lavoro Jenkins che può essere attivato per eseguire i casi di test automatizzati.
Esempio:
Nel nostro caso, supponiamo di aver consegnato il test case utilizzando un lavoro Jenkins. Questo lavoro Jenkins, prende il codice da GitHub, lo compila ed esegue i casi di test su una macchina diversa.
Una volta che il lavoro ha esito positivo, ti mostra il rapporto di prova generato. Chiunque abbia accesso a Jenkins può eseguire questo lavoro. Inoltre, questo lavoro può essere pianificato per essere eseguito in un momento specifico.
Conclusione
Se siamo in grado di affrontare queste sfide in modo ben ottimizzato, il test di regressione automatizzato nell'ambiente Agile è un'eccellente opportunità per il QA di assumere la leadership dei processi agili. È in una posizione migliore per colmare il divario tra utenti e sviluppatori, capire cosa è richiesto, come può essere raggiunto e come può essere garantito prima della distribuzione.
La pratica dell'automazione dovrebbe avere un interesse acquisito in entrambi, il risultato, oltre a continuare a garantire che l'intero sistema in evoluzione soddisfi gli obiettivi aziendali e sia adatto allo scopo.
L'automazione di un test case di regressione è sempre utile poiché è il miglior candidato per iniziare test di automazione . Puoi seguire i passaggi sopra menzionati per automatizzare qualsiasi suite di test e non solo la regressione.
I test di automazione sono molto utili ed economici e l'investimento di tempo nel test di automazione è solo nella scrittura di script e nella loro manutenzione. Pertanto, i test di automazione devono essere adeguatamente pianificati e programmati per un progetto di successo.
Circa l'autore: J.B.Rajkumar ha più di 15 anni di esperienza sia in ambito accademico che in test di software. Ha lavorato come Corporate Trainer, Test Lead, QA Manager e QC Manager.
Fateci sapere i vostri commenti / suggerimenti su questo articolo.
=> Visita qui per la serie completa di test di regressione.
Lettura consigliata
- Migliori strumenti di test del software 2021 (Strumenti di automazione del test QA)
- Download dell'eBook Testing Primer
- 4 passaggi verso lo sviluppo della mentalità di test agile per una transizione di successo al processo agile
- Sfide dei test manuali e di automazione
- Differenza tra test di ripetizione e test di regressione con esempio
- 5 Sfide e soluzioni dei test mobili
- Test SaaS: sfide, strumenti e approccio al test
- I 10 strumenti di test di regressione più popolari nel 2021