Finite State Testing: differenze tra le versioni

Da testwiki.
Vai alla navigazione Vai alla ricerca
imported>SamueleBOT
m top: correzione
 
(Nessuna differenza)

Versione attuale delle 20:37, 19 mar 2017

Template:S Template:Risorsa 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 aV gli stati restituiscono lo stesso output
Equivalenza tra stati
se gli stati sono V-equivalenti V
Equivalenza tra FSM
due FSM sono equivalenti se i loro stati iniziali sono equivalenti

W-method

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

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

Characterization Set

W2I* Insieme di sequenze di ingressi sufficiente a disambiguare lo stato iniziale

State-Cover Set

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

Transition Set

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

Copetura All-nodes

Utilizziamo come Test Suite l'insieme Q×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.

Copertura All-edges

Utilizziamo come Test Suite l'insieme P×W


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)


Wp-method