Concetto: Strategia di test
Questa linea guida discute come sviluppare una Strategia di test il cui scopo è descrivere l'approccio e gli obiettivi generali delle attività di test.
Relazioni
Elementi correlati
Descrizione principale

Una strategia per la parte di verifica di un progetto descrive gli obiettivi e l'approccio generale delle attività di test. Essa comprende le fasi di verifica (unità, integrazione e sistema) a cui rivolgersi e i tipi di verifica (funzioni, prestazioni, caricamento, stress) da eseguire.

La strategia definisce:

  • Tool e tecniche di verifica da utilizzare.
  • Quali criteri di successo e di completamento test verranno utilizzati. Ad esempio, è possibile che i criteri consentano al software di procedere nella verifica di accettazione quando il 95% degli scenari di test è stato eseguito correttamente. Un altro criterio è la copertura del codice. In un sistema critico per la sicurezza, questo criterio potrebbe essere che il 100% del codice dovrà essere coperto dai test.
  • Occorre considerare quanto segue nel caso dei requisiti delle risorse e tenere presenti le seguenti implicazioni di pianificazione:
  • verifica di tutte le interfacce sui sistemi esterni
  • simulazione di danno fisico o rischio per la sicurezza

Alcune organizzazioni dispongono di strategie di test aziendali, nel cui caso si lavora per applicare tali strategie al progetto specifico.

Le dimensioni più importanti attorno alle quali occorre pianificazione le attività di test sono:

  • In quale iterazione ci si trova e quali sono gli obiettivi di tale iterazione?
  • Quale fase di test (test dell'unità, test d'integrazione e test di sistema) si sta eseguendo? E' possibile lavorare tutte le fasi del test in un'iterazione.

Di seguito vengono riportate le possibili modalità di cambiamento delle caratteristiche delle attività di test, a seconda della posizione in cui ci si trova nelle dimensioni di test precedentemente menzionate. Occorre considerare numerose caratteristiche, tra cui le risorse necessarie e il tempo impiegato ma, a questo punto, concentrarsi sugli elementi importanti per definire la propria strategia di test, ad esempio:

  • tipi di test (funzionale, stress, volume, prestazioni, utilizzabilità, distribuzione e così via)
  • criteri di valutazione utilizzati (copertura test basata sul codice/sui requisiti, numero di difetti, MFCT (mean time between failure) e così via)
  • tecniche di verifica utilizzate (manuali e automatizzate)

Non esiste alcun modello generale che spieghi come vengono distribuiti i tipi di test nei relativi cicli. E' sufficiente concentrarsi sui differenti tipi di test, a seconda del numero di iterazioni, della dimensione dell'iterazione e del tipo di progetto che si sta testando.

Si scoprirà che la fase di test del sistema è focalizzata sulla verifica che siano stati verificati tutti i requisiti testabili espressi in termine di un insieme di scenari di test. Ciò significa che i criteri di completamento saranno incentrati sulla copertura test basata sui requisiti. Nelle fasi di test dell'unità e di integrazione, ci si renderà conto che la copertura test basata sul codice è un criterio di completamento molto più appropriato. La figura successiva mostra in che modo l'utilizzo di questi due tipi di misure di copertura test possono cambiare man mano che si sviluppano nuove iterazioni del proprio software.

  • Il piano del test dovrebbe definire insiemi di criteri di completamento per il test dell'unità, di integrazione e del sistema.
  • E' possibile definire differenti insiemi di criteri di completamento per singole iterazioni.

Immagine dei requisiti e delle aree basate sul codice di una tabella di test

Considerare l'automazione del maggior numero di test possibile sul progetto, in modo specifico del tipo di test ripetuto diverse volte (test di regressione). Tenere a mente che la creazione e la gestione di test automatizzati è un gran dispendio di tempo e risorse. Sarà sempre presente una parte di verifica manuale in ogni progetto. La seguente figura illustra quando e in quali fasi della verifica verranno probabilmente eseguiti test manuali.

Immagine di una tabella di test con aree di test manuale cerchiate

