Finite State Testing
Talvolta è possibile - ed opportuno - astrarre il sistema da testare, ponendolo sotto forma di Macchina a Stati.
Per l'analisi saranno necessarie le seguenti premesse...
- Abbiamo una FSM che rappresenta la SPECIFICA
- Abbiamo una FSM che rappresenta la IMPLEMENTAZIONE
- Operiamo un Conformance Testing - un caso particolare di Testing Funzionale - per stabilire se sia equivalente a
...ed un po' di formalismo
- V-equivalenza tra stati
- preso un insieme di sequenze di input, due stati sono detti V-equivalenti se gli stati restituiscono lo stesso output
- Equivalenza tra stati
- se gli stati sono V-equivalenti
- Equivalenza tra FSM
- due FSM sono equivalenti se i loro stati iniziali sono equivalenti
W-method
modificaPremesse
modifica- Visto il formalismo presentato sopra: occorre verificare che gli stati iniziali di ed siano equivalenti
- Occorre inoltre trovare un metodo per identificare gli stati
Fault Model
modificaEsistono due tipi di Fault in cui può incorrere
- Output Fault
- Stesso stato finale MA output diverso
- Transfer Fault
- Output corretto MA stato finale errato
Characterization Set
modificaInsieme di sequenze di ingressi sufficiente a disambiguare lo stato iniziale
State-Cover Set
modificaè l'insieme degli ingressi che, a partire dallo stato iniziale, permette di raggiungere ciascun altro stato
Transition Set
modificaè l'insieme degli ingressi che, a partire dallo stato iniziale, permette di coprire tutti e le transizioni (archi)
Copetura All-nodes
modificaUtilizziamo come Test Suite l'insieme
Se la implementazione è conforme: ci permette di raggiungere ogni stato (NODO). Poi a partire da questo, applicando si vuole capire da quale stato siamo partiti.
Copertura All-edges
modificaUtilizziamo come Test Suite l'insieme
Considerazioni
modificaOperare il Finite-State-Testing attraverso W-method permette di ottenere una Full Fault Coverage, purché siano garantite le seguenti condizioni sulle macchine specifica ed implementazione
- devono essere deterministiche
- devono essere osservabili
- devono essere completamente specificate
- devono avere lo stesso numero di stati
- Il reset delle macchine è corretto nel senso che porta sempre allo stesso stato (non necessariamente quello iniziale)