Finite State Testing

Da Wikiversità, l'università aperta.

Stubby
Questa lezione è solo un abbozzo. Se puoi contribuisci adesso a migliorarla secondo le convenzioni di Wikiversità.
Per l'elenco completo degli stub, vedi la relativa categoria

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 S che rappresenta la SPECIFICA
  • Abbiamo una FSM I che rappresenta la IMPLEMENTAZIONE
  • Operiamo un Conformance Testing - un caso particolare di Testing Funzionale - per stabilire se I sia equivalente a S

...ed un po' di formalismo

V-equivalenza tra stati
preso V un insieme di sequenze di input, due stati sono detti V-equivalenti se \forall a \in V gli stati restituiscono lo stesso output
Equivalenza tra stati
se gli stati sono V-equivalenti  \forall V
Equivalenza tra FSM
due FSM sono equivalenti se i loro stati iniziali sono equivalenti

Indice

[modifica] W-method

[modifica] Premesse

  • Visto il formalismo presentato sopra: occorre verificare che gli stati iniziali di S ed I siano equivalenti
  • Occorre inoltre trovare un metodo per identificare gli stati

[modifica] Fault Model

Esistono due tipi di Fault in cui può incorrere I

Output Fault
Stesso stato finale MA output diverso
Transfer Fault
Output corretto MA stato finale errato

[modifica] Characterization Set

W \in 2^{I{^*}} Insieme di sequenze di ingressi sufficiente a disambiguare lo stato iniziale

[modifica] State-Cover Set

Q è l'insieme degli ingressi che, a partire dallo stato iniziale, permette di raggiungere ciascun altro stato

[modifica] Transition Set

P è l'insieme degli ingressi che, a partire dallo stato iniziale, permette di coprire tutti e le transizioni (archi)

[modifica] Copetura All-nodes

Utilizziamo come Test Suite l'insieme Q \times W

Se la implementazione è conforme: Q ci permette di raggiungere ogni stato (NODO). Poi a partire da questo, applicando W si vuole capire da quale stato siamo partiti.

[modifica] Copertura All-edges

Utilizziamo come Test Suite l'insieme P \times W


[modifica] Considerazioni

Operare 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)


[modifica] Wp-method

Strumenti personali