Test di transizione di stato con esempio

โšก Riepilogo intelligente

Il test di transizione di stato รจ una tecnica black-box che verifica come un'applicazione passa da uno stato all'altro al variare delle condizioni di input. Questo tutorial illustra le quattro parti del diagramma, la differenza tra diagrammi di stato e tabelle e fornisce esempi pratici di bancomat e login per i tester.

  • ๐Ÿ”„ Idea centrale: Questa tecnica verifica il comportamento del sistema quando lo stesso input produce output diversi in base a eventi precedenti (un sistema a stati finiti).
  • ๐Ÿงฉ Quattro elementi costitutivi: Ogni modello รจ costruito a partire da Stati, Transizioni, Eventi e Azioni.
  • ๏ธ Diagramma vs tabella: I diagrammi rivelano le transizioni valide; le tabelle mettono in luce le transizioni non valide.
  • ๐Ÿง Esempi pratici: Il blocco del PIN del bancomat e l'accesso alle prenotazioni di volo dimostrano una copertura reale.
  • ๐Ÿค– Abilitazione dell'IA: Gli strumenti di intelligenza artificiale generano automaticamente modelli di stato a partire dai requisiti e segnalano le transizioni mancanti o non valide.

Test di transizione statale โ€” Stati

Che cos'รจ il test di transizione di stato?

Test di transizione di stato รˆ una tecnica di test black-box in cui le modifiche alle condizioni di input causano cambiamenti di stato o di output nell'applicazione sotto test (AUT). Aiuta ad analizzare il comportamento di un'applicazione in diverse condizioni di input e i tester possono fornire valori di input positivi e negativi registrando il comportamento del sistema.

Si basa sul modello su cui sono costruiti il โ€‹โ€‹sistema e i test. Qualsiasi sistema in cui si ottiene un output diverso per lo stesso input, a seconda di ciรฒ che รจ accaduto prima, รจ un sistema a stati finiti. La tecnica di test di transizione di stato รจ utile quando รจ necessario testare diverse transizioni di sistema.

Quando utilizzare i test di transizione di stato

  • Quando un tester sta testando l'applicazione per un insieme finito di valori di input.
  • Quando il tester sta testando una sequenza di eventi che si verificano nell'AUT, ciรฒ consente di verificare il comportamento dell'applicazione per una sequenza di valori di input.
  • Quando il sistema in fase di test dipende da eventi o valori del passato.

Quando non fare affidamento sui test di transizione statale

  • Quando il test non viene eseguito per combinazioni di input sequenziali.
  • Quando i test si concentrano su diverse funzionalitร , come ad esempio i test esplorativi.

Quattro parti di un diagramma di transizione di stato

Il modello di transizione di stato si compone di quattro elementi principali, descritti di seguito.

1) Stati che il software potrebbe raggiungere.

Test di transizione statale โ€” Stati

2) Transizione da uno stato all'altro.

Test di transizione statale โ€” Transizione

3) Eventi che innescano una transizione, come la chiusura di un file o il prelievo di denaro.

Test di transizione di stato โ€” Eventi

4) Azioni che derivano da una transizione, come un messaggio di errore o la ricezione di denaro contante.

Test di transizione statale โ€” Azioni

Diagramma di transizione di stato vs tabella di transizione di stato

Esistono due modi principali per rappresentare o progettare le transizioni di stato: il diagramma di transizione di stato e la tabella di transizione di stato.

Aspetto Diagramma di transizione di stato Tabella di transizione di stato
Chiamato anche Grafico/Schema statale Tabella di stato
sul Mercato Boxe per gli stati, frecce per le transizioni Griglia di stati (righe) ed eventi (colonne)
migliori per identificare Transizioni valide Transizioni non valide
Ogni cella mostra - Lo stato raggiunto dopo che si รจ verificato un evento

Come effettuare una transizione di stato (esempi)

Esempio 1: Blocco PIN bancomat

Si consideri una funzione di un sistema bancomat in cui, se l'utente inserisce la password errata per tre volte, il conto viene bloccato.

In questo sistema, se l'utente inserisce una password valida in uno qualsiasi dei primi tre tentativi, l'accesso viene effettuato con successo. Se l'utente inserisce una password errata al primo o al secondo tentativo, gli viene richiesto di reinserirla. Infine, se l'utente inserisce la password errata per la terza volta, l'account viene bloccato.

Diagramma di transizione di stato (Esempio 1)

Diagramma di transizione dello stato del PIN ATM

Nel diagramma, ogni volta che l'utente inserisce il PIN corretto, passa allo stato "Accesso consentito". Se inserisce la password errata, passa al tentativo successivo e, se ripete l'errore una terza volta, raggiunge lo stato "Account bloccato".

Tabella di transizione di stato (Esempio 1)

