Cos'è il test non funzionale?
sobes.tech AI
Risposta dell'AI
I test non funzionali sono un tipo di test del software che si concentra sulla verifica dei requisiti non funzionali. Valutano le caratteristiche del sistema che non sono direttamente correlate a funzioni specifiche, ma piuttosto a come il sistema funziona.
Gli obiettivi principali dei test non funzionali:
- Garantire che il sistema soddisfi le aspettative di utenti e business in termini di prestazioni, affidabilità, usabilità e altri aspetti.
- Identificare problemi che potrebbero influenzare stabilità, scalabilità e sicurezza del sistema.
- Confermare che il sistema sia conforme agli standard e requisiti stabiliti.
Tipi di test non funzionali:
| Tipo di test | Breve descrizione | Esempi di caratteristiche verificate |
|---|---|---|
| Test di performance | Valutazione della velocità, reattività, stabilità e scalabilità del sistema sotto carico. | Tempo di risposta, larghezza di banda, utilizzo CPU/memoria. |
| Test di carico | Verifica del comportamento del sistema sotto carico massimo atteso. | Numero di utenti simultanei, transazioni al secondo. |
| Test di stress | Verifica del comportamento del sistema superando il carico massimo atteso o in caso di risorse insufficienti. | Punto di fallimento del sistema, comportamento sotto sovraccarico. |
| Test di stabilità (Endurance Testing) | Verifica della capacità del sistema di sostenere un funzionamento continuo a lungo termine sotto carico. | Perdite di memoria, degradazione delle prestazioni nel tempo. |
| Test di sicurezza | Verifica della protezione del sistema da minacce esterne e interne, accessi non autorizzati. | Protezione da injection SQL, attacchi XSS, autenticazione, autorizzazione. |
| Test di usabilità | Determinare quanto sia facile e intuitivo per gli utenti usare il sistema. | Interfaccia comprensibile, navigazione facile, accessibilità. |
| Test di compatibilità | Verifica del funzionamento del sistema in diversi ambienti (browser, OS, dispositivi). | Supporto per diverse versioni di browser, OS. |
| Test di affidabilità | Valutazione della capacità del sistema di eseguire le sue funzioni senza errori per un certo periodo di tempo. | Tempo medio tra guasti (MTBF), probabilità di guasto. |
| Test di accessibilità | Verifica della facilità d'uso del sistema per persone con disabilità. | Conformità agli standard WCAG. |
| Test di localizzazione/internazionalizzazione | Verifica dell'adattamento del sistema a diverse lingue e impostazioni regionali. | Stringhe tradotte, formati di data/numeri. |
I test non funzionali vengono generalmente eseguiti in fasi più precoci del ciclo di vita dello sviluppo software rispetto ai test funzionali, ma la loro pianificazione inizia con la definizione dei requisiti. Possono far parte di processi automatizzati, specialmente nei test di performance e sicurezza.
Strumenti per i test non funzionali:
- Performance: JMeter, LoadRunner, Gatling, k6.
- Sicurezza: OWASP ZAP, Burp Suite, Acunetix.
- Compatibilità: BrowserStack, Sauce Labs.
- Usabilità: UserTesting.com, strumenti di eye-tracking.
Un esempio di automazione di parte dei test non funzionali può essere uno script per verificare il tempo di caricamento di una pagina:
import time
import requests
def measure_page_load_time(url):
"""
Misura il tempo di caricamento dell'URL specificato.
"""
start_time = time.time()
try:
response = requests.get(url)
response.raise_for_status() # Solleva HTTPError per risposte non valide (4xx o 5xx)
end_time = time.time()
load_time = end_time - start_time
print(f"Tempo di caricamento {url}: {load_time:.2f} secondi")
return load_time
except requests.exceptions.RequestException as e:
print(f"Errore nel caricamento di {url}: {e}")
return None
# Esempio di utilizzo
url_to_test = "https://www.example.com"
measure_page_load_time(url_to_test)
I risultati dei test non funzionali sono spesso presentati sotto forma di report, grafici e metriche che consentono di valutare le caratteristiche del sistema e di prendere decisioni sugli eventuali miglioramenti.