Test Agile - Scrum

Sostenitori di Scrum Whole Team Approach, nel senso che ogni membro del team deve prendere parte a ogni attività del progetto. Il team Scrum si auto-organizza con responsabilità per i risultati del progetto. Il processo decisionale è lasciato al team che si traduca in azioni appropriate da intraprendere al momento giusto senza ritardi. Questo approccio incoraggia anche un uso corretto del talento del team invece di limitarsi a un'attività. I tester partecipano anche a tutte le attività di progetto e di sviluppo contribuendo con la loro esperienza nei test.

L'intero team lavora insieme su strategia di test, pianificazione dei test, specifiche dei test, esecuzione dei test, valutazione dei test e report dei risultati dei test.

Creazione collaborativa di User Story

I tester partecipano alla creazione della User Story. I tester contribuiscono con le loro idee sul possibile comportamento del sistema. Ciò aiuta il cliente e / o l'utente finale a comprendere il sistema nell'ambiente reale e quindi a ottenere chiarezza su ciò che effettivamente vogliono come risultato. Ciò si traduce in un congelamento più rapido dei requisiti e riduce anche la probabilità di modifiche dei requisiti in un secondo momento.

I tester forniscono anche i criteri di accettazione per ogni scenario concordato dal cliente.

I tester contribuiscono alla creazione di user story verificabili.

Pianificazione del rilascio

La pianificazione del rilascio viene eseguita per l'intero progetto. Tuttavia, il framework Scrum implica un processo decisionale iterativo poiché si ottengono maggiori informazioni nel corso dell'esecuzione degli sprint. Pertanto, la sessione di pianificazione del rilascio all'inizio del progetto non deve produrre un piano di rilascio dettagliato per l'intero progetto. Può essere aggiornato continuamente, man mano che sono disponibili informazioni pertinenti.

Ogni sprint-end non ha bisogno di un rilascio. Un rilascio può avvenire dopo un gruppo di sprint. Il criterio principale di un rilascio è fornire valore commerciale al cliente. Il team decide la durata dello sprint con la pianificazione del rilascio come input.

La pianificazione del rilascio è la base dell'approccio al test e del piano di test per il rilascio. I tester stimano lo sforzo del test e pianificano il test per il rilascio. Quando i piani di rilascio cambiano, i tester devono gestire le modifiche, ottenere una base di test adeguata considerando un contesto di rilascio più ampio. I tester forniscono anche lo sforzo di test richiesto alla fine di tutti gli sprint.

Pianificazione dello sprint

La pianificazione dello sprint viene eseguita all'inizio di ogni sprint. Lo sprint backlog viene creato con le user story raccolte dal product backlog per l'implementazione in quel particolare sprint.

I tester dovrebbero:

  • Determina la testabilità delle storie utente selezionate per lo sprint
  • Crea test di accettazione
  • Definisci i livelli di test
  • Identifica l'automazione dei test

I tester aggiornano il piano di test con le stime per lo sforzo di test e le durate nello sprint. Ciò garantisce la fornitura di tempo per i test richiesti durante gli sprint time-boxed e anche la responsabilità dello sforzo di test.

Analisi del test

Quando inizia uno sprint, mentre gli sviluppatori proseguono l'analisi della storia per la progettazione e l'implementazione, i tester eseguono l'analisi del test per le storie nello sprint backlog. Il tester crea i casi di test richiesti, sia test manuali che automatizzati.

Test

Tutti i membri del team Scrum dovrebbero partecipare ai test.

  • Gli sviluppatori eseguono gli unit test mentre sviluppano il codice per le user story. Gli unit test vengono creati in ogni sprint, prima che il codice venga scritto. I casi di unit test derivano da specifiche di progettazione di basso livello.

  • I tester eseguono le caratteristiche funzionali e non funzionali delle storie degli utenti.

  • I tester fanno da mentore agli altri membri del team di scrum con la loro esperienza nei test in modo che l'intero team abbia una responsabilità collettiva per la qualità del prodotto.

  • Alla fine dello sprint, il cliente e / o gli utenti finali eseguono il test di accettazione degli utenti e forniscono feedback al team di Scrum. Questo costituisce un input per il prossimo sprint.

  • I risultati dei test vengono raccolti e conservati.

Test di automazione

