Introduzione
Questo principio enfatizza che, per ottenere la qualità, questa deve essere perseguita lungo tutto il
ciclo di vita del progetto. Un processo iterativo è particolarmente adatto all'ottenimento della
qualità poiché offre molte opportunità di misurazione e di correzione.
|
|
Vantaggi
|
-
Qualità superiore
-
Consapevolezza anticipata dell'avanzamento e della qualità
|
Pattern
|
-
Verificare che il team disponga della qualità per il prodotto.
-
Testare presto e continuamente al passo con l'integrazione delle capacità
dimostrabili.
-
Creare in maniera incrementale l'automazione del test.
|
Anti-pattern
|
-
Effettuare una revisione di tutti gli artefatti e completare tutte le verifiche di
unità prima della verifica di integrazione.
-
Condurre una revisione, effettuata da persone con pari competenze, in profondità di
tutti gli artefatti intermedi, che è controproducente perché ritarda la verifica
dell'applicazione e quindi l'identificazione di problematiche principali.
-
Completare tutte le verifiche di unità prima di effettuare la verifica di
integrazione, ritardando ancora l'identificazione delle problematiche principali
|
|
Discussione
Migliorare la qualità non significa semplicemente "soddisfare i requisiti" o creare un prodotto che soddisfa le
esigenze degli utenti e le aspettative. Piuttosto, la qualità include anche l'identificazione delle misure e dei
criteri che ne dimostrano il raggiungimento e l'implementazione di un processo che verifica che il prodotto abbia
raggiunto il grado di qualità desiderato e che ciò può essere ripetuto e gestito.
Garantire un'alta qualità richiede più della partecipazione del team di verifica; richiede che l'intero team
disponga della qualità. Coinvolge tutti i membri del team e tutte le parti che compongono il ciclo di vita:
-
Gli analisti sono responsabili della testabilità dei requisiti e devono essere specificati dei
chiari requisiti per l'esecuzione dei test.
-
Gli sviluppatori devono progettare le applicazioni con in mente la fase di test e sono
responsabili della verifica del proprio codice.
-
I manager devono verificare che siano in atto i giusti piani di test e che siano a
disposizione le giuste risorse per la creazione di metodi di test (testware) e per l'esecuzione dei test
richiesti.
-
I tester sono degli esperti della qualità. Guidano il resto del team alla comprensione delle
problematiche relative alla qualità del software e sono responsabili di tutte le verifiche del prodotto
(incluse quella funzionale, di sistema e delle prestazioni).
Quando si verifica una problematica inerente alla qualità, ogni membro del team deve essere pronto a contribuire alla
risoluzione del problema.
Uno dei principali vantaggi dello sviluppo iterativo è che consente un approccio di test precoce e
continuativo, come illustrato di seguito. Quando si giunge al termine del progetto, e poiché le capacità più
importanti sono state implementate all'inizio, il software più essenziale sarà stato già attivo e in
esecuzione da mesi, ed è quindi probabile che sia stato testato per mesi. Non sorprende che la maggior
parte dei progetti che adottano lo sviluppo iterativo asserisca che un aumento nella qualità sia un risultato primario
tangibile del processo migliorato.
La verifica inizia presto e viene estesa in ogni iterazione
Lo sviluppo iterativo consente una verifica precoce. Il software sviluppato in ogni iterazione viene testato
non appena creato. La verifica di regresso assicura che non vengano introdotti dei nuovi difetti quando le iterazioni
aggiungono delle funzionalità. Riferimento: Materiale di supporto: Gestione della qualità.
Man mano che viene costruita l'applicazione in modo incrementale, è necessario creare in modo incrementale
l'automazione del test per rilevare presto i difetti, minimizzando gli investimenti anticipati. Quando viene
progettato un sistema, viene considerato come deve essere testato. Effettuare le scelte giuste di progettazione
migliora sensibilmente la possibilità di automatizzare le verifica. E' anche possibile generare il codice di test
direttamente dai modelli di progettazione. In questo modo si risparmia tempo, si forniscono degli incentivi per una
verifica precoce ed aumenta la qualità della verifica riducendo al minimo il numero di bug contenuti nel software del
test. La verifica automatizzata è stata un'area chiave di attenzione, fra gli altri, per la comunità agile (agile
community), il cui lo scopo è di automatizzare la verifica di tutto il codice, e dove i test vengono scritti prima del
codice (progettazione test-first).
|