Che cos'è il test basato su modelli?
Che cos'è il test basato su modelli?
Il test basato su modello è una tecnica di test del software in cui il comportamento in fase di esecuzione del software in prova viene confrontato con le previsioni fatte da un modello. Un modello è una descrizione del comportamento di un sistema. Il comportamento può essere descritto in termini di sequenze di input, azioni, condizioni, output e flusso di dati dall'input all'output. Dovrebbe essere praticamente comprensibile e riutilizzabile; condivisibile deve avere una descrizione precisa del sistema sotto test.
Sono disponibili numerosi modelli e descrivono diversi aspetti del comportamento del sistema. Esempi del modello sono:
- Flusso di dati
- Flusso di controllo
- Grafici delle dipendenze
- Tabelle delle decisioni
- Macchine di transizione statale
Il model-based testing descrive il comportamento di un sistema in risposta ad un'azione (determinata da un modello). Fornire l'azione e verificare se il sistema risponde secondo le aspettative.
È un metodo formale leggero per convalidare un sistema. Questo test può essere applicato sia al test hardware che a quello software.
Esempio di test basato su modello
Il modello precedente spiega l'approccio semplificato della scrittura di poesie nel blocco note e le possibili azioni relative a ciascun passaggio. Per ogni singola azione (come iniziare, inserire una poesia, salvare), Test Case può essere generato e l'output può essere verificato.
Tipi di MBT
Esistono due tipi di framework di test basati su modelli:
- Offline / a priori: generazione di suite di test prima di eseguirle. Una suite di test non è altro che una raccolta di casi di test.
- Online/al volo: generazione di test suite durante l'esecuzione del test
Diversi modelli in fase di test
Per comprendere l’MBT è necessario comprendere alcuni dei modelli spiegati di seguito. Esaminiamoli uno per uno:
Macchine a stati finiti
Questo modello aiuta i tester a valutare il risultato in base all'input selezionato. Diverse combinazioni degli ingressi possono provocare uno stato corrispondente del sistema.
Il sistema avrà uno stato specifico e uno stato attuale, che è governato da una serie di input forniti dai tester.
Considera l'esempio-
Esiste un sistema che consente ai dipendenti di accedere all'applicazione. Ora, lo stato attuale del dipendente è "Fuori" e diventa "Entra" una volta effettuato l'accesso al sistema. Nello stato "in", un dipendente può visualizzare, stampare e scansionare documenti nel sistema.
Grafici di stato
È un'estensione della macchina a stati finiti e può essere utilizzata per sistemi complessi e in tempo reale. Gli statechart vengono utilizzati per descrivere vari comportamenti del sistema. Ha un numero definito di stati. Il comportamento del sistema viene analizzato e rappresentato sotto forma di eventi per ogni stato.
Per esempio -
I difetti vengono segnalati nello strumento di gestione dei difetti con lo stato Nuovo. Una volta risolto dagli sviluppatori, deve essere modificato nello stato Risolto. Se un difetto non viene risolto, modificare lo stato in Riapri. Le carte degli stati dovrebbero essere progettate in modo tale da richiedere un evento per ciascuno stato.
Linguaggio di modellazione unificato (UML)
Linguaggio di modellazione unificato (UML) è un linguaggio di modellazione standardizzato di uso generale. UML include una serie di tecniche di notazione grafica per creare modelli visivi in grado di descrivere il comportamento molto complicato del sistema.
UML ha notazioni come:
- Attività
- Alimentare
- Processo Di Business
- Componenti
- Linguaggio di programmazione
Sfide dei test basati su modelli
L'implementazione di MBT in ogni organizzazione richiede ovviamente un elevato investimento e impegno. Di seguito sono riportati gli svantaggi di MBT in Software Engineering.
- Competenze necessarie richieste ai tester
- Il tempo della curva di apprendimento sarà maggiore
- Difficile comprendere il modello stesso
Vantaggi del test dei modelli
Ecco i vantaggi dell'MBT:
- Manutenzione semplice di test case/suite
- Riduzione dei costi
- Migliore copertura dei test
- Può eseguire diversi test su n numero di macchine
- Rilevamento precoce dei difetti
- Aumento del conteggio dei difetti
- Risparmio di tempo
- Maggiore soddisfazione sul lavoro dei tester
Conclusione
I tester costruiscono comunque modelli mentali durante i test. Questi modelli mentali possono essere trasformati in modelli su carta. Ciò aiuta i tester a ottenere leggibilità e riutilizzabilità.
Il test basato su modelli è un nuovo approccio a test del software. L'evoluzione del test del software è mostrata di seguito:





