Alla ricerca di libri (pubblicati o imminenti) e framework (preferibilmente gratuito / open-source) per i test sequenziali.
La mia comprensione dei test sequenziali è che è molto simile a un sistema Workflow, con i seguenti elementi:
- Una raccolta di Setup / Esercizio / Verifica set di routine (suite) - come in xUnit
- Facoltativamente, un set di routine può contenere anche:
- Teardown - che segna la fine del test sequenziale, dopo il quale l'intero stato del software verrà srotolato all'inizio.
- Annulla - che ripristina solo una singola operazione, prima del "Setup" della routine corrente impostata.
- Se un programmatore fornisce un annullamento, il programmatore garantisce la correttezza di tale Unfo. (Le asserzioni possono essere usate, anche se è meglio non usare nessun annullamento inaffidabile.) Se il programmatore non è sicuro, non fornire un annullamento.
- Facoltativamente, un set di routine può contenere anche:
- Ogni set di routine deve o fornire uno StartUp, o uno o più "passaggi precedenti" - la nuova parte per i test sequenziali
- Un avvio di avvio reinizializza sostanzialmente l'intero stato del software in modo garantito.
- I "passaggi precedenti" sono riferimenti ad altri set di routine.
- A differenza dei test delle unità, i test sequenziali sono autorizzati a passare gli oggetti al passaggio successivo, in un modo attentamente controllato.
Esempio:
- Routine A
- Crea un "readme.txt" vuoto. (interrompi il test se già esiste; condizioni non soddisfatte.)
- Verifica "readme.txt" esiste.
- Funzione di annullamento: elimina "readme.txt" se esiste.
- Routine B,
-
follows
routine A - Apri il file "readme.txt" per scrivere (cancella il contenuto precedente) *
-
Correlati: I test di scenari sono gruppi di test di unità sequenziali?
Carissimi, mi dispiace che la domanda sia andata perduta nel bel mezzo di un guasto imprevisto della macchina; quindi questo è stato recuperato da una precedente bozza di salvataggio automatico. Da quel crash ho esteso l'idea un po 'e mi occorreranno diversi giorni per ripulirlo e aggiornare questa domanda.
Le parole chiave sono:
-
Initial
[nuovo] (inizializza l'intero mondo) -
Setup
(verifica che le pre-condizioni siano soddisfatte per l'inizio di un passaggio e crei oggetti temporanei che aiutano con questo passaggio: questi oggetti temporanei cesseranno al termine di questo passaggio. Potresti chiamare questi oggetti "locali") -
Exercise
-
Verify
(asserzioni che il passaggio ha avuto successo) -
Undo
[nuovo] Questo metodo opzionale, se fornito, indica che esiste un modo per ripristinare completamente lo stato del mondo prima di questo passaggio. Se ne viene fornito uno, il programmatore garantisce la correttezza di tale annullamento. Se non sei sicuro, non fornirne uno. -
Final
[nuovo] Avvolge il mondo intero per lo smaltimento. Dopodiché, Initial può essere chiamato di nuovo per reinizializzare un secondo nuovo mondo. -
Follows
[nuovo] Definisce in che modo i passaggi possono essere concatenati.- Ogni passaggio di test che non è un passo
Initial
deve avere una o più istruzioniFollows
. Ogni istruzione può includere uno o più passaggi peer - tali passaggi devono essere eseguiti prima di poter richiamare questo passaggio.
- Ogni passaggio di test che non è un passo
Ora l'essenza. Una volta specificate tutte queste regole, il motore di esecuzione sequenziale del test enumera TUTTA la possibile sequenza di questi insiemi di passaggi. Enumera tutti i percorsi da Initial
a Final
, utilizzando qualsiasi passaggio intermedio che consente a un percorso di essere formata. Ti avviserà anche dei loop e di altri potenziali problemi e ti consentirà di scegliere come gestire questi loop.