Test del software - Panoramica
Cos'è il test?
Il test è il processo di valutazione di un sistema o dei suoi componenti con l'intento di scoprire se soddisfa o meno i requisiti specificati. In parole semplici, il test è l'esecuzione di un sistema al fine di identificare eventuali lacune, errori o requisiti mancanti in contrasto con i requisiti effettivi.
Secondo lo standard ANSI / IEEE 1059, il test può essere definito come: un processo di analisi di un elemento software per rilevare le differenze tra le condizioni esistenti e richieste (ovvero difetti / errori / bug) e per valutare le caratteristiche dell'elemento software.
Chi fa i test?
Dipende dal processo e dagli stakeholder associati al progetto (i). Nel settore IT, le grandi aziende hanno un team con la responsabilità di valutare il software sviluppato nel contesto dei requisiti dati. Inoltre, gli sviluppatori conducono anche test che si chiamanoUnit Testing. Nella maggior parte dei casi, i seguenti professionisti sono coinvolti nel test di un sistema nell'ambito delle rispettive capacità:
- Software Tester
- Sviluppatore di software
- Capo / responsabile del progetto
- Utente finale
Diverse aziende hanno designazioni diverse per le persone che testano il software sulla base della loro esperienza e conoscenza come Software Tester, Software Quality Assurance Engineer, QA Analyst, ecc.
Non è possibile testare il software in nessun momento durante il suo ciclo. Le due sezioni successive indicano quando iniziare il test e quando terminarlo durante l'SDLC.
Quando iniziare il test?
Un inizio precoce del test riduce i costi e il tempo necessari per rielaborare e produrre software privo di errori che viene consegnato al cliente. Tuttavia, in Software Development Life Cycle (SDLC), il test può essere avviato dalla fase di raccolta dei requisiti e continuato fino alla distribuzione del software.
Dipende anche dal modello di sviluppo utilizzato. Ad esempio, nel modello Waterfall, il test formale viene condotto nella fase di test; ma nel modello incrementale, il test viene eseguito alla fine di ogni incremento / iterazione e l'intera applicazione viene testata alla fine.
I test vengono eseguiti in diverse forme in ogni fase dell'SDLC:
Durante la fase di raccolta dei requisiti, anche l'analisi e la verifica dei requisiti sono considerate test.
Anche la revisione del progetto in fase di progettazione con l'intento di migliorarlo è considerata come prova.
Anche i test eseguiti da uno sviluppatore al completamento del codice sono classificati come test.
Quando interrompere il test?
È difficile determinare quando interrompere il test, poiché il test è un processo senza fine e nessuno può affermare che un software è testato al 100%. I seguenti aspetti devono essere considerati per interrompere il processo di test:
Scadenze dei test
Completamento dell'esecuzione del test case
Completamento della copertura funzionale e del codice fino a un certo punto
Il tasso di bug scende al di sotto di un certo livello e non vengono identificati bug ad alta priorità
Decisione di gestione
Verifica e convalida
Questi due termini creano molta confusione per la maggior parte delle persone, che li usano in modo intercambiabile. La tabella seguente evidenzia le differenze tra verifica e convalida.
Sr.No. | Verifica | Validazione |
---|---|---|
1 | La verifica risolve il problema: "Stai costruendo bene?" | La convalida affronta la preoccupazione: "Stai costruendo la cosa giusta?" |
2 | Assicura che il sistema software soddisfi tutte le funzionalità. | Assicura che le funzionalità soddisfino il comportamento previsto. |
3 | La verifica viene eseguita per prima e include il controllo della documentazione, del codice, ecc. | La convalida avviene dopo la verifica e prevede principalmente il controllo dell'intero prodotto. |
4 | Fatto dagli sviluppatori. | Fatto dai tester. |
5 | Ha attività statiche, poiché include la raccolta di revisioni, procedure dettagliate e ispezioni per verificare un software. | Ha attività dinamiche, poiché include l'esecuzione del software in base ai requisiti. |
6 | È un processo oggettivo e non dovrebbe essere necessaria alcuna decisione soggettiva per verificare un software. | È un processo soggettivo e implica decisioni soggettive su come funziona un software. |