Una breve guida al test del software - Standard e processi
Pubblicato: 2021-05-18"Tutto il codice è colpevole fino a quando non viene testato l'innocenza" - un fanatico della tecnologia sconosciuto.
Non puoi avere un buon software senza lasciarlo passare attraverso test rigorosi. In questo articolo imparerai di più sugli standard e sui processi di test del software che dovresti seguire per essere in grado di fornire risultati migliori.
Che cos'è il test del software?
In poche parole, il test del software migliora il software. È un processo che identifica la correttezza, la completezza e la qualità del software sviluppato. Il test è importante poiché scopre difetti/bug prima della consegna al cliente, che garantisce la qualità del software. Rende il software più affidabile da usare.

Fasi di test del software

Passiamo attraverso le fasi sopra elencate del test del software:
Analisi dei requisiti:
L'analisi dei requisiti definisce le aspettative degli utenti finali per un'applicazione software che deve essere costruita/modificata. Pertanto l'analisi dei requisiti significa analizzare, riportare, documentare, convalidare e gestire i requisiti software o di sistema.
L'ingegnere di prova deve eseguire le seguenti attività per completare l'analisi dei requisiti
- Leggi ogni requisito per verificarne la completezza, la chiarezza, l'ambiguità, se presenti.
- Verificare che tutti i possibili scenari siano stati considerati in una fase di analisi dei requisiti e provare a identificare tutti i casi scoperti o eventuali lacune.
- Discussione su domande o dubbi che emergono dall'analisi dei requisiti durante le chiamate quotidiane affinché il team sia sulla stessa pagina.
- La matrice di tracciabilità dei requisiti deve essere utilizzata per garantire la copertura completa dei requisiti del software in prova.
Di seguito è riportato il modello di esempio di RTM (matrice di tracciabilità dei requisiti)

Credito: Opencodez
Pianificazione del test:
Un piano di test è un documento che descrive gli obiettivi del test, la pianificazione, la stima, i risultati finali e le risorse necessarie per eseguire il test del software su un'applicazione software. Un piano di test aiuta a comprendere e determinare gli sforzi necessari per convalidare la qualità di un'applicazione in fase di test. Di seguito è riportato un esempio di piano di test agile:

Attestazione: zenq
Progettazione di prova:
La progettazione del test è una fase in cui vengono progettati i casi d'uso necessari per il test. La progettazione del test viene eseguita in base al piano di test. I casi di test progettati sono assicurati per coprire tutti i requisiti dell'applicazione software. Si ritiene inoltre necessaria la mappatura dei casi di test con la matrice di tracciabilità al fine di coprire tutte le lacune dei requisiti.
Scenari di test/casi di test progettati sulla base delle seguenti tecniche di progettazione dei test per garantire una copertura completa dei test su percorsi felici e test di scenari negativi.
- Analisi del valore limite (BVA)
- Partizionamento di equivalenza (EP)
- Test dei casi d'uso
- Test basati sull'impatto
Di seguito è riportato il modello di progettazione del test di esempio

Credito: https://www.softwaretestingclass.com/
Configurazione dell'ambiente di prova:
L'ambiente di test è una piattaforma creata per implementare ed eseguire i casi di test sull'applicazione software. L'ambiente per il test viene creato dall'integrazione dell'hardware e del software richiesti insieme alla configurazione di rete richiesta e alle impostazioni necessarie. Prima di iniziare qualsiasi test, è sempre importante eseguire un test del fumo sull'ambiente di test per verificare la fattibilità dell'ambiente di test.

Esecuzione della prova:
L'esecuzione del test è il processo di esecuzione dei casi di test progettati, documentano e confrontano i risultati previsti e quelli effettivi. I seguenti fattori sono considerati per l'esecuzione di un test considerando i rischi. Selezionare un sottoinsieme della suite di test da eseguire per questo ciclo e assegnarlo al rispettivo tester/analista della qualità.
- L'esecuzione del test viene eseguita in base ai casi di test/scenari di test progettati secondo il piano di test
- Osservazioni - Documentate sul rispettivo ticket JIRA come riscontrato durante l'esecuzione del test
- La documentazione della prova di prova sul rispettivo ticket JIRA è composta da quanto segue
◦ Stato del test: PASS / FAIL : mostra lo stato del test del ticket JIRA
◦ URL di prova: comprende i dati di prova utilizzati per testare il particolare requisito
◦ Scenari di prova e relative schermate
- Sanità e regressione - I test di integrità e regressione vengono eseguiti regolarmente sugli ambienti superiori (STG) a ogni fine dello sprint come parte delle misure di test Pre UAT
Chiusura di prova:
La checklist di chiusura dello sprint test assicura che le seguenti attività vengano eseguite alla fine di ogni sprint per una transizione graduale tra più sprint.
- Test funzionali completati secondo le tempistiche con copertura completa
- Tutte le osservazioni registrate e indirizzate dal team
- Osservazioni valide registrate come difetti e assegnate ai rispettivi proprietari del biglietto
- Documentazione di prova aggiornata per ogni ticket con i rispettivi test manuali e risultati dei test del dispositivo
- Test di regressione eseguito sull'ambiente di test prima che il codice venga unito agli ambienti superiori, ad es. in questo caso da Dev a STG
Test del dispositivo/test su browser incrociati:
Il test del dispositivo/cross browser è il processo mediante il quale un dispositivo/browser viene testato per verificarne la qualità per vedere se soddisfa i requisiti per i quali è stato sviluppato. Il test del dispositivo/cross browser è coperto dal seguente elenco di dispositivi/browser come confermato dal cliente. Stack del browser utilizzato come piattaforma per il test del dispositivo.

Diversi tipi di test del software
Test dell'unità:
Unit Testing controlla piccole unità di codice per fornire informazioni in anticipo per accelerare le strategie di test e ridurre i cicli di test indesiderati. Il test delle unità viene solitamente eseguito da uno sviluppatore prima che il codice venga consegnato al team di test del software.
Prova del fumo:
Il test del fumo è una procedura di test del software che determina se il software distribuito è stabile o meno. Il test del fumo è una conferma per il team di test di procedere con ulteriori test del software. Consiste in un set minimo di test da eseguire su ogni build per testare le funzionalità del software.
Test d'integrazione:
Per Test di Integrazione si intende un tipo di test effettuato in un ambiente integrato hardware e software al fine di verificare il comportamento del sistema. I componenti software/hardware vengono integrati e testati progressivamente fino a quando il sistema completato non è stato testato.
Test del sistema:
Test di sistema di un prodotto software completamente integrato. È il test finale per verificare che il prodotto consegnato soddisfi le specifiche dei requisiti menzionate nel documento dei requisiti. Entrambi i requisiti funzionali e non funzionali dovrebbero essere considerati nell'ambito.
Test di regressione:
La regressione verifica che le recenti modifiche al codice non alterino o distruggano la funzionalità già esistente. Il test di regressione include sia il sottoinsieme che la regressione completa, entrambi possono essere coperti con scenari di test manuali o automatici.
Test di accettazione dell'utente (UAT):
Il test di accettazione dell'utente è una delle fasi finali del ciclo di vita del test del software e viene eseguito dal cliente dopo che il software è stato accuratamente testato. L'UAT è condotto dagli utenti finali del prodotto per le approvazioni e le implementazioni del rilascio di produzione.