Il testing di automazione è molto importante nei team Scrum. I tester dedicano tempo alla creazione, esecuzione, monitoraggio e manutenzione di test e risultati automatizzati. Poiché le modifiche possono verificarsi in qualsiasi momento nei progetti Scrum, i tester devono adattarsi al test delle funzionalità modificate e anche ai test di regressione coinvolti. I test di automazione facilitano la gestione dello sforzo di test associato alle modifiche. I test automatizzati a tutti i livelli facilitano il raggiungimento dell'integrazione continua. I test automatizzati vengono eseguiti molto più velocemente dei test manuali senza ulteriori sforzi.

Il test manuale si concentra maggiormente sui test esplorativi, sulla vulnerabilità del prodotto e sulla previsione dei difetti.

Automazione delle attività di test

L'automazione delle attività di test riduce il carico di lavoro ripetuto e si traduce in risparmi sui costi. Automatizzare

  • Generazione dei dati di test
  • Caricamento dei dati di prova
  • Implementa la distribuzione nell'ambiente di test
  • Gestione dell'ambiente di test
  • Confronto dell'output dei dati

Test di regressione

In uno sprint, i tester testano il codice nuovo / modificato in quello sprint. Tuttavia, i tester devono anche assicurarsi che anche il codice sviluppato e testato negli sprint precedenti funzioni insieme al nuovo codice. Pertanto, in Scrum viene data importanza ai test di regressione. I test di regressione automatizzati vengono eseguiti in integrazione continua.

Gestione della configurazione

Nei progetti Scrum viene utilizzato un sistema di gestione della configurazione che utilizza framework di compilazione e test automatizzati. Ciò consente di eseguire ripetutamente analisi statiche e unit test man mano che il nuovo codice viene archiviato nel sistema di gestione della configurazione. Gestisce inoltre l'integrazione continua del nuovo codice con il sistema. I test di regressione automatizzata vengono eseguiti durante l'integrazione continua.

Casi di test manuali, test automatizzati, dati di test, piani di test, strategia di test e altri artefatti di test devono essere controllati dalla versione e devono essere garantite le autorizzazioni di accesso pertinenti. Ciò può essere ottenuto conservando gli artefatti di test nel sistema di gestione della configurazione.

Pratiche di test agili

I tester di uno Scrum Team possono seguire le seguenti pratiche Agile:

  • Pairing- Due membri del team si siedono insieme e lavorano in modo collaborativo. Le due persone possono essere due tester o un tester e uno sviluppatore.

  • Incremental Test Design - I casi di test vengono sviluppati man mano che gli Sprint progrediscono in modo incrementale e le User Story vengono sommate.

Metriche agili

Durante lo sviluppo del software, la raccolta e l'analisi delle metriche aiutano a migliorare il processo e quindi a ottenere una migliore produttività, risultati di qualità e soddisfazione del cliente. Nello sviluppo basato su Scrum, questo è possibile ei tester devono prestare attenzione alle metriche di cui hanno bisogno.

Sono suggerite diverse metriche per lo sviluppo di Scrum. Le metriche significative sono:

  • Ratio of Successful Sprints - (Number of successful Sprints / Total number of Sprints) * 100. Uno Sprint di successo è quello in cui il Team potrebbe mantenere il proprio impegno.

  • Velocity- La velocità di una squadra si basa sulla quantità di punti storia guadagnati da una squadra durante uno sprint. I punti storia sono la misura delle storie utente conteggiate durante la stima.

  • Focus Factor - (Velocity / Team’s Work Capacity) / 100. Focus Factor è la percentuale dell'impegno del team che si traduce in storie finite.

  • Estimation Accuracy - (Estimated effort / Actual effort) / 100. L'accuratezza della stima è la capacità del team di stimare accuratamente lo sforzo.

  • Sprint Burndown- Lavoro (in Story Points o in ore) che è Remaining vs. Lavoro che deve essere rimanente idealmente (secondo la stima).

    • Se è di più, significa che il team ha assunto più lavoro di quanto possa fare.

    • Se è inferiore, significa che il team non ha stimato accuratamente.

  • Defect Count- Numero di difetti in uno Sprint. Il conteggio dei difetti è la quantità di difetti nel software rispetto al backlog.

  • Severity of Defects- I difetti possono essere classificati come minori, maggiori e critici in base alla loro gravità. I tester possono definire la categorizzazione.

Sprint Retrospectives

In Sprint Retrospectives, tutti i membri del team parteciperanno. Condividono -

  • Le cose che sono andate bene
  • Metrics
  • Le possibilità di miglioramento
  • Elementi di azione da applicare