Test Agile - Panoramica

Agileè una metodologia di sviluppo iterativa, in cui le attività di sviluppo e di test sono simultanee. Il test non è una fase separata; La codifica e il test vengono eseguiti in modo interattivo e incrementale, con il risultato di un prodotto finale di qualità, che soddisfa i requisiti del cliente. Inoltre, l'integrazione continua si traduce nella rimozione precoce dei difetti e quindi in un risparmio di tempo, impegno e costi.

Manifesto Agile

L'Agile Manifesto è stato pubblicato da un team di sviluppatori di software nel 2001, sottolineando l'importanza del team di sviluppo, adattandosi alle mutevoli esigenze e al coinvolgimento dei clienti.

The Agile Manifesto is −

Stiamo scoprendo modi migliori per sviluppare software facendolo e aiutando gli altri a farlo. Attraverso questo lavoro, siamo arrivati ​​a valorizzare:

  • Individui e interazioni su processi e strumenti.
  • Software funzionante su documentazione completa.
  • Collaborazione con il cliente nella negoziazione del contratto.
  • Rispondere al cambiamento piuttosto che seguire un piano.

Cioè, mentre c'è valore negli elementi a destra, diamo più valore agli elementi a sinistra.

Cos'è l'Agile Testing?

Agile Testing è una pratica di test del software che segue i principi dello sviluppo software agile.

L'Agile Testing coinvolge tutti i membri del team di progetto, con competenze speciali fornite dai tester. Il test non è una fase separata e si intreccia con tutte le fasi di sviluppo come requisiti, progettazione e codifica e generazione di test case. I test si svolgono simultaneamente durante il ciclo di vita dello sviluppo.

Inoltre, con i tester che partecipano all'intero ciclo di vita dello sviluppo in collaborazione con i membri del team interfunzionale, il contributo dei tester verso la costruzione del software secondo i requisiti del cliente, con un design e un codice migliori diventerebbe possibile.

Agile Testing copre tutti i livelli di test e tutti i tipi di test.

Test Agile vs. Test a cascata

In una metodologia di sviluppo a cascata, le attività del ciclo di vita dello sviluppo avvengono in fasi sequenziali. Pertanto, il test è una fase separata e viene avviato solo dopo il completamento della fase di sviluppo.

Di seguito sono riportati i punti salienti delle differenze tra Agile Testing e Waterfall Testing:

Test agili Test a cascata
Il test non è una fase separata e avviene contemporaneamente allo sviluppo. Il test è una fase separata. Tutti i livelli e i tipi di test possono iniziare solo dopo il completamento dello sviluppo.
I tester e gli sviluppatori lavorano insieme. I tester lavorano separatamente dagli sviluppatori.
I tester sono coinvolti nella definizione dei requisiti. Questo aiuta a mappare i requisiti ai comportamenti nello scenario del mondo reale e anche a inquadrare i criteri di accettazione. Inoltre, i casi di test di accettazione logici sarebbero pronti insieme ai requisiti. I tester potrebbero non essere coinvolti nella fase dei requisiti.
Il test di accettazione viene eseguito dopo ogni iterazione e viene richiesto il feedback dei clienti. Il test di accettazione viene effettuato solo alla fine del progetto.
Ogni iterazione completa il proprio test, consentendo così di implementare il test di regressione ogni volta che vengono rilasciate nuove funzioni o logica. Il test di regressione può essere implementato solo dopo il completamento dello sviluppo.
Nessun ritardo tra la codifica e il test. Ritardi di tempo usuali tra la codifica e il test.
Test continuo con livelli di test sovrapposti. Il test è un'attività a tempo ei livelli di test non possono sovrapporsi.
Il test è una best practice. I test vengono spesso trascurati.

Principi del test agile

I principi del test Agile sono:

  • Testing moves the project forward- Il test continuo è l'unico modo per garantire un progresso continuo. Agile Testing fornisce feedback su base continua e il prodotto finale soddisfa le esigenze aziendali.

  • Testing is not a phase- Test del team agile insieme al team di sviluppo per garantire che le funzionalità implementate durante una data iterazione siano effettivamente eseguite. Il test non viene conservato per una fase successiva.

  • Everyone tests- Nei test agili, l'intero team, inclusi analisti, sviluppatori e tester, testa l'applicazione. Dopo ogni iterazione, anche il cliente esegue il test di accettazione dell'utente.

  • Shortening Feedback Loops- In Agile Testing, il team aziendale conosce lo sviluppo del prodotto per ogni iterazione. Sono coinvolti in ogni iterazione. Il feedback continuo riduce il tempo di risposta del feedback e quindi il costo per risolverlo è inferiore.

  • Keep the Code Clean- I difetti vengono corretti quando vengono generati nella stessa iterazione. Ciò garantisce un codice pulito in qualsiasi pietra miliare dello sviluppo.

  • Lightweight Documentation - Invece di una documentazione di test completa, tester Agile -

    • Usa elenchi di controllo riutilizzabili per suggerire test.

    • Concentrati sull'essenza del test piuttosto che sui dettagli accidentali.

    • Usa stili / strumenti di documentazione leggeri.

    • Cattura idee di test in carte per test esplorativi.

    • Sfrutta i documenti per molteplici scopi.

  • Leveraging one test artifact for manual and automated tests- Lo stesso artefatto dello script di test può essere utilizzato per i test manuali e come input per i test automatizzati. Ciò elimina il requisito della documentazione di test manuale e quindi uno script di test di automazione equivalente.

  • “Done Done,” not just done - In Agile, si dice che una funzionalità venga eseguita non dopo lo sviluppo ma dopo lo sviluppo e il test.

  • Test-Last vs. Test Driven- I casi di test vengono scritti insieme ai requisiti. Quindi, lo sviluppo può essere guidato dai test. Questo approccio è chiamato Test Driven Development (TDD) e Acceptance Test Driven Development (ATDD). Ciò è in contrasto con il testing come ultima fase del Waterfall Testing.

Attività di test agili

Le attività di test Agile a livello di progetto sono:

  • Pianificazione del rilascio (piano di test)

    • Per ogni iterazione,

    • Attività di test agili durante un'iterazione

  • Test di regressione

  • Attività di rilascio (correlate al test)

Le attività di test Agile durante un'iterazione includono:

  • Partecipare alla pianificazione dell'iterazione
  • Stima delle attività dal punto di vista del test
  • Scrittura di casi di test utilizzando le descrizioni delle funzionalità
  • Test unitario
  • Test d'integrazione
  • Test delle funzionalità
  • Correzione dei difetti
  • Test d'integrazione
  • Test di accettazione
  • Reporting sullo stato di avanzamento del test
  • Tracciamento dei difetti