Cos'è il test dinamico? Tipi, tecniche ed esempi
Test dinamici
Test dinamici è un metodo di test del software utilizzato per testare il comportamento dinamico del codice software. Lo scopo principale del test dinamico è testare il comportamento del software con variabili dinamiche o variabili che non sono costanti e individuare aree deboli nell'ambiente di runtime del software. Il codice deve essere eseguito per testare il comportamento dinamico.
Sappiamo tutti che il test è verifica e validazione e sono necessarie 2 V per completare il test. Delle 2 V, la verifica è chiamata test statico e l'altra "V", la convalida, è nota come test dinamico.
Esempio di test dinamico
Capiamo come eseguire il Test Dinamico con un esempio:
Supponiamo di testare una pagina di accesso in cui abbiamo due campi che dicono "Nome utente" e "Password" e il nome utente è limitato ad alfanumerico.
Quando l'utente inserisce il nome utente come "Guru99", il sistema accetta lo stesso. Quando l'utente accede come Guru99@123, l'applicazione genera un messaggio di errore. Questo risultato mostra che il codice agisce dinamicamente in base all'input dell'utente.
Il test dinamico avviene quando si lavora con il sistema reale fornendo un input e confrontando il comportamento effettivo dell'applicazione con il comportamento previsto. In altre parole, lavorare con il sistema con l'intento di trovare errori.
Quindi, sulla base delle affermazioni di cui sopra possiamo dire o concludere che il test dinamico è un processo di convalida delle applicazioni software come utente finale in ambienti diversi per creare il software giusto.
Cosa fa il test dinamico?
Lo scopo principale dei test dinamici è garantire che il software funzioni correttamente durante e dopo l'installazione del software garantendo un'applicazione stabile senza grossi difetti (questa affermazione viene fatta perché nessun software è esente da errori, solo i test possono mostrare la presenza di difetti e non assenza)
Lo scopo principale del test dinamico è garantire la coerenza del software; parliamone con un esempio.
In un'applicazione bancaria, troviamo diverse schermate come Sezione I miei conti, Trasferimento fondi, Bill Paga, ecc. Tutte queste schermate contengono un campo importo che accetta alcuni caratteri.
Supponiamo che il campo I miei account visualizzi l'importo come 25,000 e trasferimento di fondi come $25,000 e Bill schermata di pagamento come $25000 sebbene l'importo sia lo stesso, il modo in cui viene visualizzato non è lo stesso, rendendo quindi il software non coerente.
La coerenza non è limitata solo alla funzionalità, ma si riferisce anche a diversi standard come prestazioni, usabilità, compatibilità, ecc., quindi diventa molto importante eseguire test dinamici.
Tipi di test dinamici
Il test dinamico è classificato in due categorie
- Bianco Box Collaudo
- Nero Box Collaudo
La rappresentazione pittorica seguente ci dà un'idea sui tipi di test dinamici, livelli di test, ecc.
Parliamo brevemente di ogni tipo di test e del suo scopo previsto
Bianco Box Collaudo - Bianco Box Collaudo è un metodo di test del software in cui la struttura/progettazione interna è nota al tester. Lo scopo principale di White Box il test consiste nel verificare le prestazioni del sistema in base al codice. Viene eseguito principalmente dagli sviluppatori o dal bianco Box Tester che hanno conoscenza della programmazione.
Nero Box Test - Nero Box Collaudo è un metodo di test in cui la struttura/codice/design interno è NON noto al tester. Lo scopo principale di questo test è verificare la funzionalità del sistema sotto test e questo tipo di test richiede l'esecuzione della suite di test completa ed è eseguito principalmente dai tester e non è necessaria alcuna conoscenza di programmazione.
Migliori Nero Box I test sono nuovamente classificati in due tipi.
Sono
- Test di funzionalità
- Test non funzionali
Test funzionale:
Il test funzionale viene eseguito per verificare che tutte le funzionalità sviluppate siano conformi alle specifiche funzionali, e viene eseguito eseguendo i casi di test funzionali scritti dal team QA, nella fase di test funzionale, il sistema viene testato fornendo input, verificando l'output e confrontando i risultati effettivi con quelli attesi.
Esistono diversi livelli di test funzionali, di cui i più importanti sono
- Test unitari – Generalmente Unit è un piccolo pezzo di codice che è testabile, Test unitari viene eseguito su una singola unità di software ed è eseguito dagli sviluppatori
- Test d'integrazione - Test d'integrazione è il test che viene eseguito dopo il test unitario e viene eseguito combinando tutte le singole unità che sono testabili e viene eseguito dagli sviluppatori o dai tester
- Test di sistema - Test di sistema è un'operazione eseguita per garantire che il sistema funzioni secondo i requisiti e generalmente viene eseguita quando il sistema completo è pronto, viene eseguita dai tester quando la build o il codice viene rilasciato al team QA
- Test di accettazione – Il test di accettazione viene eseguito per verificare se il sistema ha soddisfatto i requisiti aziendali ed è pronto per l'uso o per la distribuzione e viene generalmente eseguito dagli utenti finali.
Test non funzionali: Il test non funzionale è una tecnica di test che non si concentra sugli aspetti funzionali ma si concentra principalmente sugli attributi non funzionali del sistema come perdite di memoria, prestazioni o robustezza del sistema. I test non funzionali vengono eseguiti a tutti i livelli di test.
Esistono molte tecniche di test non funzionali, le più importanti sono
- Test di Performance - Test di Performance viene eseguito per verificare se il tempo di risposta del sistema è normale secondo i requisiti sotto il carico di rete desiderato.
- Test di recupero – Il test di ripristino è un metodo per verificare la capacità di un sistema di riprendersi da arresti anomali e guasti hardware.
- Test di compatibilità – Vengono eseguiti test di compatibilità per verificare il comportamento del sistema in ambienti diversi.
- Test di sicurezza - Test di sicurezza viene eseguito per verificare la robustezza dell'applicazione, ovvero per garantire che solo gli utenti/ruoli autorizzati accedano al sistema
- Test di usabilità - Test di usabilità è un metodo per verificare l'usabilità del sistema da parte degli utenti finali per verificare quanto gli utenti si sentano a proprio agio con il sistema.
Tecniche di test dinamici
Tecniche di test dinamici in STLC consiste in diversi compiti come l'analisi dei requisiti per i test, la pianificazione dei test, la progettazione e l'implementazione dei test case, la configurazione dell'ambiente di test, l'esecuzione dei test case, la segnalazione dei bug e infine la chiusura dei test. Tutte le attività nelle tecniche di test dinamico dipendono dal completamento dell'attività precedente nel processo di test.
In STLC possiamo dire che l'effettivo processo di test dinamico inizia dalla progettazione del caso di test. Analizziamo ogni attività in dettaglio.
Prima di addentrarci nel processo, discutiamo della strategia da seguire per il test dinamico.
La strategia di test dovrebbe concentrarsi principalmente sulle risorse disponibili e sui tempi. Sulla base di questi fattori, è necessario documentare l'obiettivo del test, l'ambito del test, le fasi o i cicli di test, il tipo di ambiente, le ipotesi o le sfide che potrebbero essere affrontate, i rischi, ecc.
Una volta che la strategia è definita e accettata dal management, inizia la progettazione vera e propria del test case del processo
Cos'è la progettazione e l'implementazione del test
In questa fase identifichiamo,
- Caratteristiche da testare
- Derivare le condizioni di prova
- Derivare gli elementi di copertura
- Derivare i casi di test
Configurazione dell'ambiente di prova
Dobbiamo assicurarci che l'ambiente di test sia sempre simile all'ambiente di produzione, in questa fase dobbiamo installare la build e gestire le macchine di test.
Esecuzione del test
Durante questa fase vengono effettivamente eseguiti i casi di test.
Segnalazione di bug catturata
In base all'esecuzione, se i risultati previsti e quelli effettivi non sono gli stessi, il caso di test deve essere contrassegnato come Fail e deve essere registrato un bug.
Vantaggi del test dinamico
- Il test dinamico può rivelare i difetti scoperti che sono considerati troppo difficili o complicati e che non possono essere coperti tramite l'analisi statica
- Nel test dinamico, eseguiamo il software, end-to-end, garantendo un software privo di errori che a sua volta aumenta la qualità di un prodotto e di un progetto.
- Il test dinamico diventa uno strumento essenziale per rilevare eventuali minacce alla sicurezza
Svantaggi del test dinamico
- Il test dinamico richiede molto tempo perché esegue l'applicazione/il software o il codice che richiede un'enorme quantità di risorse
- I test dinamici aumentano il costo del progetto/prodotto perché non iniziano nelle fasi iniziali del ciclo di vita del software e quindi eventuali problemi risolti in fasi successive possono comportare un aumento dei costi.
Conclusione
In Software Engineering, Verifica e Validazione sono due misure utilizzate per verificare che il prodotto software soddisfi le specifiche dei requisiti. Il test statico prevede la verifica mentre il test dinamico prevede la validazione. Insieme aiutano a fornire un software di qualità conveniente.


