Cos'รจ il test dinamico? Tipi, tecniche ed esempi
โก Riepilogo intelligente
Il test dinamico esegue l'applicazione e osserva come si comporta il codice in esecuzione con input reali, consentendo ai tester di convalidare funzionalitร , prestazioni e stabilitร che nessuna revisione della documentazione รจ in grado di rivelare.
Cos'รจ il test dinamico?
Test dinamici Il test dinamico รจ un metodo di test del software utilizzato per testare il comportamento dinamico del codice. Lo scopo principale del test dinamico รจ esaminare il comportamento del software con variabili dinamiche, ovvero variabili che non sono costanti, e individuare i punti deboli nell'ambiente di runtime del software. Il codice deve essere eseguito per poter testare il comportamento dinamico.
Il test รจ verifica e validazionePer completare i test sono necessarie entrambe le V. La verifica viene effettuata tramite test statici, che esaminano i requisiti, i documenti di progettazione e il codice senza eseguirli. La validazione viene effettuata tramite test dinamici, che eseguono la build e confrontano ciรฒ che l'applicazione effettivamente fa con ciรฒ che dovrebbe fare.
La tabella sottostante mette in evidenza le differenze tra i due a colpo d'occhio.
| Aspetto | Test statico (verifica) | Test dinamici (validazione) |
| Code eseguito | Nodo | Si |
| Attivitร tipiche | Revvisualizzazioni, sopralluoghi, ispezioni, analisi statica | Esecuzione dei casi di test su tutti i livelli di test |
| Domanda con risposta | Stiamo realizzando il prodotto nel modo giusto? | Stiamo realizzando il prodotto giusto? |
| Difetti trovati | Requisiti ambigui, violazioni degli standard di codifica, codice morto | Output errato, perdite di memoria, errori di temporizzazione, errori di integrazione |
| Avvia | Non appena esiste un artefatto | Una volta che esiste una build eseguibile |
| Costo relativo di una riparazione | Minori, perchรฉ i difetti vengono individuati prima | Piรน alto, perchรฉ i difetti emergono piรน tardi |
Esempio di test dinamico
Un breve esempio pratico mostra come si comportano i test dinamici nella pratica.
Supponiamo di dover testare una pagina di accesso. Questa pagina ha due campi, Nome utente e Password, e il campo Nome utente รจ limitato a caratteri alfanumerici.
Quando l'utente inserisce il nome utente come "Guru99โ, il sistema lo accetta. Quando l'utente inserisce โGuru99@123โ, lโapplicazione genera un messaggio di errore. Questo risultato dimostra che il codice agisce dinamicamente in base allโinput dellโutente.
Il test dinamico, quindi, significa lavorare con il sistema reale, fornire un input e confrontare il comportamento effettivo dell'applicazione con il comportamento previsto; in altre parole, lavorare con il sistema con l'intento di individuare gli errori.
Il test dinamico รจ quindi il processo di validazione di un'applicazione software come farebbe un utente finale, in diversi ambienti, al fine di realizzare il software corretto.
Cosa fa il test dinamico?
L'obiettivo principale dei test dinamici รจ garantire che il software funzioni correttamente durante e dopo l'installazione, offrendo un'applicazione stabile e priva di difetti importanti. Nessun software รจ completamente esente da errori e i test possono evidenziare la presenza di difetti, ma mai la loro assenza.
I test dinamici garantiscono inoltre la coerenza dell'intero software, come dimostra questo esempio.
In un'applicazione bancaria ci sono diverse schermate, come I miei conti, Trasferimento fondi e Bill Paga. Tutti contengono un campo per l'importo.
Supponiamo che il campo I miei account visualizzi l'importo come 25,000, Trasferimento fondi visualizzi $25,000 e il Bill Nella schermata di pagamento viene visualizzato $25000. L'importo รจ lo stesso, ma la modalitร di visualizzazione รจ diversa, il che rende il software incoerente.
La coerenza non si limita alla funzionalitร . Comprende anche standard quali prestazioni, usabilitร e compatibilitร , ed รจ per questo che i test dinamici sono cosรฌ importanti.
Tipi di test dinamici
I test dinamici si suddividono in due categorie.
- Bianco Box Collaudo
- Nero Box Collaudo
Il diagramma sottostante mette in relazione le due categorie con i livelli di test sottostanti.
Ciascuna tipologia e il suo scopo previsto sono descritti di seguito.
Bianco Box Collaudo โ un metodo di test del software in cui la struttura e la progettazione interne sono note al tester. Il suo scopo principale รจ verificare le prestazioni del sistema in base al codice. Viene eseguito principalmente dagli sviluppatori o da tester white box che possiedono conoscenze di programmazione.
Nero Box Collaudo โ un metodo di test in cui la struttura interna, il codice e la progettazione NON sono noti al tester. Il suo scopo principale รจ verificare la funzionalitร del sistema in fase di test. Questo tipo di test richiede l'esecuzione dell'intera suite di test, viene svolto principalmente dai tester e non richiede conoscenze di programmazione.
I test a scatola nera si classificano a loro volta in due tipologie.
- Test di funzionalitร
- Test non funzionali
Test di funzionalitร
Test funzionali viene eseguito per verificare che tutte le funzionalitร sviluppate corrispondano alle specifiche funzionali. Viene effettuato eseguendo il test funzionale casi test Scritto dal team di controllo qualitร . In questa fase il sistema viene testato fornendo input, verificando l'output e confrontando i risultati effettivi con i risultati attesi.
Esistono diversi livelli di test funzionali, tra i quali i piรน importanti sono i quattro elencati di seguito.
- Test unitari โ un'unitร รจ una piccola porzione di codice testabile. Il test unitario viene eseguito su una singola unitร software ed รจ effettuato dagli sviluppatori.
- Test d'integrazione โ Eseguito dopo i test unitari, combinando le singole unitร testabili. Viene eseguito dagli sviluppatori o dai tester.
- Test di sistema โ Eseguito per garantire che il sistema si comporti in conformitร ai requisiti. Viene generalmente eseguito dai tester quando il sistema completo รจ pronto, una volta che la build รจ stata rilasciata al team di QA.
- Test di accettazione โ Viene eseguita per verificare se il sistema soddisfa i requisiti aziendali ed รจ pronto per l'uso o la distribuzione. Generalmente viene eseguita dagli utenti finali.
Test non funzionali
Test non funzionali ร una tecnica di test che non si concentra sugli aspetti funzionali, bensรฌ sugli attributi non funzionali del sistema, come perdite di memoria, prestazioni o robustezza. I test non funzionali vengono eseguiti a tutti i livelli di test.
Esistono numerose tecniche di test non funzionali, tra cui le piรน importanti sono le cinque elencate di seguito.
- Test di Performance โ verifica se il tempo di risposta del sistema รจ normale, in base ai requisiti, con il carico di rete desiderato.
- Test di recupero โ verifica l'efficacia con cui un sistema si riprende da arresti anomali e guasti hardware.
- Test di compatibilitร โ verifica il comportamento del sistema in ambienti diversi.
- Test di sicurezza โ verifica la robustezza dell'applicazione, garantendo che solo gli utenti e i ruoli autorizzati possano accedere al sistema.
- Test di usabilitร โ verifica l'usabilitร del sistema da parte degli utenti finali e il grado di familiaritร che questi ultimi provano con esso.
Tecniche di test dinamici
Una volta definiti i tipi, la domanda successiva รจ come viene effettivamente eseguito un ciclo di test dinamico.
Tecniche di test dinamiche nel STLC Il processo di test dinamico comprende attivitร quali l'analisi dei requisiti per i test, la pianificazione dei test, la progettazione e l'implementazione dei casi di test, la configurazione dell'ambiente di test, l'esecuzione dei casi di test, la segnalazione dei bug e, infine, la chiusura dei test. Ogni attivitร nel test dinamico dipende dal completamento dell'attivitร precedente nel processo di test.
Nell'ambito del ciclo di vita dei test (STLC), il processo di test dinamico vero e proprio inizia con la progettazione dei casi di test. Il diagramma seguente mostra la sequenza delle attivitร , ciascuna delle quali รจ descritta di seguito.
Prima di avviare il processo, รจ necessario concordare la strategia da seguire per i test dinamici.
Una strategia di test dovrebbe concentrarsi principalmente sulle risorse disponibili e sulla tempistica. Sulla base di questi due 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 presentarsi e i rischi.
Una volta definita e approvata la strategia dal management, inizia il processo di progettazione dei casi di test.
Progettazione e implementazione dei test
In questa fase il team identifica quanto segue.
- Caratteristiche da testare
- Condizioni di prova derivate da tali caratteristiche
- Elementi di copertura derivati โโdalle condizioni di prova
- Casi di test derivati โโdagli elementi di copertura
Scatola nera tecniche di progettazione dei test come la partizione di equivalenza, l'analisi dei valori limite, test della tabella decisionale and test di transizione di stato sono ciรฒ che trasforma una condizione di test in un insieme concreto di casi eseguibili.
Configurazione dell'ambiente di prova
Migliori ambiente di test L'ambiente di test dovrebbe essere sempre simile a quello di produzione. In questa fase, la build viene installata e le macchine di test vengono gestite e configurate.
Esecuzione del test
Durante questa fase i casi di test vengono effettivamente eseguiti, manualmente o tramite automazionee i risultati effettivi vengono registrati confrontandoli con i risultati attesi.
Segnalazione di bug catturata
In base all'esecuzione, se i risultati attesi e quelli effettivi non sono gli stessi, il caso di test deve essere contrassegnato come fallito e deve essere registrato un bug nel gestione dei difetti
Vantaggi del test dinamico
- I test dinamici rivelano difetti considerati troppo difficili o complessi da individuare, e che l'analisi statica non รจ in grado di rilevare.
- Il software viene eseguito dall'inizio alla fine, il che innalza la qualitร sia del prodotto che del progetto.
- I test dinamici rappresentano un mezzo essenziale per rilevare le minacce alla sicurezza in un sistema in esecuzione.
- I difetti che si verificano solo in fase di esecuzione, come perdite di memoria, problemi di temporizzazione e errori di integrazione, emergono qui e in nessun altro luogo.
Svantaggi del test dinamico
- I test dinamici richiedono molto tempo, perchรฉ l'esecuzione dell'applicazione o del codice richiede una grande quantitร di risorse.
- Ciรฒ aumenta i costi del progetto, perchรฉ non viene affrontato nelle prime fasi del ciclo di vita del software e i problemi risolti nelle fasi successive risultano piรน costosi da correggere.
- Un ambiente simile a quello di produzione e dati di test realistici sono prerequisiti fondamentali, ed entrambi richiedono impegno per essere creati e mantenuti.


