Test di transizione di stato – Diagramma e tecnica (esempio)
Che cos'è il test di transizione di stato?
Test di transizione di stato è una tecnica di test black box in cui le modifiche apportate alle condizioni di input causano modifiche di stato o modifiche di output nell'Application under Test (AUT). Il test di transizione di stato aiuta ad analizzare il comportamento di un'applicazione per diverse condizioni di input. I tester possono fornire valori di test di input positivi e negativi e registrare il comportamento del sistema.
È il modello su cui si basano 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.
Tecnica di test della transizione di stato è utile dove è necessario testare diverse transizioni di sistema.
Quando utilizzare la transizione di stato?
- Questo può essere utilizzato quando un tester sta testando l'applicazione per un insieme finito di valori di input.
- Quando il tester sta tentando di testare una sequenza di eventi che si verificano nell'applicazione sottoposta a test. Ciò consentirà cioè al tester di testare il comportamento dell'applicazione per una sequenza di valori di input.
- Quando il sistema sotto test ha una dipendenza da eventi/valori del passato.
Quando non fare affidamento sulla transizione di stato?
- Quando il test non viene eseguito per combinazioni di input sequenziali.
- Se il test deve essere eseguito per funzionalità diverse come i test esplorativi
Quattro parti del diagramma di transizione dello stato
Ci sono 4 componenti principali del modello di transizione statale come di seguito
1) Stati che il software potrebbe ottenere
2) Transizione da uno stato all'altro
3) Eventi che origina una transizione come la chiusura di un file o il prelievo di denaro
4) Azioni che risultano da una transizione (un messaggio di errore o la ricezione del denaro.)
Diagramma delle transizioni di stato e tabella delle transizioni di stato
Esistono due modi principali per rappresentare o progettare la transizione di stato: il diagramma di transizione di stato e la tabella di transizione di stato.
Nel diagramma di transizione di stato gli stati sono mostrati in testi in riquadro e la transizione è rappresentata da frecce. È anche chiamato State Chart o Graph. È utile per identificare transizioni valide.
Nella tabella delle transizioni di stato tutti gli stati sono elencati sul lato sinistro e gli eventi sono descritti in alto. Ogni cella della tabella rappresenta lo stato del sistema dopo che si è verificato l'evento. È anche chiamata tabella di stato. È utile per identificare le transizioni non valide.
Come effettuare una transizione di stato (esempi di transizione di stato)
Esempio 1:
Consideriamo una funzione del sistema ATM in cui se l'utente inserisce per tre volte la password non valida il conto verrà bloccato.
In questo sistema, se l'utente inserisce una password valida in uno qualsiasi dei primi tre tentativi, l'utente accederà con successo. Se l'utente inserisce una password non valida al primo o al secondo tentativo, gli verrà chiesto di inserire nuovamente la password. E infine, se l'utente inserisce una password errata 3rd tempo, l'account verrà bloccato.
Diagramma di transizione di stato
Nel diagramma ogni volta che l'utente inserisce il PIN corretto viene spostato nello stato Accesso concesso, se inserisce la password sbagliata viene spostato al tentativo successivo e se fa lo stesso per i 3rd momento in cui viene raggiunto lo stato di blocco dell'account.
Tabella di transizione di stato
PIN corretto | PIN errato | |
---|---|---|
S1) Inizio | S5 | S2 |
S2)1st tentativo | S5 | S3 |
S3)2nd tentativo | S5 | S4 |
S4)3rd tentativo | S5 | S6 |
S5) Accesso concesso | - | - |
S6) Conto bloccato | - | - |
Nella tabella, quando l'utente immette il PIN corretto, lo stato passa a S5, ovvero Accesso concesso. E se l'utente inserisce una password errata viene spostato allo stato successivo. Se fa lo stesso 3rd volta, raggiungerà lo stato di account bloccato.
Esempio 2:
Guarda questo video sul test della transizione di stato prima di fare riferimento all'esempio seguente:
Clicchi qui se il video non è accessibile
Nella schermata di accesso alla prenotazione del volo, considera di dover inserire il nome e la password corretti dell'agente per accedere al domanda di prenotazione del volo.
Ti dà l'accesso all'applicazione con la password e il nome di accesso corretti, ma cosa succede se inserisci la password sbagliata.
L'applicazione consente tre tentativi e se gli utenti inseriscono la password errata al quarto tentativo, il sistema chiude automaticamente l'applicazione.
I grafici di stato aiutano a determinare le transizioni valide da testare. In questo caso è obbligatorio effettuare il test con la password corretta e con quella errata. Per il scenari di prova, accedi il 2nd, 3rd e 4th tentativo chiunque potrebbe essere testato.
È possibile utilizzare la tabella di stato per determinare le transizioni di sistema non valide.
In una tabella degli stati, tutti gli stati validi sono elencati sul lato sinistro della tabella e gli eventi che li causano in alto.
Ogni cella rappresenta lo stato in cui si sposterà il sistema quando si verifica l'evento corrispondente.
Ad esempio, mentre nello stato S1 si immette una password corretta si viene portati allo stato S6 (Accesso concesso). Supponiamo che se hai inserito la password sbagliata al primo tentativo verrai portato allo stato S3 o 2nd Try.
Allo stesso modo, puoi determinare tutti gli altri stati.
Due stati non validi vengono evidenziati utilizzando questo metodo. Supponiamo che tu sia nello stato S6, ovvero hai già effettuato l'accesso all'applicazione e apri un'altra istanza di prenotazione del volo e inserisci password valide o non valide per lo stesso agente. La risposta del sistema per un simile scenario deve essere testata.
Vantaggi e svantaggi della tecnica di transizione di stato
Vantaggi | Svantaggi |
---|---|
Questa tecnica di test fornirà una rappresentazione pittorica o tabellare del comportamento del sistema che consentirà al tester di coprire e comprendere il comportamento del sistema in modo efficace. | Lo svantaggio principale di questa tecnica di test è che non possiamo fare affidamento su questa tecnica ogni volta. Ad esempio, se il sistema non è un sistema finito (non in ordine sequenziale), questa tecnica non può essere utilizzata. |
Utilizzando questo test, il tester della tecnica può verificare che tutte le condizioni siano coperte e che i risultati vengano acquisiti | Un altro svantaggio è che bisogna definire tutti i possibili stati di un sistema. Anche se questo va bene per i sistemi piccoli, presto si estende a sistemi più grandi poiché c’è una progressione esponenziale nel numero di stati. |
Sommario
- Il test di transizione di stato è definito come la tecnica di test in cui i cambiamenti nelle condizioni di input causano cambiamenti di stato nell'applicazione in test.
- In Software Engineering, La tecnica di test delle transizioni di stato è utile quando è necessario testare diverse transizioni di sistema.
- Due modi principali per rappresentare o progettare la transizione di stato: diagramma di transizione di stato e tabella di transizione di stato.
- Nel diagramma di transizione di stato gli stati sono mostrati in riquadri e la transizione è rappresentata da frecce.
- Nella tabella delle transizioni di stato tutti gli stati sono elencati sul lato sinistro e gli eventi sono descritti in alto.
- Il vantaggio principale di questa tecnica di test è che fornirà una rappresentazione pittorica o tabellare del comportamento del sistema che consentirà al tester di coprire e comprendere il comportamento del sistema in modo efficiente.
- Lo svantaggio principale di questa tecnica di test è che non possiamo fare affidamento su questa tecnica ogni volta.