? Visualizzazione rapida
Attraverso la modellazione per migliorare l'efficienza dei vostri test automatici.
test manuale e di superare i limiti della automazione di collaudo statico.
Nota: Si deve leggere la storia è immaginaria - è molto breve, ma l'implicazione è vera.
Nel ciclo di prodotto, quattro tester di iniziare a testare il software su richiesta.
? Tester 1
Iniziare immediatamente un test manuale, e ha trovato alcuni errori minori. Sviluppo del team felice per riparare questi errori, e fornire una nuova versione del software per il test. Le prove più e ha trovato più errori, i bug più fisso.
Testers un grande senso di soddisfazione che sarebbe anche felice - almeno per un periodo di tempo è questo.
Dopo varie tornate di questa scoperta, del ciclo di riparazione, ha iniziato come un manuale di oltre e più volte a ripetere il test eseguito essenzialmente la stessa sensazione sordo e insensibile. I membri di una perdita finale del test positivo - significa anche perdere la pazienza - si domanda il software può essere rilasciato.
Gli utenti trovano così sbagliato, così acquistare prodotti concorrenti.
? Tester 2
Fin dall'inizio test manuale, ma rapidamente determinati a creare gli script di test automatizzati pulsante più significativo. Con attenzione per trovare il software utile per chi utilizzerà una parte del test, il tester di operare registrato 2 script. Questi script ben presto raggiungerà diverse centinaia. Premere un pulsante, lo script è attivato e seguire i passaggi per eseguire il software.
Tester due credo che sia molto intelligente, anche sarà felice - almeno per un periodo di tempo è questo.
Quando cambia il software, lo script richiede molta manutenzione. Trascorse qualche settimana e gli sviluppatori affermano, chiedeva la fine di modificare il software, perché mina il test automatizzato. Infine, lo script richiede un sacco di manutenzione così poco tempo a sinistra per il test.
Quando il software è stato rilasciato, gli utenti a trovare che lo script non comprende troppi errori. Si fermano acquistare il prodotto e ha deciso di aspettare per la versione 2 release.
? Tester 3
Non voglio mantenere centinaia di script di test automatizzati. Ha scritto un programma di test per tutto il applicazione di click casuali e premere il pulsante. Questo "casuali" le procedure di prova non devono visualizzare e trovato un sacco di errori fatali.
Tester 03:00 di godere di queste carenze colpisce trovato, sarà felice - almeno per un periodo di tempo.
Poiché il programma di test a campione ha rilevato che coloro che possono solo distruggere errore dell'applicazione, il test doveva ancora fare un sacco di membri di tre prove manuali, e presto nel processo è stato noioso e insensibilità. Quando il software è stato rilasciato utenti nella funzionalità del software si trovano in tanti errori sulla perdita della compagnia di fiducia, in modo da smettere di acquistare il software.
? Tester 4
Attraverso dei test manuale, test esplorativi acquisire familiarità con l'applicazione - ottenuti con il test manuale per l'applicazione della conoscenza per creare un modello molto semplice comportamentali. Tester 4 e poi usare un programma di test per verificare se l'applicazione di comportamento e di prevedere il consenso. Comportamento rispetto al modello testato per una semplice multi-applicazione, quindi è molto facile da creare. Poiché il programma di prova che l'applicazione deve farlo se l'applicazione può rilevare quando è sbagliato.
Con il ciclo di sviluppo prodotto, lo sviluppatore di applicazioni per scrivere le nuove funzioni. Tester quattro rapidamente aggiornato modello, test può continuare. Il programma può essere eseguito giorno e notte, ha continuato a generare una nuova sequenza di prova. Tester 4 volte in più di una macchina in grado di eseguire un test, saranno più giorni di test in una notte per il completamento.
Dopo varie tornate di prove e correzioni di bug, il tester genera il programma di prove ha cominciato 4 trovati alcuni errori. Aumentare tester per testare il comportamento dei 4 modelli aggiornati, e quindi continuare la prova. Test 4 sarà per l'applicazione della modellizzazione di alcuni di coloro che non meritano di fare qualche test manuali e l'automazione di collaudo statico.
Quando il tester è uscito 4 release del software, solo un errore molto piccolo può essere trovato. Utenti felice. Investitori felice.
4 tester felice.
? Commento
I quattro scenari mostrano l'attuale numero di metodi disponibili test del software.
Tester 1 è un test tipico manuale, da tastiera per eseguire manualmente tutte le prove. test manuali dell'industria corrente sono comuni - può fornire benefici diretti, ma a lungo andare farà tester sono noioso, costoso in termini di società.
"Ho visto una delle scena più tragica è un'operazione manuale nella tastiera di cose che può essere eseguito automaticamente. E 'triste, ma anche interessante."
- Boris Beizer, Black Box Testing: il software di test e funzione di sistema
Tester 2 in pratica ciò che io chiamo un collaudo statico di automazione di test. script di automazione statica sulla base dello stesso ordine ogni volta di eseguire la stessa sequenza di comando. Quando un'applicazione per modificare lo script in cui i costi di manutenzione elevati. Prova viene ripetuta, ma perché sempre eseguire il comando stesso, è difficile trovare un nuovo errore.
"I test altamente ripetibile scoperto che tutte le questioni importanti effettivamente ridurre al minimo la possibilità di esso e lungo le orme di altri, prima che il mondo presto trovato la loro ragione di ridurre al minimo le possibilità che la stessa"
- James Bach, "un test automation bugia," Windows Technical Journal, 1996,10
Tester 3 azioni vicino al bordo di test automatizzati. Questi tipi di programma di test a caso nota come la scimmia stupida è inutile, perché toccare la tastiera. Generano non convenzionale sequenza di esecuzione di test e ha scoperto che molti errori fatali, ma vorrebbe tenerli sotto controllo in applicazione che si desidera testare alcuni di essa è molto difficile. Perché non sanno quello che fanno, così passeranno inosservati, molte delle applicazioni errore manifesto.
"Test Monkey-simili non possono testare tutti voi. Scimmie non capisco la sua domanda, a causa della loro ignoranza, mancano un sacco di errori".
- Noel Nyman, "utilizzando gli strumenti di testing stile scimmia", SQTE, 2004,1 / 2
4 da tester chiamato "model-driven di prova" intelligente approccio automazione dei test di integrare i metodi di altri tester.
Model-driven prova l'automazione dei test non è statico come un resoconto integrale delle sequenze di prova, non vedenti di giocare in Jianpanshangqiao. test basato su modelli attraverso l'applicazione della descrizione per determinare quale operazione è possibile, l'uscita è prevista. Continua in questo modo genera automaticamente una nuova sequenza di prova, un buon cambiamento per adattarsi alla domanda può anche funzionare su più macchine, e può funzionare tutto il giorno.
"Un artista dipinge con la sua saggezza, non con la mano."
- Michelangelo Buonarroti
La morale di questa storia
test manuale è quello di iniziare l'automazione dei processi di test, il modo migliore. Mi riferisco a questo stadio, conosciuto come "modello sperimentale", perché unisce processo esplorativo di prova e di testare il modello utilizzato per il processo di rilevamento. Quando si inizia a capire il comportamento di ogni operazione, è possibile creare per modellare e testare l'applicazione delle norme.
Testers bisogno di un modo di tenere la mano sulla tastiera lavoro a. I membri di una prova estenuante finale.
Tester 2 script statico a ripetere le mani fuori quelli che hanno attuato tastiera.
Tester tre test scimmia-type è essenzialmente priva di oggetto sulla tastiera Luanqiao.
Tester 4, d'altra parte, ha dovuto aggiungere altre tecnologie:
1. Riflessione domanda comportamento,
2. Comportamento La descrizione di una procedura di generazione del test
3. Per verificare la generazione del programma per creare ed eseguire casi di test.
Descritto in base al comportamento domanda attraverso il test di generazione, i tester da 4 a svolgere quelle che utilizzano altri metodi di test non possono realizzare il test.
La morale di questa storia: l'automazione del vostro cervello, non solo la vostra mano.
? Usa il tuo cervello
Cerchiamo di creare e utilizzare un modello di comportamento per testare l'esempio di applicazione.
test manuale è quello di iniziare l'automazione dei processi di test, il modo migliore. Mi riferisco a questo stadio, conosciuto come "modello sperimentale", perché unisce processo esplorativo di prova e di testare il modello utilizzato per il processo di rilevamento. Quando si inizia a capire il comportamento di ogni operazione, è possibile creare per modellare e testare l'applicazione delle norme.
Questa è l'essenza del test model-driven: in base a un test può essere usato per generare un modo per descrivere il comportamento. Hai voglia di prova per ogni azione, chiedetevi due domande:
1. Quando questa operazione è possibile?
2. Quando questa operazione viene eseguita quando l'uscita è che cosa?
Ad esempio, supponiamo che vi viene chiesto di verificare il comportamento dei file nella directory di Windows. Per essere più precisi, si deve testare per creare, eliminare, e il funzionamento anti-selezione.
? Per creare il modello operativo
1. Quando è possibile creare? Per semplicità, in questo caso per limitare il numero di file nella directory di 1. E 'solo nella directory sono 0 file può essere creato.
2. Quando si crea viene eseguita quando l'uscita è che cosa? Quando si è in una directory, creare un nuovo file, i file nella directory numero più 1. Il file appena creato è selezionata di default, così è nella directory più luminoso. In realtà questo nuovo file è selezionato in questa directory solo i file, indipendentemente dal numero di creare operazione è selezionato in precedenza.
? Per il modello Wikipedia
1. Quando la cancellazione è possibile? Solo quando la directory di almeno un file selezionato viene eliminato quando è possibile.
2. Quando la cancellazione viene eseguita quando l'uscita è che cosa? Quando si esegue l'operazione di eliminazione, la directory di ogni file selezionato scomparirà.
? Per l'anti-selezione del modello
1. Quando anti-selezione è possibile? In questo modello, l'anti-selezione è sempre possibile, anche se la directory contiene 0 file.
2. Quando l'anti-selezione viene eseguito, l'uscita è che cosa? Quando si seleziona un anti-operazione, la directory di tutti i file selezionati non saranno più selezionata e tutti i file selezionati non saranno selezionati. Quando la directory ha 0 file, l'anti-selezione per directory rimangono invariate.
? La creazione di un modello di stato
Mostrato nella Figura 1, ora si può costruire un comportamento del sistema, "modello di stato". Quelle descritte sopra agire insieme. Si noti che le operazioni contro il file dello stato selezionato da 0 documenti di indicare la via del ritorno a 0. E simulare l'anti-selezione quando non c'è bisogno di fare nulla quando la situazione.
Figura 1 modello di stato
Beh, questo è il prossimo?
Ora capisci come le applicazioni di lavoro, allora si può verificare manualmente il funzionamento e il controllo della directory di Windows è in linea con i cambiamenti auspicati. Tuttavia, a causa della vostra comprensione sono presenti nel vostro cervello, i risultati del test influenzato anche dal vostro tempo e vincoli fisici.
D'altra parte, se è possibile modellare questo stato completamente dal vostro cervello trapiantate nel computer, il computer sarà in grado di aiutarti a creare ed eseguire il test per il sistema.
Fortunatamente, questo modello può essere identificato da un computer noto come "tabella di stato" nella forma di espressione. tabella di stato (vedi Tabella 1) mostrano che un ricorso per ogni riga dello stato iniziale della domanda sarà raggiungere la fine dello stato.
Start stato finale funzionamento in
0 file 0 contro il file selezionato
0 file selezionati i file per creare un
Il file selezionato non è anti-selezionare un file selezionato
Un file selezionato per cancellare 0 documenti
Un file selezionato contro-selezionare un file selezionato
Tabella 1 per la directory di Windows nella tabella di stato del file comportamento
usa anche il cervello del computer
Una volta che il modello di Stato sarà convertito in un computer in grado di capire la tabella di stato, il computer si può fare? Come possiamo usare il nostro comportamento delle applicazioni collegate a quelle informazioni?
Il computer può essere utilizzato per generare la tabella sequenza di stato di prova per testare l'applicazione. Si vedrà nel seguente esempio, secondo la novità di queste sequenze di prova, o la loro efficacia complessiva per selezionarli. L'applicazione di questa generazione di test è di comprendere il vostro sistema uno strumento potente - questo è il contenuto basato su modelli del test.
modello di Stato sulla linea casuale
operazioni di test generato un modo semplice disponibili in applicazione dello stato attuale di una scelta arbitraria di funzionamento. Per esempio, se si avvia a 0 documenti di stato, si può scegliere una qualsiasi delle seguenti due operazioni a:
1. Anti-selezionati (in modo ancora a 0 documenti dello stato)
2. Per creare (consentono di rimanere in uno stato di file selezionato)
Gestione sono stati scelti a caso in questo modo, è possibile generare un numero di sequenza non convenzionali (come tester 3 casuale "procedura di prova di scimmia") piuttosto che alla fine si sarà in grado di applicare tutte le operazione di modello. La Figura 2 mostra un tipico percorsi casuali. Si noti che questa strada casuale a svolgere nel giro di quattro operazioni simili (anti-selezione), ma si mette il resto l'attuazione di due operazioni non altri. Questo è il test a campione della situazione reale.
Figura 2, un percorso casuale
Attuazione dello stato di funzionamento del fine
1 Creare un documento di essere eletti
2 Anti-Selezionare un documento non è selezionata
3 anti-Selezionare un documento di essere eletti
4 Anti-Selezionare un documento non è selezionata
5 Anti-Selezionare un documento di essere eletti
modello di Stato di una linea efficace: percorso postino cinese
Quando il modello è molto grande per raggiungere tutte le operazioni di test, in conformità con la linea casuale è molto inefficiente. Come possiamo effettivamente verificare il modello per ogni operazione?
Un postino consegna lettere incontrati nello stesso numero. Previste nel modello è la consegna dei messaggi per ogni operazione deve andare per le strade - il modello per ogni stato è di cambiare la direzione del crocevia del postino. Come il postino a piedi tutte le strade per recapitare il messaggio, dobbiamo anche verificare il modello per ogni operazione. In entrambi i casi, vogliamo ridurre la lunghezza necessaria per il percorso più breve.
Un tubo chiamato il matematico cinese Mei Gu per il rilascio di una buona soluzione, questo è l'algoritmo postino cinese (vedi figura 3). metodo del tubo di generare un modello di prugne valle della linea di stato, il percorso con il minor numero di passaggi per l'attuazione del modello di tutte le operazioni. Le sequenze di prova di seguito vengono elencati solo cinque passi per coprire il modello in cinque tipi di funzionamento. Per un test rapido voi, questo grande efficienza in termini di applicazione è molto utile.
Figura 3 un percorso postino cinese
Attuazione dello stato di funzionamento del fine
Un anti-Seleziona 0 documenti
2 Creare un documento di essere eletti
3 anti-Selezionare un documento non è selezionata
4 Anti-Selezionare un documento di essere eletti
5 Eliminare 0 documenti
Una soluzione più efficace: i cinesi strada statale postino cambiamento
Modello di alcune operazioni - come quando la directory ha 0 cliccare su documenti anti-Select - non cambia lo stato di applicazione. Se pensate che quando l'applicazione di modifiche di stato più incline a errori, è possibile cambiare il carattere prioritario di tale test di funzionamento.
Un modo semplice è di non cambiare lo stato di funzionamento della tabella di stato nel filtro. Per la tabella 1, è necessario rimuovere la prima azione (anti-selezione).
In questo modello semplificato stato eseguito postino cinese algoritmo per generare un modello con una copertura in quattro fasi di tutti lo stato cambiare il funzionamento della sequenza di prova - in sostanza il primo passo per l'esempio precedente per rimuovere:
Attuazione della fine dello stato di funzionamento
1 Creare un documento di essere eletti
2 Anti-Selezionare un documento non è selezionata
3 anti-Selezionare un documento di essere eletti
4 sono soppressi 0 documenti
Il percorso più breve di nuovo alla condizione iniziare
Supponendo che si desidera testare pienamente tutte le directory di Windows per ottenere lo status di file da 0 a 0 passi indietro dopo che il file di stato della sequenza di prova. Questo ha prodotto un cambiamento costante di sequenze di prova per l'automazione di test in termini di membro statico 2 è impensabile.
Caso in base al modello di Stato per il computer ha generato una serie di questo percorso è trascurabile. È possibile generare aumento della durata della sequenza di prova fino a quando il computer a morire per, questo modello può essere più approfondimenti.
Un passo nel percorso sono:
A1: Anti-selezione
Percorso B ha due fasi:
B1: Creazione
B2: Cancella
Percorso C dispone di quattro fasi:
C1: creare
C2: Anti-selezione
C3: anti-selezione
C4: Cancella
Figura 4 o meno, lo stato di loop in quattro fasi
Computer mano
L'output di ogni algoritmo è la necessità di eseguire l'operazione di test della sequenza. Qual è il modo migliore per eseguire queste operazioni? È possibile usare l'elenco al personale di eseguire manualmente un test - ma di sicuro è lento, faticoso, e doloroso. Chi ha voglia di spendere tutto il loro tempo sulla realizzazione di tali operazioni. Questo tipo di lavoro ripetitivo è così doloroso ai tester un colpevole.
In alternativa, è possibile scrivere una semplice implementazione di prova del programma di leggere la lista ed eseguire ogni operazione per la lista di codice di prova.
Ad esempio, utilizzando Visual Test, codice di prova per creare l'attuazione del sistema sono:
WToolbarButtnClick ("@ 1", "File")''Aprire il menu File
WMenuSelect ("Nuovo")''Select File Nuovo
WMenuSelect ("Documento di testo")''Scegli Documento di testo
Play "(Invio)"''Accettare il nome predefinito
In un tipico automazione statica, questo codice sarà integrato nello script - ma in un programma di test model-driven, questo codice sarà solo un breve elenco delle operazioni di prova sarà necessario eseguire creare operazione è chiamato.
Utilizzando gli occhi del computer
Operazione di test automatizzati solo metà della battaglia. È inoltre necessario disporre di un diritto automatico di giudicare se i metodi di applicazione del lavoro.
Questo approccio - un metodo utilizzato per valutare l'applicazione è il modo corretto di rispondere per testare il funzionamento - noti come "criteri di prova. Alcuni metodi di prova, come tester random 3 scimmie procedure di prove di tipo, il ricorso deve essere basato sul fatto che l'incidente è simile al dolore dei criteri di controllo.
test basato su modelli per essere in grado di esaminare la procedura di prova che il "sistema di non crollare", il comportamento di indicatori più specifici. Secondo le informazioni di stato tabella nel modello di sapere quali azioni ciascuno stato sono disponibili e risultati attesi di ciascuna operazione. Ad esempio, il modello ha sottolineato che il programma di prove in uno stato del file selezionato operazione di cancellazione può essere eseguita. I modelli sono inoltre sottolineato che i risultati della attuazione della operazione di eliminazione è di fare domanda per entrare 0 documenti di Stato. Questa conoscenza fornisce due applicazione di test si esegue correttamente l'approccio.
In primo luogo, il programma di test può determinare se la realizzazione delle azioni non può essere eseguita. Se l'applicazione è in uno stato del file selezionato non può eseguire l'operazione di eliminazione, procedure di collaudo verrà segnalato un errore, perché l'alternativa non può trovare la voce di menu per cancellare programma di test avrà esito negativo.
In secondo luogo, il modello di sapere sempre in che stato la domanda deve essere inserito. Conoscere le aspettative della fine di ogni condizione operativa significa che possiamo creare un programma di prova per verificare i criteri (alla fine di ogni operazione) directory di adeguato numero di file e numero di file da eleggere. Ad esempio, quando l'operazione di eliminazione viene eseguita, lo stato finale dovrebbe essere una directory con 0 file (naturalmente, cioè, 0 file selezionati).
linguaggio procedurale di solito fornisce le procedure di prova può essere utilizzata per testare i vari aspetti della funzione di controllo dell'applicazione. Due paia del modello attuale della funzione visiva test è utile:
WviewCount () ha sottolineato che il numero di file nella directory,
WviewItemSelected () ha sottolineato che il numero di elenco di file da eleggere.
programma di prova per verificare se l'applicazione è in uno stato, come mostrato nella tabella 2. Applicazione delle aspettative attese stato WviewCount del valore di ritorno di ritorno valore WviewItemSelected
0 0 0 file
Un file selezionato 11
Un file non selezionati 10
La tabella 2 mostra la funzione di Visual Test WviewCount () e WviewItemSelected () nella tabella di stato
Elimina le operazioni di cui sopra consentirà alle applicazioni di accedere 0 documenti di Stato. Se WviewCount () restituisce un non valore 0, le procedure di test le linee guida segnalerà un errore, il numero di file perché la directory non è corretto.
Come aggiornare i test model-driven
Ricorda tester provare 2 statiche applicazione di automazione di test che cambia come le persone diventano lo scoraggiato? Al contrario, 4 tester di sfruttare l'automazione dei test model-driven di adattarsi rapidamente ai cambiamenti nella domanda.
La nuova operazione saranno integrati nel modello
Supponiamo che il vostro team di dire che hanno realizzato l'operazione di selezione. Come voi come una nuova operazione per aggiornare il test? È semplice - aggiornare lo stato del proprio modello in l'operazione di selezione, poi ri-generare test.
In primo luogo, rispondendo a due domande fondamentali che noi, come Model Select:
1. Quando Select è possibile? Selezionare questo modello è sempre possibile, anche se solo 0 files della directory.
Selezionare viene eseguita quando l'uscita è che cosa? Quando si esegue una elezione piena, tutti i file nella directory diventa selezionata. Se la directory ha 0 file, selezionare tutti non farà cambiare la directory. Questa icona nelle istruzioni di seguito su tutta l'operazione da 0 file di stato selezionato a 0 documenti di Stato.
La Figura 5 mostra che, dopo la fusione Selezionare un modello nuovo stato.
Figura 5 contiene l'intero modello di stato selezionato
Nel modello aggiornato (vedi figura 6) per eseguire l'algoritmo postino cinese è stata una prova di nove passo sequenza - con 0 file dello stato come uno stato di start - l'attuazione del modello, tutte le operazioni, compreso il funzionamento della nuova elezione Canada-larga :
Figura 6, il nuovo stato del modello cinese percorso postino
Attuazione della fine dello stato di funzionamento
Un anti-Seleziona 0 documenti
2 Creare un documento di essere eletti
3 anti-Selezionare un documento non è selezionata
4 Selezionare un documento che deve essere eletto
5 Anti-Selezionare un documento non è selezionata
6 Anti-Selezionare un documento di essere eletti
7 Selezionare un documento che deve essere eletto
8 soppresso 0 documenti
9 Selezionare 0 documenti
Il passo successivo è quello di determinare tutte le operazioni elettorali per il codice di chiamata, indipendentemente dalla sequenza delle operazioni quando il test si è verificato. Utilizzare il test visivo il codice è il seguente:
WtoolButtnClick ("@ 1", "EDIT")
WmenuSelect ("Seleziona tutto")
? Sintesi
Comprendere l'applicazione e la sua modellazione richiede uno sforzo considerevole. Abbandona la linea di semplici test manuali e automatici linea statica abbastanza a lungo per testare, mentre il tempo a pensare a come spendere per testare l'applicazione è difficile - come vediamo la storia immaginaria dei quattro test condotti da tester e la sofferenza vissuta come.
Ma abbiamo avuto è stato enorme:
1. Model-Driven Development quasi dal primo giorno di prove ha cominciato a creare un test di automazione flessibile e utile.
2. Modifica del modello è molto semplice, prova così model-driven per il mantenimento del progetto di ciclo di vita è molto economico.
3. Il modello può essere, sulla base di necessità di generare sequenze di prova numerosi.
4. Model consente di completare ulteriori test in un tempo breve, perché una procedura di generazione di prova può essere tutto il giorno su più macchine per creare e verificare la sequenza di prova.
5. Test basato su modelli possono integrare altre forme di sperimentazione, ad attuare quelle di altri metodi di prova non può essere realizzato sotto la prova.
Tu ed io sappiamo che il test del software non è una storia di fantasia, non può garantire che l'intero processo è piacevole. Ma nel vostro test per l'intelligenza model-driven sarà felice di aiutarvi a trovare la fine principale di uno strumento potente.