Metodologie di test del software: modelli di QA
Cos'รจ la metodologia di test del software?
Per metodologia di test del software si intendono le strategie e i tipi di test utilizzati per certificare che l'applicazione sottoposta a test soddisfa le aspettative del cliente. Le metodologie di test includono test funzionali e non funzionali per convalidare l'AUT. Esempi di metodologie di test sono Test unitari, Test d'integrazione, Test di sistema, Test di Performance ecc. Ciascuna metodologia di test ha un obiettivo di test, una strategia di test e risultati finali definiti.
Note:: Poichรฉ il test del software รจ parte integrante di qualsiasi metodologia di sviluppo, molte aziende utilizzano colloquialmente il termine metodologie di sviluppo e metodologie di test. Pertanto le metodologie di test potrebbero anche fare riferimento a Waterfall, Agile e altri modelli di QA rispetto alla definizione di metodologie di test di cui sopra. La discussione sui vari tipi di test non aggiunge valore ai lettori. Discuteremo quindi i diversi modelli di sviluppo.
Modello a cascata
Che cos'รจ?
Nel modello a cascata, progresso dello sviluppo del software attraverso varie fasi come l'analisi dei requisiti, la progettazione ecc. sequenzialmente.
Qual รจ l'approccio al test?
La prima fase nel modello a cascata รจ la fase dei requisiti in cui tutti i requisiti del progetto sono completamente definiti prima di iniziare il test. Durante questa fase, il team di test fa un brainstorming sull'ambito del test, sulla strategia di test e redige un piano di test dettagliato.
Solo una volta completata la progettazione del software, il team passerร allโesecuzione dei test case per garantire che il software sviluppato si comporti come previsto.
In questa metodologia, il team di testing procede alla fase successiva solo quando la fase precedente รจ completata.
| Vantaggi | Svantaggi |
|---|---|
| Questo modello di ingegneria del software รจ molto semplice da pianificare e gestire. Pertanto, i progetti in cui i requisiti sono chiaramente definiti e dichiarati in anticipo possono essere facilmente testati utilizzando un modello a cascata. | Nel modello a cascata รจ possibile iniziare con la fase successiva solo una volta completata la fase precedente. Pertanto, questo modello non puรฒ accogliere eventi imprevisti e incertezze. |
| Questa metodologia non รจ adatta per progetti in cui i requisiti cambiano frequentemente. |
Sviluppo iterativo
Che cos'รจ?
In questo modello, un grande progetto viene diviso in piccole parti e ogni parte viene sottoposta a piรน iterazioni del modello a cascata. Alla fine di un'iterazione, viene sviluppato un nuovo modulo o ne viene potenziato uno esistente. Questo modulo viene integrato nell'architettura software e l'intero sistema viene testato tutto insieme
Qual รจ l'approccio al test?
Non appena l'iterazione รจ completata, l'intero sistema viene sottoposto a test. Il feedback dei test รจ immediatamente disponibile e viene incorporato nel ciclo successivo. Il tempo di test richiesto nelle iterazioni successive puรฒ essere ridotto in base all'esperienza acquisita dalle iterazioni precedenti.
| Vantaggi | Svantaggi |
|---|---|
| Il vantaggio principale dello sviluppo iterativo รจ che il feedback del test รจ immediatamente disponibile alla fine di ogni ciclo. | Questo modello aumenta significativamente le spese generali di comunicazione poichรฉ, alla fine di ogni ciclo, deve essere fornito un feedback sui risultati finali, sull'impegno, ecc. |
Metodologia agile
Che cos'รจ?
Le metodologie tradizionali di sviluppo software si basano sul presupposto che i requisiti software rimangano costanti per tutto il progetto. Ma con l'aumento della complessitร , i requisiti subiscono numerose modifiche e si evolvono continuamente. A volte, il cliente stesso non รจ sicuro di cosa vuole. Sebbene il modello iterativo affronti questo problema, si basa comunque sul modello a cascata.
Nella metodologia Agile, il software viene sviluppato in cicli incrementali e rapidi. Vengono enfatizzate le interazioni tra clienti, sviluppatori e clienti piuttosto che processi e strumenti. La metodologia agile si concentra sulla risposta al cambiamento piuttosto che su una pianificazione estensiva.
Qual รจ l'approccio al test?
Il test incrementale viene utilizzato nei metodi di sviluppo agili e, quindi, ogni versione del progetto viene testata accuratamente. Ciรฒ garantisce che eventuali bug nel sistema vengano corretti prima del rilascio successivo.
| Vantaggi | Svantaggi |
|---|---|
| ร possibile apportare modifiche al progetto in qualsiasi momento per conformarsi ai requisiti. | L'interazione costante con il cliente comporta una maggiore pressione in termini di tempo su tutte le parti interessate, compresi il cliente stesso, i team di sviluppo software e di test. |
| Questi test incrementali riducono al minimo i rischi. |
Programmazione estrema
Che cos'รจ?
La programmazione estrema รจ un tipo di metodologia agile che crede in cicli di sviluppo brevi. Un progetto รจ suddiviso in semplici attivitร di ingegneria. I programmatori codificano un semplice pezzo di software e rispondono al cliente per un feedback. RevI punti di vista del cliente vengono incorporati e gli sviluppatori procedono con l'attivitร successiva.
Nella programmazione estrema gli sviluppatori di solito lavorano in coppia.
Programmazione estrema viene utilizzato in luoghi in cui le esigenze dei clienti cambiano costantemente.
Qual รจ l'approccio al test?
La programmazione estrema segue uno sviluppo basato sui test descritto come segue:- Aggiungere un Test Case alla test suite per verificare le nuove funzionalitร ancora da sviluppare
- Esegui tutti i test e ovviamente il nuovo test case aggiunto deve fallire poichรฉ la funzionalitร non รจ ancora codificata
- Scrivi del codice per implementare la caratteristica/funzionalitร
- Esegui nuovamente la suite di test. Questa volta, il nuovo caso di test dovrebbe passare poichรฉ la funzionalitร รจ stata codificata
| Vantaggi | Svantaggi |
|---|---|
| I clienti che hanno in mente una vaga progettazione del software potrebbero utilizzare una programmazione estrema | Le riunioni tra il team di sviluppo software e i clienti aumentano i requisiti di tempo. |
| Test continui e integrazione continua di piccole versioni garantiscono che il codice software fornito sia di alta qualitร |
Quale metodologia software scegliere?
Sono disponibili tantissime metodologie per lo sviluppo del software e i relativi test. Ogni tecnica e metodologia di test รจ progettata per uno scopo specifico e ha i suoi relativi meriti e demeriti.
La selezione di una particolare metodologia dipende da molti fattori come la natura del progetto, i requisiti del cliente, la pianificazione del progetto, ecc.
Dal punto di vista del test, alcune metodologie spingono per testare l'input nelle prime fasi del ciclo di vita dello sviluppo, mentre altre aspettano finchรฉ non sia pronto un modello funzionante del sistema.
Come impostare le metodologie di test del software?
Le metodologie di test del software non dovrebbero essere impostate solo per il gusto di testare il codice del software. Dovrebbe essere considerato il quadro generale e lโobiettivo principale del progetto dovrebbe essere soddisfatto dalla metodologia di test. Fare riferimento a questo elenco di persone rispettabili fornitori di servizi di test del software che puรฒ aiutarti a stabilire strategie di test efficaci su misura per gli obiettivi del tuo progetto.
Programmazione
Una pianificazione realistica รจ la chiave per l'implementazione di una metodologia di test di successo e la pianificazione dovrebbe soddisfare le esigenze di ogni membro del team.
Risultati definiti
Per mantenere tutti i membri del team sulla stessa lunghezza dโonda, dovrebbero essere forniti risultati ben definiti. I risultati finali dovrebbero contenere contenuti diretti senza alcuna ambiguitร .
Approccio di prova
Una volta completata la pianificazione e resi disponibili i risultati finali definiti, il team di test dovrebbe essere in grado di formulare il giusto approccio al test. I documenti di definizione e le riunioni degli sviluppatori dovrebbero indicare al team il miglior approccio di test che puรฒ essere utilizzato per il progetto.
Reportistica
ร molto difficile ottenere un reporting trasparente, ma questo passaggio determina lโefficacia dellโapproccio di test utilizzato nel progetto.