Esempio

Le seguenti tabelle mostrano quando vengono identificati diversi tipi di test e forniscono un esempio dei criteri di completamento da definire. La prima tabella mostra un progetto MIS tipico.

Test di iterazione Test del sistema Test di integrazione Test dell'unità
Iterazione 1 Verifica automatizzata delle prestazioni per tutti i casi d'uso.
· Sono stati eseguiti tutti i test pianificati.
· Sono stati risolti tutti i difetti con severità 1.
· Sono stati rieseguiti tutti i test pianificati e non è stato identificato alcun nuovo difetto con severità 1.
Nessuno Verifica informale
Iterazione 2 Verifica automatizzata della funzionalità e delle prestazioni per tutti i nuovi casi d'uso e il precedente come test di regressione.
· Sono stati eseguiti tutti i test pianificati.
· Sono stati risolti tutti i difetti con severità 1 e 2.
· Sono stati rieseguiti tutti i test pianificati e non è stato identificato alcun nuovo difetto con severità 1 o 2.
Nessuno Verifica informale
Iterazione 3 Verifica negativa e della funzionalità automatizzata per tutti i nuovi casi d'uso e tutti i precedenti come test di regressione; deve essere superato il 95% degli scenari di test.
· Sono stati eseguiti tutti i test pianificati.
· Identificati tutti i difetti con severità 1, 2 e 3.
Verifica automatizzata, copertura codice del 70%. Verifica informale
Iterazione 4 Verifica negativa e della funzionalità automatizzata per tutti i casi d'uso, verifica manuale per tutte le parti non automatizzate e tutti i precedenti come test di regressione. Deve essere superato il 100% degli scenari di test.
· Sono stati eseguiti tutti i test pianificati.
· Risolti tutti i difetti con severità 1, 2 e 3.
· Sono stati rieseguiti tutti i test pianificati e non è stato identificato alcun nuovo difetto con severità 1 o 2.
Verifica automatizzata, copertura codice dell'80%. Verifica informale

La seconda tabella mostra i tipi di test e i criteri di completamento applicati per un sistema critico per la sicurezza tipico.

Test di iterazione Test del sistema Test di integrazione Test dell'unità
Iterazione 1 Verifica automatizzata delle prestazioni per tutti i casi d'uso; copertura scenari di test del 100%.
· Sono stati eseguiti tutti i test pianificati.
· Sono stati risolti tutti i difetti con severità 1.
· Sono stati rieseguiti tutti i test pianificati e non è stato identificato alcun nuovo difetto.
Nessuno Nessuno
Iterazione 2 Verifica automatizzata delle prestazioni, negativa e della funzionalità per tutti i casi d'uso; copertura scenari di test del 100%.
· Sono stati eseguiti tutti i test pianificati.
· Sono stati risolti tutti i difetti con severità 1 o 2.
· Sono stati rieseguiti tutti i test pianificati e non è stato identificato alcun nuovo difetto.
Verifica automatizzata delle prestazioni Verifica informale
Iterazione 3 Verifica automatizzata della documentazione, utilizzabilità negativa, della funzionalità e delle prestazioni per tutti i casi d'uso; copertura scenari di test del 100%.
· Sono stati eseguiti tutti i test pianificati.
· Risolti tutti i difetti con severità 1, 2 e 3.
· Sono stati rieseguiti tutti i test pianificati e non è stato identificato alcun nuovo difetto.
Verifica automatizzata delle prestazioni e precedente come test di regressione Verifica automatizzata, copertura codice del 70%
Iterazione 4 Verifica automatizzata della documentazione, utilizzabilità negativa, della funzionalità e delle prestazioni per tutti i casi d'uso; copertura scenari di test del 100%.
· Sono stati eseguiti tutti i test pianificati.
· Risolti tutti i difetti con severità 1, 2 e 3.
· Sono stati rieseguiti tutti i test pianificati e non è stato identificato alcun difetto.
Verifica automatizzata delle prestazioni e precedente come verifica di regressione Verifica automatizzata, copertura codice dell'80%