Regione / Stato PIN corretto PIN errato
S1) Inizio S5 S2
S2) 1ยฐ tentativo S5 S3
S3) secondo tentativo S5 S4
S4) 3ยฐ tentativo S5 S6
S5) Accesso concesso - -
S6) Account bloccato - -

Nella tabella, quando l'utente inserisce il PIN corretto, lo stato passa a S5 (Accesso consentito). Se l'utente inserisce una password errata, passa allo stato successivo e, dopo il terzo tentativo errato, raggiunge lo stato Account bloccato.

Esempio 2: Accesso alla prenotazione del volo

Nella schermata di accesso alla prenotazione del volo, รจ necessario inserire il nome e la password dell'agente corretti per accedere al domanda di prenotazione del volo.

Grafico di transizione di stato della prenotazione del volo

Grafico della transizione di stato

L'applicazione consente tre tentativi; se l'utente inserisce la password errata al quarto tentativo, il sistema chiude automaticamente l'applicazione.

Il grafico degli stati ti aiuta a determinare le transizioni valide da testare. Il test con password corretta e non corretta รจ obbligatorio, e per il scenari di provaรˆ possibile testare l'accesso al secondo, terzo o quarto tentativo. รˆ possibile utilizzare una tabella degli stati per determinare le transizioni di sistema non valide.

Tabella di transizione degli stati per la prenotazione dei voli

In una tabella degli stati, tutti gli stati validi sono elencati a sinistra e gli eventi che li determinano in alto. Ogni cella mostra lo stato in cui il sistema passa quando si verifica l'evento. Ad esempio, nello stato S1, una password corretta porta a S6 (Accesso consentito); una password errata al primo tentativo porta a S3 (Secondo tentativo). Allo stesso modo, รจ possibile determinare tutti gli altri stati.

Con questo metodo vengono evidenziati due stati non validi. Supponiamo di trovarci nello stato S6 (giร  effettuato l'accesso) e di aprire un'altra istanza di prenotazione voli inserendo le password per lo stesso agente. รˆ necessario testare la risposta del sistema in uno scenario di questo tipo.

Vantaggi e svantaggi della tecnica di transizione di stato

Vantaggi Svantaggi
Fornisce una rappresentazione grafica o tabellare del comportamento del sistema, aiutaping il tester copre e comprende il sistema in modo efficace. Non รจ sempre affidabile; ad esempio, non รจ adatto a sistemi non finiti o sequenziali.
Consente al tester di verificare che tutte le condizioni siano soddisfatte e che i risultati siano stati acquisiti. Richiede la definizione di tutti i possibili stati. Questo funziona per sistemi di piccole dimensioni, ma non รจ piรน adeguato per quelli piรน grandi a causa della crescita esponenziale del numero di stati.

DOMANDE FREQUENTI

Il test di transizione di stato รจ una tecnica a scatola nera che verifica come un sistema passa da uno stato all'altro al variare delle condizioni di input. รˆ adatta ai sistemi a stati finiti, dove lo stesso input puรฒ produrre output diversi a seconda degli eventi precedenti.

Le quattro componenti sono Stati (le condizioni in cui puรฒ trovarsi il software), Transizioni (il passaggio tra gli stati), Eventi (i fattori scatenanti di una transizione) e Azioni (i risultati di una transizione, come un messaggio o un output).

Un diagramma di transizione di stato utilizza caselle e frecce ed รจ ideale per identificare le transizioni valide. Una tabella di stato elenca gli stati in base agli eventi in una griglia ed รจ piรน adatta per individuare le transizioni non valide.

Evitatelo quando gli input non sono sequenziali o quando effettuate test esplorativi di diverse funzionalitร . Inoltre, risulta inefficace per sistemi molto grandi, poichรฉ il numero di stati cresce esponenzialmente.

Una copertura di 0 switch verifica ogni singola transizione valida una sola volta. Una copertura di 1 switch verifica ogni coppia di transizioni consecutive. Una maggiore copertura di switch individua piรน difetti relativi alla sequenza, ma richiede un numero maggiore di casi di test.

Si tratta di una tecnica a scatola nera. I casi di test vengono derivati โ€‹โ€‹dal comportamento esterno previsto di stati e transizioni, senza la necessitร  di conoscere il codice sorgente interno dell'applicazione.

Gli strumenti di intelligenza artificiale leggono i requisiti e creano automaticamente modelli di stato, quindi generano casi di test che coprono percorsi validi e transizioni tra i nodi. Ciรฒ riduce lo sforzo di modellazione manuale e migliora la copertura di sequenze complesse.

Sรฌ. L'IA puรฒ analizzare un modello di stato e segnalare transizioni mancanti, irraggiungibili o non valide confrontandole con modelli di comportamento previsti, aiutandoping I tester individuano le lacune che le revisioni manuali delle tabelle spesso non rilevano.

Riassumi questo post con: