CAP04 Flashcards
Panoramica sulle Tecniche di Test
Le tecniche di test sono metodi utilizzati per progettare i test case e verificare che un sistema soddisfi i requisiti funzionali e non funzionali. Queste tecniche si dividono principalmente in tre categorie: tecniche basate su specifica (black-box), tecniche basate su struttura (white-box) e tecniche basate sull’esperienza.
Tecniche di Test Black-Box
Le tecniche di testing black-box si concentrano su ciò che il sistema deve fare, ignorando come funziona internamente. Si basano sui requisiti e sulle specifiche funzionali per progettare i test case, senza considerare il codice o la struttura del sistema.
Partizionamento di Equivalenza
Il partizionamento di equivalenza è una tecnica di testing black-box che divide i dati di input di un’applicazione in gruppi chiamati partizioni di equivalenza. Ogni partizione rappresenta un insieme di valori che si prevede siano trattati in modo simile dal software. Il test viene progettato scegliendo un valore rappresentativo per ogni partizione.
Analisi ai Valori Limite
L’analisi ai valori limite è una tecnica di testing black-box che si concentra sui valori al confine tra le partizioni di equivalenza, dove è più probabile che si verifichino errori. Questa tecnica si basa sull’idea che i difetti spesso si verificano ai bordi delle condizioni.
Testing della Tabella delle Decisioni
Il testing della tabella delle decisioni è una tecnica di testing black-box che utilizza tabelle per rappresentare e testare tutte le combinazioni possibili di condizioni e azioni in un sistema. È particolarmente utile per sistemi complessi con molteplici regole decisionali.
Testing delle Transazioni di Stato
Il testing delle transizioni di stato è una tecnica Black-box utilizzata per verificare il comportamento di un sistema che può trovarsi in uno di diversi stati
Tecniche di test White Box
Le tecniche di test White Box (nota anche come test strutturale) si concentrano sulla verifica del comportamento interno di un’applicazione, esaminando il codice sorgente, la logica e la struttura del programma. In altre parole, il tester ha accesso al codice e testano la funzionalità e l’affidabilità del software basandosi sulla sua implementazione interna.
Testing delle Istruzioni e Copertura delle Istruzioni
La copertura delle istruzioni è una misura che indica la percentuale di istruzioni del codice che vengono effettivamente eseguite durante i test. Una copertura del 100% significa che tutte le righe di codicesono state testate. Questo tipo di test aiuta a garantire che non ci siano parti del codice non testate che potrebbero contenere bug o errori.
Testing dei Rami e Copertura dei Rami
Testing dei rami è una tecnica di test white-box che si concentra sull’esecuzione di tutti i rami (o branch) di un programma, ovvero le decisioni che possono portare a percorsi alternativi nel flusso di controllo del codice. L’obiettivo è verificare che tutte le possibili scelte condizionali, come if-else, switch-case, e while loop, vengano testate in modo adeguato.
Il Valore del Testing White-box
Il testing white-box è una tecnica di test in cui il tester ha accesso completo al codice sorgente dell’applicazione. Questo tipo di testing permette di esaminare e testare la logica interna del software, piuttosto che concentrarsi solo sugli input e sugli output, come nel testing black-box. Il valore del testing white-box deriva dalla sua capacità di fornire una visibilità approfondita sul funzionamento interno del sistema e di rilevare difetti che potrebbero non essere visibili con altre tecniche di test.
Tecniche di Test basate sull’Esperienza
Le tecniche di test basate sull’esperienza si fondano sulla conoscenza, competenza e intuizione del tester per identificare i difetti nel software. Invece di seguire rigorosi piani di test strutturati, queste tecniche si basano sull’esperienza pregressa del tester, che può derivare da precedenti progetti, conoscenza del dominio, o esperienza diretta con il software. Queste tecniche sono utili per scoprire errori difficili da prevedere attraverso metodi formali.
Error Guessing
Error Guessing è una tecnica di testing basata sull’esperienza del tester per anticipare dove potrebbero verificarsi degli errori nel software. In pratica, il tester utilizza la propria conoscenza del sistema, della sua architettura e dei difetti comuni per “indovinare” le aree più vulnerabili del software e concentrarsi su di esse durante i test.
Testing Esplorativo
Il Testing Esplorativo è un approccio di testing in cui il tester esplora attivamente il software senza seguire uno script o un piano di test predefinito. Invece di eseguire test specifici in base a requisiti dettagliati, il tester utilizza la propria esperienza, curiosità e intuizione per scoprire bug, difetti o comportamenti imprevisti.
Testing Checklist-Based
Il Testing Checklist-Based è una tecnica di testing in cui il tester utilizza una lista di controllo (checklist) per assicurarsi che tutte le condizioni importanti vengano verificate durante i test. La checklist contiene elementi che il tester deve controllare, che possono essere basati su esperienze passate, conoscenze dei requisiti o tipici difetti del software.
Approcci del Test basati sulla Collaborazione
Gli approcci del test basati sulla collaborazione sono tecniche in cui il team di sviluppo, tester, e altre parti interessate (come i clienti o gli utenti) lavorano insieme per progettare, eseguire e valutare i test. L’obiettivo principale di questi approcci è ottenere una comprensione condivisa dei requisiti e delle aspettative per il software, migliorando così l’efficacia del processo di testing e garantendo che il prodotto soddisfi le esigenze reali.