Il test non funzionale si riferisce al test del software che viene eseguito per verificare gli aspetti non funzionali di un’applicazione software.
Esistono molti tipi diversi di test non funzionali e alcuni tipi di test del software possono essere considerati sia funzionali che non funzionali allo stesso tempo.
I test non funzionali sono necessari perchรฉ valutano criteri essenziali per l’utente, come le prestazioni e l’usabilitร , e verificano se il software funziona come previsto al di fuori delle sue funzionalitร di base.
In questo articolo esploriamo la definizione e le caratteristiche dei test non funzionali, i tipi di test non funzionali, gli approcci ai test non funzionali e gli strumenti di test che possono aiutare a ottimizzare e migliorare i processi di test non funzionali.
Che cos’รจ il test non funzionale?
Il test non funzionale รจ un tipo di test del software in cui vengono verificati gli aspetti non funzionali della creazione del software.
Esempi di test non funzionali sono i test progettati per valutare la capacitร , le prestazioni, l’usabilitร , il ripristino e la portabilitร .
La verifica della qualitร e dello stato di ciascuno di questi criteri non funzionali รจ importante quanto la verifica delle funzioni di un software, ma questi parametri non vengono testati nei test funzionali standard.
In sostanza, il test non funzionale significa verificare “come” funzionano le funzioni del software piuttosto che verificare “se” funzionano.
1. Quando sono necessari i test non funzionali?
I test non funzionali vengono eseguiti durante la fase di test del sistema del software, dopo che sono stati eseguiti i test di unitร e di integrazione.
Durante il collaudo del sistema, i collaudatori eseguono test funzionali e non funzionali, iniziando da quelli funzionali.
Una volta stabilito che il software funziona come previsto, i tester eseguono test non funzionali per valutare se soddisfa anche i parametri non funzionali.
Di solito รจ necessario eseguire i test funzionali prima di quelli non funzionali, perchรฉ รจ impossibile verificare l’affidabilitร o le prestazioni di funzioni che non funzionano affatto. Il test non funzionale รจ una delle ultime fasi del test del software prima del test di accettazione dell’utente e del rilascio finale del prodotto.
2. Quando non sono necessari i test non funzionali
ร sempre importante testare gli aspetti non funzionali del software, a meno che non siano giร stati testati e ritenuti adeguati.
Anche se avete giร effettuato test non funzionali sul software, potrebbe essere necessario testare nuovamente i parametri non funzionali, ad esempio se sono state aggiunte nuove funzionalitร al software o se sono state apportate modifiche al codice che potrebbero influire sulle prestazioni e sull’affidabilitร .
Gli obiettivi dei test non funzionali
Gli obiettivi dei test non funzionali sono verificare che il prodotto soddisfi le aspettative degli utenti e ottimizzare il prodotto prima del rilascio.
Puรฒ anche aiutare gli sviluppatori e i tester a comprendere meglio il software e a utilizzare queste conoscenze per le ottimizzazioni future.
1. Controllo qualitร
I test non funzionali mirano a verificare i fattori che influenzano l’usabilitร , l’affidabilitร , la manutenibilitร , la portabilitร e l’efficienza del prodotto.
Il test di questi elementi assicura che il prodotto rilasciato sul mercato sia di qualitร adeguata e soddisfi le aspettative degli utenti in termini di prestazioni, tempi di caricamento e capacitร dell’utente.
2. Gestione del rischio
I test non funzionali riducono anche il rischio e i costi associati al rilascio di un prodotto sul mercato, massimizzando le possibilitร che il team rilasci un prodotto soddisfacente.
Controllando i parametri non funzionali della build del software, รจ possibile ridurre i costi di rilascio del prodotto perchรฉ si riduce la necessitร di ulteriori sviluppi e modifiche del software in seguito.
3. Ottimizzazione
I test non funzionali aiutano i tester e gli sviluppatori a ottimizzare la creazione del software e le prestazioni durante l’installazione, la configurazione, l’esecuzione e l’utilizzo.
Potete anche utilizzare i test non funzionali per ottimizzare il modo in cui gestite e monitorate la creazione del software.
4. Raccolta dati
I test non funzionali consentono ai tester di raccogliere e produrre misure e metriche che possono essere utilizzate dai team di test per la ricerca e lo sviluppo interni.
Potete utilizzare i dati raccolti dai test non funzionali per capire come funziona il vostro prodotto e come ottimizzarlo in modo piรน efficace per gli utenti.
5. Miglioramento delle conoscenze
I test non funzionali migliorano e accrescono la conoscenza del team di test sul comportamento del prodotto e sulle tecnologie che utilizza.
Questo non solo aiuta i team di collaudo a comprendere meglio il software su cui stanno lavorando, ma puรฒ anche fornire conoscenze utili che aiutano i collaudatori a comprendere meglio le build future.
Chi รจ coinvolto nei test non funzionali?
I test non funzionali vengono solitamente eseguiti dai tester nell’ambiente QA, ma a volte gli sviluppatori possono eseguire test non funzionali durante lo sviluppo.
Il test del sistema รจ quasi sempre eseguito dai tester e questa รจ la fase del test in cui si svolge la maggior parte dei test non funzionali.
Se i test non funzionali falliscono, i tester rimandano il software agli sviluppatori per correggere gli errori di prestazione prima di eseguire nuovamente il test.
I vantaggi dei test non funzionali
L’esecuzione di test non funzionali presenta molti vantaggi e i test non funzionali sono una fase essenziale del test di sistema.
Senza i test non funzionali, i team di test non sarebbero in grado di verificare che il software soddisfi effettivamente i requisiti del cliente o che soddisfi i requisiti stabiliti nel piano di sviluppo del software.
1. Migliorare le prestazioni del software
I test non funzionali possono aiutare i tester e gli sviluppatori a migliorare le prestazioni complessive delle applicazioni software. I test non funzionali identificano le aree in cui le prestazioni del software sono carenti, ad esempio in termini di velocitร di caricamento o di capacitร di elaborazione, e spingono i team di software ad apportare modifiche per correggere questi difetti.
Questo assicura che i team di software rilascino il software al pubblico solo quando รจ pronto e quando le sue prestazioni sono sufficientemente buone.
2. Mantenere il software sicuro
I test non funzionali comprendono i test di sicurezza, che sono fondamentali per garantire che un software sia sicuro e protetto da minacce e attacchi esterni.
I test di sicurezza consentono ai tester e agli sviluppatori di verificare che il software protegga adeguatamente i dati riservati e abbia una sicurezza sufficiente per difendersi dagli attacchi informatici contemporanei.
3. Aumentare la facilitร d’uso del software
I test non funzionali sono il modo migliore per rendere il vostro software piรน facile da usare, in particolare eseguendo test di usabilitร che valutano quanto sia facile per gli utenti imparare a usare e far funzionare il vostro software.
La facilitร d’uso รจ molto importante perchรฉ determina il grado di soddisfazione degli utenti del vostro software e garantisce che gli utenti siano in grado di sfruttare appieno tutto ciรฒ che il vostro software offre.
4. Assicurarsi che il software soddisfi le esigenze degli utenti
Garantire che il software soddisfi le esigenze degli utenti dovrebbe essere una delle principali prioritร di tutti i team di sviluppo e collaudo del software. Oltre ad aspettarsi che il software sia funzionale, gli utenti si aspettano che il software funzioni bene, funzioni senza intoppi e protegga i dati riservati.
Il test non funzionale รจ uno degli unici modi per garantire che il software soddisfi questi requisiti.
Le sfide del test non funzionale
L’esecuzione di test non funzionali presenta alcuni svantaggi. Sebbene il test non funzionale sia essenziale durante la fase di test del sistema, il processo di test non funzionale puรฒ rappresentare una sfida per i team di software che non dispongono di risorse e strumenti adeguati.
1. La ripetizione
I test non funzionali nel collaudo del software devono essere eseguiti ogni volta che il software viene aggiornato dagli sviluppatori o ogni volta che il codice viene modificato. Ciรฒ significa che i test non funzionali possono essere molto ripetitivi, il che non solo richiede tempo ma stanca anche i tester.
I tester stanchi che svolgono compiti molto ripetitivi hanno anche maggiori probabilitร di distrarsi e di commettere errori.
2. Costo
Poichรฉ i test non funzionali sono cosรฌ ripetitivi, possono anche essere piuttosto costosi, soprattutto per i team di test che si affidano a test non funzionali manuali.
I team di software devono allocare tempo e budget per frequenti test non funzionali e gli sviluppatori di software dovranno pagare un extra per questi test aggiuntivi.
Cosa testiamo nei test non funzionali?
I test non funzionali possono essere utilizzati per verificare molti parametri non funzionali diversi, ognuno dei quali influisce sulla qualitร e sull’usabilitร del sistema. Ciascuno di questi parametri viene testato durante il collaudo del sistema in base ai criteri stabiliti nel piano di collaudo.
1. La sicurezza
Il test di sicurezza รจ un tipo di test non funzionale che misura il livello di protezione di un sistema contro le minacce e gli attacchi esterni. Queste includono violazioni deliberate della sicurezza, nonchรฉ fughe di dati e altre violazioni comuni.
I test di sicurezza sono una fase importante dei test non funzionali, perchรฉ forniscono agli utenti finali e ai clienti la certezza che i loro dati sono al sicuro.
2. Affidabilitร
I tester utilizzano i test non funzionali per valutare l’affidabilitร del software e per garantire che il software sia in grado di eseguire continuamente e senza errori le funzioni specificate.
Mentre il test funzionale assicura che il software svolga le sue funzioni chiave, solo il test non funzionale verifica effettivamente l’affidabilitร e la ripetibilitร di questi risultati.
3. Sopravvivenza
La sopravvivenza descrive il modo in cui un sistema software risponde in caso di mancato funzionamento e i test di sopravvivenza assicurano che, in caso di errori e guasti, il sistema sia in grado di riprendersi.
I test di sopravvivenza possono verificare se il software รจ in grado di salvare i dati per ridurne al minimo la perdita, ad esempio in caso di guasto improvviso.
4. Disponibilitร
La disponibilitร del software si riferisce al grado di dipendenza dell’utente dal sistema durante il suo funzionamento. Questo aspetto รจ chiamato anche stabilitร e viene verificato con i test di stabilitร .
Il test di stabilitร ha una certa somiglianza con il test di affidabilitร , in quanto verifica se il sistema รจ in grado di funzionare in modo costante secondo gli standard previsti.
5. Usabilitร
Il test di usabilitร รจ un altro importante tipo di test non funzionale nel test del software. Questo tipo di test valuta la capacitร dell’utente di apprendere, operare e utilizzare il sistema software seguendo le istruzioni fornite sullo schermo e altre guide di base.
I test di usabilitร sono importanti perchรฉ se il software non รจ altamente usabile, la maggior parte degli utenti lo abbandonerร o sceglierร di usare qualcos’altro.
6. Scalabilitร
I test di scalabilitร verificano fino a che punto un’applicazione software puรฒ espandere la propria capacitร di elaborazione per soddisfare una domanda crescente.
Ad esempio, se il software รจ stato progettato per essere utilizzato da piรน utenti contemporaneamente su una singola rete, come funziona quando dieci utenti si collegano contemporaneamente? Un numero maggiore di utenti influisce in modo significativo sulle prestazioni o sui tempi di caricamento?
7. Interoperabilitร
Il test di interoperabilitร รจ un tipo di test non funzionale che verifica la capacitร di un sistema software di interfacciarsi con altri sistemi software.
Ciรฒ รจ particolarmente importante quando il software รจ progettato come parte di una suite di prodotti che si integrano tra loro.
8. Efficienza
L’efficienza nel test del software si riferisce alla misura in cui un sistema software รจ in grado di gestire capacitร , quantitร e tempi di risposta.
Ad esempio, i tester possono valutare il numero di utenti che possono accedere al sistema contemporaneamente, il tempo necessario per recuperare i dati dal database o la velocitร con cui il software รจ in grado di eseguire le operazioni di base.
9. Flessibilitร
La flessibilitร misura il grado di funzionamento di un sistema software con diversi tipi di hardware e periferiche.
Ad esempio, la quantitร di RAM richiesta dal software o la necessitร di una particolare quantitร di CPU. Quanto piรน bassi sono i requisiti dell’applicazione software, tanto piรน flessibile รจ il software.
10. Portabilitร
I test di portabilitร servono a verificare la flessibilitร e la facilitร con cui il software puรฒ essere trasferito dall’attuale ambiente hardware o software.
La portabilitร รจ importante perchรฉ influisce sulla facilitร con cui gli utenti finali possono gestire il software e spostarlo tra diversi sistemi.
11. Riutilizzabilitร
Il test di riusabilitร รจ un tipo di test non funzionale che verifica se parti del sistema software possono essere convertite per essere riutilizzate in un’altra applicazione.
Sebbene i test di riusabilitร non riguardino solitamente i clienti e gli utenti finali, sono un buon riflesso dell’efficacia con cui gli sviluppatori creano componenti che possono essere riutilizzati in futuro.
Le caratteristiche dei test non funzionali
Per capire cosa sono i test non funzionali รจ necessario comprendere le caratteristiche dei test non funzionali. Queste caratteristiche definiscono il test non funzionale nel test del software.
1. Misurabile
I test non funzionali sono sempre quantitativi e misurabili, il che significa che i tester non usano frasi soggettive come “bello” o “buono”, bensรฌ numeri e fatti per descrivere i risultati dei test non funzionali.
Ad esempio, piuttosto che descrivere i tempi di caricamento come “veloci” o “lenti”, i test non funzionali dovrebbero produrre cifre specifiche che mostrino il numero di volte.
2. Specifico
Quando si eseguono test non funzionali, lo scopo dei test deve essere specifico per le specifiche di progettazione del software.
Ad esempio, se il piano del progetto software fa riferimento al numero di utenti che devono essere in grado di accedere contemporaneamente, questo dovrebbe essere prioritario durante il test non funzionale.
3. Sconosciuto
Sebbene i test non funzionali possano essere progettati specificamente per misurare gli attributi definiti nei piani di progetto, in molti casi questi attributi non saranno specificati in anticipo.
In questo caso, i tester dovrebbero limitarsi a eseguire test non funzionali per valutare il software in base a ciascun parametro e successivamente confrontarlo con le aspettative.
Il ciclo di vita dei test non funzionali
Poichรฉ il test non funzionale non si riferisce a una fase specifica del ciclo di vita del test del software, ma semplicemente a un tipo di test che di solito si svolge durante la fase di test del sistema, il ciclo di vita del test non funzionale puรฒ variare molto da un progetto all’altro.
In generale, segue un ciclo di vita simile a quello di altri tipi di test del software, che inizia con l’analisi dei requisiti del progetto e termina con l’esecuzione dei test e il completamento del ciclo.
1. Analisi dei requisiti del software
La prima fase del ciclo di vita del test non funzionale รจ l’analisi dei requisiti del software. I team di software lavorano su criteri specifici quando costruiscono e testano le applicazioni, e questi criteri dovrebbero dettare il tipo di test da eseguire.
2. Pianificazione del test
La fase successiva del ciclo di vita รจ la pianificazione dei test. Durante la fase di pianificazione dei test, il responsabile dell’AQ metterร a punto un piano di test dettagliato che descriva cosa verrร testato, chi eseguirร i test e quali approcci, metodi e strumenti di test verranno utilizzati.
Il piano di test deve includere tutti i dettagli necessari ai tester per creare ed eseguire i casi di test.
3. Creazione di casi di test
La creazione dei casi di test รจ la fase successiva del test non funzionale. Questa fase prevede lo sviluppo di casi di test non funzionali che i tester eseguiranno in una fase successiva per verificare i requisiti non funzionali del sistema.
I casi di test descrivono cosa verrร testato, come verrร testato e qual รจ il risultato atteso del test.
4. Impostazione dell’ambiente di prova
La fase successiva del ciclo di vita del test non funzionale consiste nell’allestimento dell’ambiente di prova prima dell’inizio del test.
L’ambiente di test รจ il luogo in cui si svolgono tutti i test ed รจ la sede delle risorse e degli strumenti che utilizzerete per eseguire i test non funzionali.
Il team di collaudo prepara l’ambiente di prova prima dell’esecuzione del test.
5. Esecuzione del test
L’esecuzione del test รจ la fase successiva del ciclo di vita del test non funzionale. Si tratta di eseguire i casi di test creati in precedenza per verificare diversi aspetti delle applicazioni software, tra cui sicurezza, tempi di caricamento, capacitร e portabilitร .
Il team di test esegue ogni caso individualmente e verifica il risultato di ogni test rispetto al risultato atteso.
6. Ripetizione del ciclo
La fase finale del ciclo di vita del test non funzionale รจ il completamento e la ripetizione del ciclo. Dopo aver eseguito tutti i casi di test, i tester verificano quali test sono stati superati e quali no.
I test che falliscono di solito indicano che c’รจ un difetto che deve essere risolto dagli sviluppatori. Una volta che gli sviluppatori hanno corretto o modificato il codice, il ciclo di test del software si ripete nuovamente fino a quando non vengono riscontrati difetti.
Per chiarire un po’ di confusione:
Test non funzionali e test funzionali
I test funzionali e i test non funzionali sono due tipi di test del software diversi ma ugualmente importanti che, insieme, servono a valutare se un’applicazione software soddisfa i requisiti degli utenti, come indicato nel brief del progetto.
Sebbene siano entrambi tipi di test necessari per consentire ai team di software di identificare i difetti all’interno delle build del software, i test funzionali e non funzionali sono completamente distinti l’uno dall’altro.
1. Qual รจ la differenza tra test funzionali e non funzionali?
La differenza tra test funzionali e non funzionali sta nel tipo di test. Il test funzionale verifica le funzioni dell’applicazione e controlla che funzionino come previsto. I test non funzionali verificano altri aspetti dell’applicazione che influiscono sulla soddisfazione dell’utente e sulla qualitร dell’applicazione.
I test funzionali e non funzionali si svolgono in fasi diverse del test del software, ma entrambi i tipi di test vengono solitamente eseguiti durante la fase di test del sistema.
Sia i test funzionali che quelli non funzionali possono aiutarci a capire come funziona un’applicazione e se svolge adeguatamente il suo lavoro.
Ad esempio, se state testando un’applicazione mobile che consente agli utenti di salvare elenchi di cose da fare e liste della spesa, il test funzionale puรฒ verificare funzioni come la creazione di un nuovo elenco, il salvataggio di un elenco e la modifica di elenchi esistenti.
I test non funzionali possono valutare il funzionamento dell’applicazione su diversi dispositivi mobili, la velocitร di caricamento degli elenchi e l’impatto delle prestazioni dell’applicazione quando altre applicazioni sono in esecuzione in background.
2. Conclusione: test non funzionali e test funzionali
Sia i test funzionali che quelli non funzionali sono tipi importanti di test del software che possono aiutare i tester e i team QA a valutare se un’applicazione soddisfa i requisiti attuali.
Mentre i test funzionali verificano le funzioni del software, i test non funzionali verificano altri aspetti che possono influire sulle prestazioni, sull’efficienza e sulla sicurezza.
I test unitari, i test di integrazione e i test API sono tutte forme di test funzionali. In ognuna di queste fasi del test del software, i tester valutano il funzionamento delle funzioni e delle caratteristiche, sia singolarmente che insieme, e identificano i bug e i difetti che impediscono alle funzioni di funzionare come previsto.
I test di sicurezza, i test di usabilitร , i test di portabilitร e i test di carico sono tutte forme di test non funzionali che consentono ai tester di valutare in che misura un’applicazione svolge le sue funzioni e supporta le esigenze degli utenti.
Tipi di test non funzionali
Esistono diversi tipi di test non funzionali, ognuno dei quali verifica un diverso aspetto non funzionale delle prestazioni o dell’efficienza di un’applicazione software.
Ognuno di questi tipi di test verifica parametri diversi e alcuni test possono verificare gli stessi parametri in modi diversi.
1. Test di prestazione
I test sulle prestazioni sono un tipo di test non funzionale che verifica il funzionamento dei diversi componenti del software. Piuttosto che testare la loro funzionalitร , che รจ ciรฒ che fa il test funzionale, i test delle prestazioni possono verificare i tempi di risposta, i colli di bottiglia e i punti di guasto. I test sulle prestazioni aiutano i tester a garantire che il software sia di alta qualitร e che sia veloce, stabile e affidabile.
2. Test di stress
Lo stress test รจ un tipo di test non funzionale che verifica le prestazioni del software quando viene sottoposto a sollecitazioni anomale. Ciรฒ potrebbe significare testare le prestazioni del software quando si cerca di utilizzare molte funzioni diverse contemporaneamente, o quando si eseguono molte altre applicazioni allo stesso tempo.
Lo stress test cerca di identificare il limite in cui il software smette di funzionare correttamente e cosa succede quando il sistema รจ sotto stress. Permette ai tester di capire se il sistema รจ in grado di ripristinarsi da solo e se avvisa gli utenti con un’adeguata messaggistica di errore.
3. Prove di carico
Il test di carico รจ un tipo di test che valuta il comportamento del software sia in condizioni normali che in presenza di carichi piรน elevati. Viene utilizzato per determinare la quantitร di dati che il software puรฒ gestire contemporaneamente senza che le prestazioni ne risentano negativamente.
I test di carico possono essere utilizzati per verificare il funzionamento delle applicazioni quando molti utenti le utilizzano contemporaneamente o quando gli utenti cercano di scaricare molti dati nello stesso momento.
I test di carico sono importanti se si vuole verificare se il software รจ scalabile.
4. Test di sicurezza
I test di sicurezza valutano le applicazioni software e cercano le vulnerabilitร nella sicurezza del software. Tra questi, i potenziali rischi per la sicurezza che potrebbero comportare la perdita di dati o violazioni che espongono dati riservati.
I test di sicurezza sono importanti perchรฉ garantiscono che il prodotto sia adeguatamente protetto da hacking, violazioni dei dati e altre minacce esterne alla sicurezza.
Alcuni esempi di test di sicurezza che i tester possono eseguire includono audit di sicurezza, hacking etico, test di penetrazione, scansioni di sicurezza e valutazioni della postura.
5. Test di aggiornamento e installazione
Il test di aggiornamento e installazione รจ un tipo di test non funzionale del software che verifica il funzionamento del software su macchine diverse.
Lo scopo di questo tipo di test รจ quello di assicurarsi che i nuovi utenti possano installare facilmente il software sulle loro macchine e che gli utenti esistenti possano aggiornarlo quando vengono rilasciati nuovi aggiornamenti.
I test di aggiornamento e di installazione sono importanti perchรฉ gli utenti finali devono essere in grado di installare facilmente il vostro prodotto, a patto che lavorino con una macchina compatibile con esso.
6. Test di volume
Il test dei volumi รจ un tipo di test che esiste per verificare cosa succede quando grandi volumi di dati vengono aggiunti al database in una sola volta. Questo identifica se l’applicazione รจ in grado di gestire grandi volumi di dati e cosa succede al sistema in caso contrario.
Il test dei volumi รจ noto anche come flood test e puรฒ essere utilizzato per valutare la perdita di dati e i messaggi di errore che si verificano quando si aggiungono quantitร significative di dati al sistema.
I test sui volumi sono l’unico modo per garantire che il software sia in grado di gestire i volumi di dati che gli utenti si aspettano.
7. Test di recupero
I test di recupero consistono nel forzare il sistema software a fallire per verificare la capacitร del sistema di riprendersi dopo un arresto anomalo.
I test di recupero possono aiutare i tester a capire come il software recupera i dati e previene le perdite se l’hardware viene scollegato durante l’uso, se il software viene disconnesso dalla rete durante un trasferimento di dati o se il sistema viene riavviato inaspettatamente.
Questo tipo di test รจ importante perchรฉ i sistemi privi di protocolli di ripristino adeguati potrebbero subire gravi perdite di dati in caso di incidenti come questo.
Cosa vi serve per iniziare i test non funzionali
Prima di iniziare i test non funzionali, dovrete assicurarvi di aver preparato l’ambiente di test e di aver raccolto gli strumenti e i dati necessari.
1. Piano di prova
Prima di iniziare i test non funzionali, assicuratevi di avere un piano di test finito e firmato dalle persone competenti.
Il piano di test deve includere tutti i dettagli relativi a ciรฒ che si intende testare e come. Dovrebbe spiegare quando si ricorre ai test manuali e quando si ricorre ai test automatici, oltre a delineare i ruoli e le responsabilitร di tutti coloro che partecipano al processo di test.
2. Casi di test
Prima di poter eseguire i test non funzionali, รจ necessario creare i casi di test. Ogni caso di test delinea un elemento specifico che si intende testare, spiega come lo si verifica e descrive il risultato atteso del test.
Ad esempio, se si sta eseguendo un test di carico, un caso di test puรฒ essere quello di verificare il comportamento del software quando dieci utenti utilizzano lo stesso modulo nello stesso momento.
3. Verifica funzionale
Non รจ possibile eseguire test non funzionali sui componenti del software se questi non sono funzionali.
Ad esempio, se si vuole testare il numero di utenti che il software รจ in grado di gestire contemporaneamente, รจ importante innanzitutto verificare che i singoli utenti possano effettivamente accedere al software.
Prima di iniziare i test non funzionali, assicuratevi che tutti i test funzionali siano stati superati e che il software funzioni come previsto.
Di solito ciรฒ significa che sono giร stati eseguiti gli smoke test, i sanity test, gli unit test, l’integrazione e i test funzionali del sistema.
4. Strumenti di test
Prima di iniziare i test non funzionali, riunite tutti gli strumenti di test che volete utilizzare per condurre i vostri test.
Sia che si utilizzino strumenti di automazione per automatizzare alcuni test o strumenti di documentazione che aiutino a gestire e archiviare i rapporti di prova per un uso successivo, assicuratevi che gli strumenti che volete usare siano disponibili e pronti all’uso e che tutti i membri del team di collaudo sappiano come usare correttamente ogni strumento.
5. Ambiente di prova
Configurare l’ambiente di test prima di iniziare i test non funzionali. Potreste giร disporre di un ambiente di test adeguato, soprattutto se potete utilizzare lo stesso ambiente per i test non funzionali e funzionali del sistema.
L’ambiente di test ideale consente di verificare ogni elemento necessario sui dispositivi corretti.
Ad esempio, se si sta testando la gestione del volume sui dispositivi smartphone, รจ meglio farlo su un dispositivo smartphone vero e proprio piuttosto che cercare di emulare un ambiente mobile su un computer desktop.
Il processo di test non funzionale
Il test degli aspetti non funzionali di un software รจ un processo in piรน fasi che prevede la preparazione dell’ambiente di test, la creazione di casi di test, la raccolta di dati di test e l’esecuzione di test non funzionali.
ร possibile suddividere il processo di test in piccole parti per renderlo piรน facile da seguire per i principianti del test non funzionale.
1. Controlli di preparazione al test non funzionale
Prima di iniziare i test non funzionali, รจ importante verificare che siate pronti per questa fase di test.
Ciรฒ puรฒ significare valutare i criteri di uscita per l’ultima fase di test per assicurarsi che il software l’abbia superata e assicurarsi che il software abbia superato tutti i test funzionali richiesti prima di effettuare i test non funzionali.
Alcuni team possono creare criteri di ingresso per i test non funzionali, che comprendono tutte le condizioni che devono essere soddisfatte prima dell’inizio dei test non funzionali.
2. Creare un piano di test
ร possibile che abbiate giร eseguito questo passaggio se state eseguendo i test non funzionali come parte del test del sistema e se state seguendo il vostro piano di test del sistema. Un piano di test delinea tutti i test da eseguire e le modalitร con cui si intende eseguirli.
Senza un piano di test chiaro, รจ facile perdere di vista l’ambito e gli obiettivi dei test che si stanno eseguendo.
3. Creare casi di test
La fase successiva del test non funzionale consiste nella creazione di casi di test progettati per verificare ogni parametro non funzionale del software.
Ogni caso di test deve avere un ID del caso di test, un nome del caso di test, una descrizione e dettagli sull’esito atteso del test, oltre a qualsiasi criterio di superamento o fallimento determinato in anticipo. Questo aiuta i tester a capire come eseguire ogni test e quali risultati cercare.
4. Raccolta dei dati di prova
Prima di eseguire ogni caso di test, รจ necessario raccogliere i dati di test che verranno utilizzati per ogni caso di test.
Ciรฒ significa solitamente raccogliere codice e dati da diversi moduli e componenti che compongono le funzioni e le aree che si intende testare. Se si vuole massimizzare la copertura dei test, si devono avere molti dati di test su cui lavorare.
5. Preparare l’ambiente di prova
La fase successiva del test non funzionale รจ la preparazione dell’ambiente di test. L’ambiente di test รจ un server di test che verrร utilizzato per condurre test software di diversi tipi.
Permette di creare condizioni identiche in cui testare il software e di impostare il software con diverse configurazioni per i test di configurazione, i test di sicurezza e altri tipi di test non funzionali.
6. Esecuzione di test non funzionali
Una volta che l’ambiente di test รจ pronto, รจ il momento di eseguire i test non funzionali. Si puรฒ decidere di eseguire i test in ordine di tipologia, ad esempio iniziando con i test delle prestazioni prima di passare ai test di sicurezza e ad altri tipi di test non funzionali.
Durante l’esecuzione di ciascun test, annotate i risultati nel vostro rapporto di prova. Se state automatizzando i test, il vostro strumento di automazione avrร anche un modo standardizzato per riportare i risultati in modo chiaro e inequivocabile.
7. Riportare i risultati dei test
Dopo aver eseguito ogni caso di test, compilate i risultati dei test non funzionali in un unico rapporto.
Il rapporto deve essere chiaro sui risultati di ogni test e non ambiguo sul superamento o meno di ogni test.
Seguite una struttura standardizzata per il vostro rapporto di prova per assicurarvi di includere tutte le informazioni che dovrete trasmettere.
8. Correggere i difetti
Una volta ottenuti i risultati dei test, riconsegnate il software agli sviluppatori se i test non sono andati a buon fine o se avete identificato bug non funzionali da correggere.
Ad esempio, se il software non รจ in grado di gestire un numero adeguato di utenti contemporaneamente o se le prestazioni rallentano troppo quando vengono eseguiti piรน programmi contemporaneamente, รจ probabile che questi problemi debbano essere risolti all’interno del codice per garantire che gli utenti siano soddisfatti del prodotto.
9. Ripetere il ciclo di test
Una volta che gli sviluppatori hanno riparato i difetti riscontrati nella fase iniziale di test non funzionale, il ciclo di test puรฒ ricominciare.
Gli sviluppatori testano le modifiche apportate e passano la nuova build ai tester QA, che eseguono l’intera suite di test, a partire da smoke test, unit test, integration test e infine system test.
Il ciclo di test viene ripetuto fino a quando non si verificano bug o difetti in nessun punto, dopodichรฉ la build puรฒ entrare nella fase finale del test: il test di accettazione dell’utente.
Casi di prova per il test non funzionale
I casi di test sono un aspetto importante di tutti i test del software e, quando si eseguono test funzionali e non funzionali, si utilizzano i casi di test per definire ciรฒ che si intende testare e come si intende farlo.
Ogni caso di test puรฒ essere visto come un mini-test e ogni caso di test avrร i propri output e risultati definiti.
1. Cosa sono i casi di test per i test non funzionali?
Un caso di test รจ un insieme di azioni eseguite su una build di software per verificare se soddisfa le condizioni definite nel piano del software. Ogni caso di test indica effettivamente ai tester cosa testare e come, ed รจ progettato per testare una funzione specifica o una caratteristica non funzionale dell’applicazione software.
I casi di test non funzionali possono includere la verifica di ciรฒ che accade quando qualcuno cerca di accedere a dati protetti all’interno del sistema o la verifica della velocitร di caricamento del software all’avvio.
2. Come si progettano i casi di test non funzionali?
Quando si progettano i casi di test per i test non funzionali, รจ importante seguire le pratiche standard per i casi di test, tenendo a mente gli obiettivi dei test non funzionali.
Seguite i passi seguenti per scrivere i casi di test per i test non funzionali che delineano chiaramente ciรฒ che i vostri tester devono fare per eseguire ciascun test.
1. Definire l’area che si desidera coprire
Per ogni caso di test, considerate quale area del vostro software sarร oggetto del caso di test.
Ad esempio, se state scrivendo i casi di test per l’installazione e l’aggiornamento, potreste includere casi di test che valutano la facilitร di installazione dell’applicazione su diversi dispositivi e il tempo necessario per aggiornare il software utilizzando una nuova patch.
2. Creare un ID univoco per il caso di test
Ogni caso di test deve avere un ID univoco. In questo modo รจ facile trovare la descrizione del caso di test e i risultati in un secondo momento e si elimina ogni confusione su quale sia il caso di test a cui ci si riferisce se due casi di test hanno nomi o descrizioni simili.
3. Nome e descrizione di ogni test
Mentre l’ID del caso di test identifica il test, รจ necessario fornire anche un nome e una descrizione per ogni caso di test scritto.
Dovrebbe essere un nome semplice che riassume ciรฒ che si sta testando, mentre la descrizione รจ una singola frase che elabora questo aspetto in modo leggermente piรน dettagliato.
La descrizione deve essere sufficientemente chiara da permettere ai tester di sapere cosa testare e come farlo, oltre a tutte le condizioni particolari che devono essere soddisfatte nel test.
4. Specificare il risultato atteso
Per ogni caso di test, delineare il risultato che dovrebbe verificarsi se il software funziona come previsto.
Nei test non funzionali, come i test di prestazione e i test di carico, questo puรฒ significare in molti casi che il software continua a funzionare normalmente senza rallentamenti, rallentamenti o crash.
In altri casi, puรฒ significare che vengono visualizzati particolari messaggi di errore per notificare all’utente il problema e raccomandare una soluzione.
5. Raccomandare le tecniche di test
Per ogni caso di test, consigliate il tipo di tecniche di test e gli strumenti di test non funzionali che pensate il tester debba utilizzare durante il test.
Nei test non funzionali, i tester possono utilizzare approcci molto diversi per i vari tipi di test.
Ad esempio, i test di carico e gli stress test possono richiedere l’automazione perchรฉ non รจ pratico simulare manualmente un traffico estremamente intenso, mentre altri tipi di test possono essere piรน facili da eseguire senza strumenti o tecnologie specifiche.
6. Revisione tra pari di ogni caso di test
Prima di firmare ogni caso di test, fate in modo che ogni caso sia sottoposto a una revisione paritaria da parte di qualcuno con cui lavorate. Puรฒ trattarsi di un altro tester o di un responsabile QA.
La revisione tra pari dei casi di test assicura che siano abbastanza chiari da poter essere seguiti da un tester di terze parti e che non includano ambiguitร o errori che potrebbero portare a test impropri.
3. Esempi di casi di test non funzionali
Se state scrivendo i casi di test per i test non funzionali, potrebbero assomigliare agli esempi di test non funzionali riportati di seguito.
Esempio di test di scalabilitร
ID caso di test: 6671
Nome del caso di test: Test di accesso per piรน utenti
Descrizione: Emulazione di oltre 20 utenti che accedono al software contemporaneamente utilizzando strumenti di automazione.
Risultati attesi: Il software dovrebbe funzionare normalmente per ogni utente, consentendogli di accedere con successo in meno di 5 secondi.
Esempio di test di compatibilitร
ID caso di test: 5214
Nome del caso di test: caricamento dell’applicazione nel browser Opera
Descrizione: Carica l’applicazione nel browser web Opera.
Risultati attesi: L’applicazione si carica normalmente nel browser web Opera con risoluzione e layout di visualizzazione standard.
Test non funzionali manuali o automatizzati?
Al momento di scegliere tra le diverse tecniche di test non funzionali, dovrete decidere se eseguire test non funzionali manuali o automatizzati.
I test manuali sono eseguiti da tester umani, il che significa che di solito richiedono piรน tempo per essere eseguiti, ma offrono anche opportunitร di test esplorativi.
I test non funzionali automatizzati sono piรน rapidi e, per certi versi, piรน affidabili, ma richiedono anche piรน risorse o strumenti. L’automazione e l’iperautomazione stanno diventando sempre piรน popolari nei test, soprattutto quando si tratta di test non funzionali.
Test non funzionali manuali: Vantaggi, sfide e processi
I test manuali non funzionali vengono eseguiti esclusivamente dai tester, che verificano ogni singolo elemento non funzionale in modo indipendente.
Quando si eseguono test non funzionali manuali, i tester devono raccogliere informazioni sul software, creare singoli casi di test che corrispondono al piano di test ed eseguirli manualmente.
Questo richiede molto tempo, ma significa anche che i tester QA hanno la libertร di determinare cosa viene testato e come.
1. Alcuni dei vantaggi del test manuale sono:
I test manuali possono essere piรน economici di quelli automatizzati perchรฉ non richiedono tecnologie o conoscenze tecniche specifiche.
Il test manuale consente ai tester di offrire una visione umana e soggettiva del funzionamento del software e di verificare se funziona in modo soddisfacente.
Il test manuale puรฒ essere utilizzato per eseguire test di sistema in scenari in cui รจ impossibile automatizzare.
I test manuali consentono ai tester di valutare gli aspetti visivi del sistema, come l’interfaccia grafica e altri fattori che possono influire sull’usabilitร .
Il test manuale offre ai tester una prospettiva piรน ampia del sistema nel suo complesso e del funzionamento dei diversi moduli e componenti.
Tuttavia, i test manuali presentano anche degli svantaggi.
2. Alcune delle sfide del test manuale includono:
Alcuni tipi di test non funzionali, tra cui il test di carico e il test delle prestazioni, sono poco pratici da eseguire manualmente.
I test manuali richiedono molto piรน tempo dei test non funzionali automatizzati.
I tester manuali possono distrarsi, perdere la concentrazione e commettere errori, soprattutto quando svolgono attivitร di test molto ripetitive.
Test non funzionali automatizzati: Vantaggi, sfide e processi
I test non funzionali automatizzati vengono eseguiti mediante script e strumenti di test automatizzati. Quando si utilizzano metodi di test automatizzati, i tester possono condurre i test in background mentre si occupano di altre attivitร , una volta che i test automatizzati sono stati avviati.
1. Alcuni dei vantaggi dell’automazione dei test non funzionali sono:
1. Risparmiare tempo e risorse riducendo il tempo dedicato a compiti lunghi e dispendiosi.
2. L’automazione consente di aumentare la copertura dei test coprendo una gamma piรน ampia di componenti e funzionalitร .
3. ร piรน fattibile condurre test automatizzati frequentemente perchรฉ richiedono meno tempo per essere eseguiti.
4. I test automatizzati sono ideali per le attivitร di test che richiedono molto tempo, come i test di carico, i test di volume e i test di stress, che sono molto difficili da condurre manualmente.
5. La possibilitร di errori nell’esecuzione di test automatici รจ minore.
Tuttavia, i test automatizzati presentano anche alcuni svantaggi, il che significa che non sono sempre l’approccio giusto per tutti i tipi di test non funzionali.
2. Alcune delle sfide del test non funzionale automatizzato includono:
1. I test automatizzati sono piรน costosi da impostare rispetto ai test manuali.
2. L’impostazione dell’automazione dei test puรฒ richiedere tempo e risorse tecniche.
3. L’automazione dei test non lascia spazio ai test esplorativi
4. L’automazione dei test richiede ancora tempo per la creazione dei casi di test.
Conclusione: Manuale o automatizzato
test non funzionali?
Nella maggior parte dei tipi di test del software, la combinazione di test manuali e automatizzati offre di solito i risultati migliori. Ciรฒ consente ai team di collaudo di beneficiare dell’efficienza, dell’affidabilitร e dell’accuratezza dei test automatizzati, effettuando al contempo test esplorativi che consentono ai collaudatori di valutare il software da una prospettiva piรน soggettiva.
Nei test non funzionali, sia i test manuali che quelli automatizzati sono praticamente necessari per la maggior parte dei team di test.
I test manuali sono utilizzati al meglio per svolgere attivitร di test non funzionali come i test di usabilitร , mentre i test automatizzati sono piรน spesso utilizzati per eseguire test che richiederebbero troppo tempo e sarebbero difficili da condurre manualmente, come gli stress test o i test di volume.
Il test non funzionale รจ una delle aree piรน ovvie in cui utilizzare le tecniche di automazione dei test, perchรฉ si tratta di un tipo di test quantitativo e misurabile che non richiede risultati soggettivi.
Come per altri tipi di test, i test non funzionali vengono solitamente eseguiti utilizzando un mix di test manuali e test automatizzati.
Tuttavia, i test automatizzati sono praticamente necessari per molti tipi di test non funzionali e i parametri e le metriche dei test non funzionali fanno sรฌ che l’automazione sia piรน adatta a questo tipo di test rispetto ai test funzionali.
Le migliori pratiche per i test non funzionali
Quando si intraprende il testing non funzionale per la prima volta, seguire le best practice di testing puรฒ aiutare a standardizzare il processo di testing e a ottimizzare l’efficacia dei test.
Le best practice servono come linee guida per i team di test del software che vogliono migliorare i processi di test e allinearsi agli standard del settore.
1. Utilizzare gli strumenti di automazione
Nei test non funzionali, piรน che in altri tipi di test, รจ importante utilizzare strumenti di automazione per automatizzare alcuni tipi di test, in particolare i test di volume, gli stress test e i test di carico.
Questi tipi di test di solito verificano il funzionamento del software sotto la forte pressione di utenti, dati e traffico, condizioni che possono essere molto difficili da emulare manualmente.
L’automazione di questi tipi di test non funzionali non solo sarร piรน efficiente, ma anche piรน accurata e consentirร ai tester di replicare facilmente carichi e sollecitazioni piรน elevati.
2. Revisione tra pari di tutta la documentazione
Oltre a chiedere ai colleghi di rivedere i casi di test creati, chiedete ai colleghi del vostro team di test di rivedere i rapporti di bug, i rapporti di test, i piani di test e altre forme di documentazione formale create durante il processo di test.
In questo modo si riduce il rischio di piccoli errori che potrebbero causare gravi ritardi nel processo di test e sviluppo.
3. Definire i requisiti misurabili
Quando si definiscono i requisiti del software prima dell’inizio dei test non funzionali, assicurarsi che ogni requisito sia oggettivo e misurabile.
In questo modo รจ piรน facile per i tester accertare se il software soddisfa questi requisiti durante il test e non lascia spazio a interpretazioni.
Cosa si intende per “veloce” o “efficiente”? Utilizzate numeri e valori quantitativi per definire ciรฒ che state cercando.
4. Considerare attentamente le metriche di test
Prima di decidere quali metriche utilizzare per misurare le prestazioni del vostro software, considerate cosa vorranno gli utenti del software e quali metriche sono effettivamente in linea con il piano e i requisiti del software.
La maggior parte dei software dovrebbe essere veloce e affidabile, ma quali sono gli altri parametri che i vostri utenti cercano? Esistono metriche specifiche per il software da considerare durante il processo di test?
Tipi di risultati di un test non funzionale
Quando si eseguono test non funzionali, si ottengono diversi tipi di risultati dai test eseguiti.
Questi sono di solito molto diversi dai risultati dei test funzionali, che sono spesso piรน chiari perchรฉ i test funzionali si limitano a verificare se una funzione funziona come dovrebbe o meno.
Come per i test funzionali, i tester devono stabilire aspettative chiare per ogni caso di test, in modo che sia facile determinare se ogni test viene superato o meno.
1. Numeri assoluti
Quando si eseguono test delle prestazioni, stress test e altri tipi di test non funzionali, i risultati che si osservano piรน spesso sono velocitร e altri numeri assoluti.
Il test delle prestazioni verifica la velocitร con cui il sistema รจ in grado di svolgere determinate attivitร , misurata in secondi o millisecondi.
Se si esegue un test di carico, si puรฒ valutare la quantitร di dati che il software รจ in grado di gestire contemporaneamente senza bloccarsi o rallentare.
2. Messaggi di errore
I test non funzionali verificano anche il funzionamento del sistema in caso di errori, come errori di sicurezza, errori di convalida ed errori di configurazione.
ร importante che i sistemi visualizzino messaggi di errore accurati e chiari quando si verificano, in modo che gli utenti possano prendere provvedimenti per correggere il problema e continuare a utilizzare il software.
I messaggi di errore dovrebbero essere presenti anche durante i test di sicurezza, quando il sistema impedisce agli utenti di violare le funzioni di sicurezza integrate nel software.
3. Scontri
L’arresto anomalo รจ un segno di fallimento del sistema e di solito indica che il sistema non รจ in grado di funzionare al livello che si sta testando e puรฒ significare che il test รจ stato superato.
In alcuni casi, il sistema potrebbe bloccarsi e tuttavia superare il caso di test su cui si sta lavorando, ad esempio se il sistema resiste alla quantitร di stress o di traffico richiesta prima di bloccarsi.
Quando si eseguono test non funzionali, i tester devono aspettarsi che il sistema si blocchi regolarmente, soprattutto quando lo spingono al limite per lo stress test e altri test sulle prestazioni.
Esempi di test non funzionali
Gli esempi di test non funzionali sono simili agli esempi precedenti per i casi di test non funzionali.
ร possibile esaminare esempi di test non funzionali per capire meglio cosa sia il test non funzionale e cosa verifichi all’interno di un’applicazione software.
1. Esempio di test delle prestazioni
Se state lavorando a un’applicazione mobile che collega gli utenti a un database online, รจ importante che un gran numero di utenti possa accedere e scaricare i dati da questo database contemporaneamente.
Questa รจ anche una parte fondamentale dei test di scalabilitร , soprattutto se si vuole aumentare il numero di utenti dell’app in futuro.
Verrร quindi testato come il sistema reagisce quando, ad esempio, 1000 utenti cercano di accedere allo stesso database nello stesso momento e si stabiliranno i requisiti per la velocitร di caricamento dell’applicazione in questa condizione.
2. Test di compatibilitร
Se state testando una nuova applicazione di gestione dei documenti, dovrete verificare che funzioni su tutti i dispositivi a cui รจ destinata.
Ciรฒ significa verificare che sia possibile installare e caricare l’applicazione su tutte le versioni piรน recenti di Windows, Mac e qualsiasi altro sistema operativo (come Linux) con cui si desidera che il software sia compatibile.
3. Test di sicurezza
Quando si eseguono i test di sicurezza, si verificano alcuni dei modi in cui le persone possono tentare di accedere ai dati riservati o di violare le protezioni di sicurezza del software, per verificare che il sistema si comporti come ci si aspetta in queste situazioni.
Ad esempio, potreste accedere come utente e tentare di accedere a file per i quali non avete l’autorizzazione di sicurezza, per assicurarvi che il sistema non vi permetta di accedere a tali file.
Tipi di errori e bug rilevati
attraverso test non funzionali
I test non funzionali possono rivelare molti bug e difetti che non sono facili da trovare come quelli identificati nei test funzionali. Questo perchรฉ i test non funzionali spesso richiedono che i tester verifichino diverse configurazioni, impostazioni e combinazioni di condizioni per valutare il funzionamento del sistema in una miriade di contesti diversi.
1. Difetti di prestazione
I difetti di prestazione si verificano quando il sistema funziona, ma non in modo rapido o efficiente come ci si aspetta.
Ad esempio, potreste notare che il sistema non si carica abbastanza velocemente in determinate condizioni o addirittura si blocca se troppi utenti si collegano contemporaneamente.
I difetti di prestazione non impediscono completamente l’utilizzo del software, ma possono renderlo meno utilizzabile e meno adatto a soddisfare i requisiti degli utenti.
2. Difetti di sicurezza
I difetti di sicurezza sono quelli che hanno un impatto sulla sicurezza del sistema software e dei dati in esso memorizzati.
I difetti di sicurezza possono verificarsi se, ad esempio, gli utenti possono accedere a dati riservati a cui non dovrebbero avere accesso o se alcune parti dell’applicazione non sono protette correttamente da password, o se la crittografia non funziona.
Questi potrebbero causare violazioni della sicurezza, che possono avere un grave impatto sulla reputazione di un editore di software.
3. Difetti funzionali
Anche se i test non funzionali non sono progettati per verificare le funzioni di un’applicazione software, in alcuni casi i test non funzionali possono identificare i difetti funzionali del software.
Ad esempio, lo scopo del test di affidabilitร non รจ quello di verificare se l’applicazione funziona, ma di verificare se l’applicazione funziona in modo affidabile su tentativi ripetuti.
Questo puรฒ rivelare che alcune funzioni non funzionano in modo affidabile quando un’azione viene ripetuta, e queste possono essere classificate come errori funzionali.
Metriche comuni di test non funzionali
Le metriche di test non funzionali descrivono le metriche con cui vengono misurate le prestazioni e l’efficienza del sistema.
I diversi tipi di test non funzionali si basano su metriche diverse e si puรฒ scegliere di utilizzare una varietร di metriche a seconda degli obiettivi finali del progetto.
1. Il tempo
Le metriche del tempo misurano il tempo necessario per eseguire determinate operazioni o il tempo che gli utenti devono attendere per caricare le funzioni.
Alcuni esempi di metriche temporali sono il numero di transazioni o download che un’applicazione puรฒ effettuare in un determinato lasso di tempo, i tempi di risposta delle diverse funzioni e il tempo necessario all’applicazione per completare una particolare operazione.
Diversi tipi di test misurano i risultati in secondi o come presentazione del numero di operazioni al secondo.
2. Spazio
Lo spazio รจ un’altra metrica importante nei test non funzionali. Le metriche dello spazio possono verificare quanto spazio richiede la CPU o quanto spazio occupa il software sul disco rigido una volta installato.
Alcuni esempi di metriche di spazio includono la memoria cache, la memoria principale e la memoria ausiliaria.
Un software che richiede una grande quantitร di spazio per funzionare correttamente puรฒ essere adatto a un numero ridotto di clienti.
3. Usabilitร
Alcune metriche dei test non funzionali prendono in considerazione l’usabilitร del sistema, ad esempio il tempo necessario per addestrare gli utenti a utilizzare correttamente il sistema, il numero di scelte che gli utenti devono effettuare per eseguire le funzioni chiave o il numero di clic del mouse necessari per svolgere determinate attivitร .
I test non funzionali possono misurare ciascuna di queste metriche in modo quantitativo, con numeri piรน bassi che generalmente implicano livelli piรน elevati di usabilitร .
4. Affidabilitร
Un’altra metrica importante nei test non funzionali รจ l’affidabilitร . L’affidabilitร riflette la probabilitร che il sistema si comporti sempre allo stesso modo o che funzioni come dovrebbe per un lungo periodo di tempo.
Alcuni esempi di metriche utilizzate per misurare l’affidabilitร sono il tempo medio di guasto, il tasso di guasto, la disponibilitร e la probabilitร di fermo macchina.
Ognuna di queste metriche aiuta i tester a verificare che il sistema possa funzionare a lungo senza subire guasti o crash.
5. Robustezza
La robustezza รจ la misura della capacitร del sistema di gestire i guasti e di riprendersi in caso di guasto.
Alcuni esempi di metriche che misurano la robustezza includono il tempo necessario al sistema per ripristinarsi dopo un guasto, la percentuale di incidenti che portano a un guasto catastrofico e la probabilitร che i file di dati siano danneggiati dopo il guasto del sistema.
Si tratta di metriche importanti perchรฉ gli utenti si aspettano che a volte i sistemi si guastino senza perdere tutti i dati o corrompere i file.
6. Portabilitร
Le metriche di portabilitร misurano la facilitร con cui il software puรฒ essere trasferito su sistemi diversi o spostato in una nuova posizione all’interno di una rete.
Alcuni esempi di metriche che misurano la portabilitร sono la percentuale di codice non portabile e il numero di sistemi su cui il software puรฒ essere eseguito.
Idealmente, un software che puรฒ essere eseguito su molti sistemi diversi รจ piรน portatile e quindi piรน comodo da usare in ambienti che potrebbero richiedere frequenti trasferimenti o spostamenti.
Strategie per la conduzione di test non funzionali
Quando si iniziano i test non funzionali, รจ importante affrontare questa fase di test con una strategia in mente. I responsabili QA e i responsabili del testing del software devono considerare i rischi del testing, le risorse a loro disposizione e lo scopo del testing prima di iniziare il testing non funzionale.
Lo sviluppo di una strategia puรฒ aiutarvi a ottimizzare i test non funzionali fin dall’inizio.
1. Assegnare ruoli e responsabilitร
Prima di iniziare i test non funzionali, assegnate ruoli e responsabilitร ai membri chiave del team di test. In questo modo รจ piรน facile gestire il carico di lavoro dei test non funzionali e garantire che i tester esperti siano responsabili del mantenimento della qualitร e dell’efficacia dei test condotti.
Assicuratevi che le persone scelte per ricoprire questi ruoli abbiano le conoscenze e l’esperienza necessarie per svolgere i compiti che vi aspettate, in particolare se questi compiti richiedono competenze tecniche.
2. Raccogliere gli strumenti di test pertinenti
Riunite tutte le tecnologie e gli strumenti che volete utilizzare per eseguire i test non funzionali. Assicuratevi che tutto il vostro team sappia come usarli in modo efficace e, se necessario, organizzate corsi di formazione per colmare le lacune.
Assicurarsi che tutti sappiano quali strumenti di test usare e come usarli prima dell’inizio dei test non funzionali riduce il rischio di dover sospendere i test o rifarli a causa di conoscenze insufficienti.
3. Privilegiare i test
Prima di iniziare i test non funzionali, fate un elenco di tutti gli aspetti del sistema che dovete testare e classificateli in base all’urgenza e all’importanza.
ร possibile dare prioritร ai test non funzionali in base al livello di rischio connesso a ciascun aspetto del sistema che si sta testando.
Ad esempio, potrebbero essere eseguiti test di sicurezza di base, perchรฉ un’adeguata sicurezza รจ considerata estremamente importante nel software moderno. Quanto prima si identificano i difetti ad alto rischio, tanto minore sarร l’impatto potenziale di tali difetti su altri aspetti del sistema.
7 migliori strumenti di test non funzionali
Gli strumenti di test non funzionali possono snellire il processo di test, rendere piรน facile ed economica l’automazione dei test e aiutare i responsabili della QA a gestire il processo di test e documentazione.
Ci sono molti strumenti di test non funzionali gratuiti disponibili online, cosรฌ come alcuni strumenti per i quali รจ possibile pagare un canone mensile per l’aggiornamento.
1. ZAPTEST edizione gratuita
ZAPTEST รจ un popolare strumento di test del software che consente agli utenti di eseguire test funzionali e non funzionali del software in modo rapido e semplice. ร possibile utilizzare ZAPTEST per automatizzare i test del software e utilizzare la tecnologia RPA per emulare varie funzioni e condizioni nei test non funzionali.
L’edizione ZAPTEST FREE รจ solo una versione ridotta dell’edizione enterprise, che offre molte delle stesse funzionalitร su scala ridotta. ร possibile richiedere assistenza sul forum ZAPTEST ed eseguire test di prestazioni con un numero illimitato di utenti virtuali.
2. Appium
Appium รจ uno strumento gratuito per il test del software, particolarmente adatto per testare le applicazioni mobili su una serie di piattaforme diverse, compresi i dispositivi iOS e Android. Appium offre agli utenti una grande flessibilitร , che consente loro di elaborare i propri framework e le proprie strategie di test, beneficiando al contempo delle capacitร di automazione offerte da Appium.
3. Loadium
Loadium รจ uno strumento di test non funzionale che viene utilizzato al meglio per eseguire test di prestazioni e test di carico, due tipi di test non funzionali che sono molto piรน facili da eseguire utilizzando strumenti di automazione.
Loadium consente agli utenti di eseguire test di carico su larga scala e offre soluzioni personalizzate per adattare i test agli obiettivi del software.
ร possibile provare Loadium gratuitamente o pagare per scaricare la versione completa dell’applicazione.
4. Obkio
Obkio รจ uno strumento di test del software che aiuta i responsabili della QA e i test manager a definire le prioritร e a classificare i problemi in base alla loro gravitร . Obkio รจ in grado di rilevare i problemi prima che lo facciano gli utenti, offre loro notifiche intelligenti e puรฒ aiutare a individuare il punto in cui si trova il problema.
Obkio non รจ solo per i test non funzionali, ma รจ uno strumento di test gratuito molto utile che puรฒ essere utilizzato in tutte le fasi del ciclo di vita del test.
5. SonarQube
SonarQube รจ uno strumento di test di sicurezza open-source in grado di analizzare automaticamente il codice per individuare bug e vulnerabilitร . Scritto in Java, SonarQube puรฒ essere utilizzato per analizzare il codice in oltre venti diversi linguaggi di programmazione e l’interfaccia pulita del sistema consente di individuare facilmente i problemi che potrebbero causare vulnerabilitร di sicurezza in futuro.
6. Tsung
Tsung รจ un altro strumento per i test non funzionali, ideale se volete automatizzare i test di carico e di stress ma non vi trovate bene con la versione gratuita di Loadium.
Tsung รจ uno strumento open-source che consente agli utenti di eseguire test di carico ad alto volume su piรน protocolli e server, tra cui HTTP e SOAP.
Tsung รจ completamente gratuito e puรฒ aiutare i tester a garantire che il software su cui stanno lavorando offra livelli di prestazioni elevati in una varietร di condizioni difficili.
7. Sikuli
Sikuli รจ un’altra applicazione che utilizza l’automazione robotica dei processi per automatizzare il processo di test. L’applicazione puรฒ automatizzare tutto ciรฒ che รจ visibile sullo schermo. ร possibile utilizzare Sikuli per testare applicazioni non basate sul web e per riprodurre rapidamente i bug.
Lista di controllo, suggerimenti e trucchi per i test non funzionali
Prima di iniziare i test non funzionali, verificate di avere tutto il necessario per eseguire test non funzionali approfonditi in un ambiente preparato.
Seguite la lista di controllo qui sotto per i suggerimenti e i trucchi prima di iniziare i test non funzionali.
1. Lavorare secondo un programma
Sia che lo includiate nel piano di test o che creiate un documento separato, strutturate i test del software in base a un programma di test.
Se si trovano piรน bug e difetti di quanto ci si aspetta, a volte ci si puรฒ allontanare dal programma, ma avere un programma di partenza puรฒ aiutare a guidare i tester e a motivarli a lavorare in modo efficiente, soprattutto quando si eseguono test manuali che richiedono molto tempo.
2. Identificare il team di test
Delegare le responsabilitร e assegnare ai membri del team di test ruoli e titoli ufficiali puรฒ contribuire a garantire che il processo di test si svolga senza intoppi.
Comunicate chiaramente i ruoli e le responsabilitร all’interno del team prima dell’inizio dei test e assegnate a diversi tester la responsabilitร di diversi aspetti dei test non funzionali, in modo che ognuno sia tenuto a rispondere dei propri compiti.
3. Selezionare gli strumenti e le tecnologie prima del test
Se decidete di lavorare con particolari strumenti e tecnologie solo dopo aver iniziato i test non funzionali, questo puรฒ bloccare il processo di test e causare confusione tra i tester.
Invece, fate le vostre ricerche in anticipo e decidete se ci sono strumenti che volete utilizzare prima dell’inizio dei test. In questo modo รจ facile incorporare questi strumenti nel piano di test e addestrare i tester a utilizzarli prima dell’inizio dei test.
4. Ottenere sempre una firma formale sui test e sulla documentazione
I test sono un processo di garanzia della qualitร e il modo migliore per massimizzare il valore dei test eseguiti รจ quello di eseguire una QA di base anche sui test pianificati ed eseguiti.
Introdurre semplici protocolli che richiedano ai tester di chiedere ai responsabili QA e ai manager di rivedere e firmare i piani e i rapporti di test prima di passare alla fase successiva.
Questo aumenta enormemente la possibilitร di individuare e correggere tempestivamente gli errori di test.
7 errori e trappole da evitare nell’implementazione di test non funzionali
Se siete alle prime armi con i test non funzionali, puรฒ essere facile commettere alcuni errori comuni in cui spesso cadono i tester e i professionisti della QA.
Il test non funzionale รจ un lavoro complesso che implica la considerazione di un software da tutte le angolazioni e prospettive.
Di seguito sono elencate alcune delle insidie piรน comuni che i tester commettono quando eseguono test non funzionali.
1. Non pianificare
Se siete alle prime armi con i test non funzionali, potreste pensare di potervi tuffare direttamente nella fase di test senza creare in anticipo un piano di test approfondito.
Alcuni team di collaudo possono redigere documenti di collaudo incompleti o riassunti superficiali del piano di collaudo che non delineano adeguatamente le azioni che i collaudatori devono intraprendere durante il collaudo non funzionale.
2. Cattiva gestione dei test
I problemi possono sorgere se i test sono gestiti male in qualsiasi fase del processo di verifica. Una gestione inadeguata puรฒ significare che i tester non hanno le risorse adeguate per eseguire i test in modo approfondito o che non hanno il tempo sufficiente per testare ogni aspetto della build.
I test manager devono essere in grado di imparare dagli errori commessi e di sviluppare piani di test piรน efficaci per il futuro.
3. Scarsa comunicazione
La scarsa comunicazione puรฒ causare molti problemi durante il processo di test, in particolare nell’ambito dei test non funzionali.
Ciรฒ potrebbe significare una scarsa comunicazione all’interno del team di testing o una scarsa comunicazione tra tester, sviluppatori e stakeholder.
Ciรฒ accade spesso quando i tester non conservano adeguatamente i documenti di test o non comunicano regolarmente con gli altri reparti durante il processo di test.
4. Ignorare gli sviluppatori
I tester e gli sviluppatori di solito lavorano separatamente, ma i team di collaudo che lavorano a stretto contatto con gli sviluppatori possono beneficiare di una conoscenza aggiuntiva del funzionamento del software e dell’interazione tra i diversi moduli.
Coinvolgere gli sviluppatori nel processo di test, o chiedere loro un feedback nei momenti chiave, puรฒ aiutare i team di test a mettere a punto piani di test piรน efficienti e completi.
5. Scopo del test
Molti tester credono ancora che lo scopo del testing sia quello di verificare che il software funzioni o di dimostrare agli stakeholder e agli investitori che il software funziona.
Al contrario, i tester dovrebbero approcciarsi al testing con l’atteggiamento che lo scopo del testing รจ quello di cercare i difetti.
I tester che non trovano difetti possono essere soddisfatti che il software che stanno testando sia privo di bug solo se sono convinti di aver cercato ovunque si possano trovare difetti.
6. Errori manuali e errori di automazione
ร importante dedicare un po’ di tempo a valutare se sia meglio il test manuale o quello automatizzato per ogni tipo di test che si esegue.
I metodi di test automatizzati sono estremamente adatti a quasi tutte le forme di test non funzionali e i team di test abituati a eseguire test funzionali possono commettere l’errore di ritenere di poter testare manualmente le caratteristiche non funzionali con la stessa facilitร .
7. Utilizzo di strumenti di test sbagliati
ร facile scegliere gli strumenti e le tecnologie di test sbagliati prima di iniziare i test non funzionali, soprattutto se i team di test sono abituati a eseguire test manuali e non sono abituati a usare gli strumenti di test.
Ricercate in anticipo i metodi di test non funzionali che volete utilizzare e scegliete strumenti software e di automazione che soddisfino i requisiti specifici del vostro progetto.
Conclusione
Il test non funzionale รจ una fase essenziale del processo di test che consente ai tester di verificare le prestazioni di un sistema e la misura in cui soddisfa i requisiti non funzionali, come i tempi di caricamento, la capacitร e la salvaguardia della sicurezza.
Esistono molti modi diversi per eseguire i test non funzionali, ma i moderni strumenti di automazione consentono di massimizzare la copertura e l’accuratezza dei test senza compromettere la qualitร dei risultati.
FAQ e risorse
Se volete saperne di piรน sui test non funzionali, ci sono molte FAQ e risorse disponibili online.
Sfogliate le nostre risorse online preferite per i test non funzionali o leggete le risposte ad alcune delle domande piรน frequenti sui test non funzionali.
1. I migliori corsi sui test non funzionali
Ci sono molti corsi disponibili online che possono aiutarvi ad ampliare la vostra conoscenza dei metodi e degli approcci di test non funzionali.
Alcuni di questi corsi sono disponibili gratuitamente, mentre altri possono offrire un certificato o una qualifica a pagamento. Se volete intraprendere un corso accreditato, potete chiedere al vostro datore di lavoro se vi sponsorizza e copre il costo delle lezioni.
Alcuni dei migliori corsi sui test non funzionali includono:
- TSG: Corso di formazione non funzionale di 2 giorni
- Udemy: Il Bootcamp completo per il testing del software 2023
- Edx: Certificato professionale di test del software
- Educativo: Automazione dei test sulle prestazioni 101
2. Quali sono le 5 principali domande di intervista sui test non funzionali?
Se vi state preparando a un colloquio di lavoro per lavorare nel campo del testing del software, il vostro intervistatore potrebbe farvi delle domande sul testing non funzionale per assicurarsi che abbiate compreso come funziona questa fase essenziale del testing del software. Preparatevi al colloquio preparando in anticipo le risposte efficaci alle domande piรน comuni.
In che modo gli approcci e i metodi utilizzati nei test non funzionali possono differire da quelli utilizzati nei test funzionali?
In cosa differiscono i test non funzionali da quelli funzionali?
Quali sono i diversi tipi di test non funzionali?
Come si dร prioritร ai test funzionali e ai casi di test?
In quale fase del test del software viene solitamente eseguito il test funzionale?
3. I migliori tutorial di YouTube sui test non funzionali
Se preferite imparare guardando i video, potreste trovare i tutorial di YouTube sui test non funzionali un modo utile per saperne di piรน su questo tipo di test del software.
Di seguito sono riportati alcuni dei migliori tutorial di YouTube sul testing del software disponibili oggi.
Che cos’รจ il test del software non funzionale? Tutorial sul test del software
Aiuto per il test del software: Test non funzionali
Test non funzionali nel test del software
Visita W3Schools
Test funzionali e non funzionali
4. Come mantenere i test non funzionali
Una corretta manutenzione dei test assicura che i test del software possano essere ripetuti senza compromettere la qualitร dei risultati.
Mantenendo i test non funzionali, si puรฒ garantire che i test in ogni fase del processo di sviluppo siano adeguati e che i test siano sempre aggiornati in linea con il codice in costante evoluzione.
ร possibile mantenere i test non funzionali seguendo i nostri suggerimenti qui di seguito.
Comunicare chiaramente con il team di test durante la creazione di casi di test e la stesura della documentazione.
Seguire sempre le migliori pratiche di progettazione dei test
Rivalutare i protocolli di verifica nelle varie fasi del processo di verifica.
Aggiornare le modifiche apportate al test man mano che si procede.
Considerare i progetti futuri quando si apportano modifiche ai test attuali
5. I test non funzionali sono black box o white box?
Il test non funzionale รจ un tipo di test black box, il che significa che i tester non si occupano del funzionamento interno del sistema, ma solo dei suoi risultati esterni.
Ciรฒ si contrappone al white box testing, che verifica il funzionamento interno del sistema. Esempi di test white box sono i test unitari e i test di integrazione.
I test dei requisiti funzionali e non funzionali sono esempi di black box testing. Ciรฒ significa che i tester non necessitano di competenze tecniche avanzate o di conoscenze di programmazione informatica per eseguire i test black box, nรฉ devono imparare a implementare i sistemi che stanno testando.