Condividi tramite


Testing esplorativo del software

James Whittaker è un partner Development Manager a Bing, Microsoft. È un tranne librerie di progettazione a Dispositivi che era responsabile del test del riquadro, mappe e applicazioni web di Dispositivi. James è uno dei nomi più presente nel test ovunque e ha creato diversi bestseller su test del software. Ospita anche un inserimento blog su MSDN.

Luglio 2012

Questo argomento è tratto dal libro Test esplorativo software: Suggerimenti, trucchi, presentazioni e tecniche per la progettazione del test della guida.

Si applica a

Gestione del ciclo di vita di un'applicazione, Visual Studio, TFS

Obiettivi di testing esplorativo

Testing esplorativo – piano di test

Testing esplorativo per i team agile

Il testing esplorativo può coesistere con test basati su script pianificato

Lo scenario in base alle analisi

Presentazioni di testing esplorativo

Nel testing esplorativo, i tester possono interagire con l'applicazione in alcun modo desiderato e utilizza le informazioni che l'applicazione fornisce reagire, il corso di modifica e in genere descritte le funzionalità dell'applicazione senza catch. Può sembrare ad hoc a parte, ma le mani di un tester esplorativo esperto e esperto, questa tecnica può tentare efficace. Gli sostenitori sostengono che il testing esplorativo consente la piena potenza del cervello umano essere applicato a trovare i bug e a verificare la funzionalità senza restrizioni preesistenti.

Lo svantaggio di testing esplorativo è che i tester rischiano di sprecare moltissimo tempo che vaga intorno a un'applicazione per trovare le operazioni al test e che tenta di individuare i bug. La mancanza di preparazione, di progettazione e dell'istruzione può condurre a molte ore improduttive e ritentare la stessa funzionalità ripetutamente. È possibile verificare che il test completamente ad hoc non è chiaramente il modo migliore per spostarsi su test. I tester che apprendere sugli input, gli ambienti software e le altre operazioni che è possibile variare durante la sessione di test saranno più chiaramente attrezzati esplorare la propria applicazione a funzione e lo scopo. Queste competenze vengono fornite informazioni per testare migliore e più intelligenti e per ridurre le possibilità di identificare i problemi seri di implementazione e di progettazione.

Obiettivi di testing esplorativo

  • To gain an understanding of how an application works, what its interface looks like, and what functionality it implements: tale scopo è quello adottato spesso tester nuovi a un progetto o a coloro che desiderano identificare i punti di ingresso del test, identifica le problematiche specifiche di test e scrive i piani di test. È inoltre l'obiettivo utilizzata dai tester esperti come passare un'applicazione comprendere la profondità delle esigenze di test e individuare la nuova funzionalità inesplorata.

  • To force the software to exhibit its capabilities: l'idea consiste nel software per essere difficile e per chiedergli domande e quelle immesso con i passi. Ciò può individuare i bug, ma sicuramente fornire l'evidenza che il software esegue la funzione per il quale è stato progettato e che soddisfa le esigenze.

  • To find bugs: che esplorano i bordi dell'applicazione e premere i punti softkey potenziali è una specializzazione di testing esplorativo. L'obiettivo è utile, anziché disorientato, l'esplorazione identificare la funzionalità non tentata e passato a errori. I tester esplorativi non devono inciampare semplicemente tramite i bug, devono zero in su essi a funzione e lo scopo.

Testing esplorativo – piano di test

Il test del software è complicata da un overload delle possibilità di variazione gli input e percorsi di codice per dichiarare, dati archiviati e ambiente operativo. Effettivamente, se si sceglie di utilizzare tale variazione prima di test scrittura dei piani di test o tramite un approccio esplorativo che consente la pianificazione e il test da interfogliare, è un'attività impossibile. Indipendentemente dal quale si esegue il test, è sufficiente troppo complesso per farvi completamente.

Tuttavia, le tecniche esplorative hanno il vantaggio che favoriscono i tester la pianificazione mentre il test e utilizzare le informazioni raccolte durante il test per influire sul test della modalità viene eseguito. Si tratta di un vantaggio principale sui piano- primi metodi. Imagine che tenta di stimare il giocatore ha vinto di Super Bowl o la Premier League prima della stagione avvia. È difficile da eseguire prima che venga mostrato come i team stanno riproducendo, quali stanno gestendo la concorrenza e se gli attori chiave possono evitare la lesione. Le informazioni inserite mentre la stagione vengono illustrate le contiene la chiave per stimare il risultato con un numero qualsiasi di precisione. Lo stesso vale per test del software e il testing esplorativo abbraccia questo tentativo di pianificazione, testare e ripianificare in piccoli incrementi in corso la guida da una conoscenza approfondita di tutti passati e di informazioni aggiornate su come il software in esecuzione e dagli attacchi che rende durante il test.

Testing esplorativo per i team agile

Il testing esplorativo è particolarmente adatto allo sviluppo di applicazioni web moderno utilizzando i metodi agile. I cicli di sviluppo sono short, lasciando breve tempo per scrivere e manutenzione formali dello script. Le funzionalitàevoluzione spesso rapidamente, in modo da ridurre gli elementi dipendenti quali i test case preparati in anticipo) è un attributo appropriato. Se il test case è consigliabile possibilità di essere banale, perché scrivala prima? Non è l'impostazione manualmente in per richiedere più tempo che gestisce i test case che effettivamente utilizzando il test?

(Per alcuni esempi degli strumenti agile per testing esplorativo in Visual Studio e in TFS, vedere Esecuzione del test esplorativo tramite Microsoft Test Manager, Test delle applicazioni Windows Store in esecuzione su un dispositivo utilizzando la finestra di test esplorativae Esecuzione di test in Microsoft Test Manager.)

Il testing esplorativo può coesistere con test basati su script pianificato

Non è necessario visualizzare il testing esplorativo in alternativa rigida AA test manuale basato su script. Infatti, i due possono coesistere sufficiente piacevolmente. Includere script convenzionali può fornire una struttura di navigazione frame e i metodi esplorativi possono aggiungere un elemento di modifica agli script che possono migliorare la propria efficienza. Il modo migliore per che ha rilevato per combinare le due tecniche iniziando con gli script convenzionali e di utilizzare le tecniche esplorative per inserire la variazione in essi. Questa modalità, un singolo script può finire la conversione in un numero qualsiasi test case esplorativi effettivi.

Il test basato su script tradizionale genere un punto iniziale delle storie utente o gli scenari completi documentati che si avrà utenti finali di eseguire. Questi scenari possono provenire dalla ricerca dell'utente, dati da versioni precedenti dell'applicazione, e così via e utilizzati come script per testare il software. L'elemento aggiunto di testing esplorativo a test per lo scenario amplia l'ambito di script per inserire la variazione, la ricerca e i percorsi facoltativi dell'utente.

Lo scenario in base alle analisi

Per individuare basata sullo scenario riguarderà i casi in cui il test semplice lo scenario e con maggiore precisione non riproduce gli utenti reali, che si smarriscano spesso lo scenario principale: Dopo tutti, il prodotto consente molte variazioni possibili. È necessario non solo prevedere che si ottengano, non è necessario verificare che vengano eseguiti.

L'idea dietro a testing esplorativo basato su scenario prevede di utilizzare gli scenari esistenti molto simile alle finestre di esplorazione reali utilizzano un mapping per guidarsi in un'area selvaggia o un altro campo non familiare. Gli scenari, ad esempio i mapping, è una guida generali su cui eseguire durante il test, che introduce per selezionare e percorsi di codice attraversare, ma non sono assoluti. I mapping è possibile descrivere la posizione della destinazione ma offrire più modalità situazione. Inoltre, il tester esplorativo viene offerto le route alternate e persino è opportuno prendere in considerazione una vasta gamma di percorsi possibili quando esegue uno scenario. Infatti, ovvero lo scopo esatto di questa forma di testing esplorativo: per testare la funzionalità descritta dallo scenario, aggiungendo l'utilizzo di variazione possibile. Il termine "mapping" non è previsto per identificare le route di breve, è progettata per trovare più route. In è possibile testare, il migliore; ne conseguono più necessaria per il software eseguirà lo scenario più affidabile quando viene affidata agli utenti che possono devieranno e da nostre aspettative.

Uno scenario utile eseguita in genere uno o più dei seguenti:

  • Racconti una storia utente

  • Descrive un requisito

  • Vengono descritti il funzionamento di una funzionalità

  • Presentare uno scenario di integrazione

  • Descrivere l'impostazione e l'installazione

  • Descrivere le utilizzo e le operazioni che potrebbero andare errate

I tester esplorativi devono essere difficile per verificare raccolta di tutti gli scenari possibile in tutte queste categorie. Viene quindi la l'attività seguire gli scenari e inserire la variazione come vediamo il contributo. Viene illustrato come viene scelta per inserire questa variazione che semplifica l'attività esplorativa in natura e che rappresenta l'oggetto non si disattiva subito dopo.

Per un esempio di utilizzo del testing esplorativo utilizzando gli strumenti agile in Visual Studio e in TFS, vedere Procedura: avviare una sessione di test esplorativo in Microsoft Test Manager.)

Presentazioni di testing esplorativo

Se si visualizzano grande città come London, Inghilterra, per il primo tempo. È un grande, posto occupato e fuorviante per i nuovi turisti, con molta di elementi da visualizzare e scegliere. Effettivamente, anche il più dettagliato, la maggior parte di turista valore non vincolato avrebbe una difficoltà che visualizza tutti una città come Londra deve supportare. Lo stesso oggetto può essere parte dei tester ben attrezzati che tentano di esplorare il software complessi, il finanziamento il mondo non garantirà la completezza.

Il turismo trae vantaggio da una combinazione di progettazione e di flessibilità e pertanto esegue il testing esplorativo. Esistono molte metafore di visita della quale aggiungere la struttura alla visualizzazione e a ottenerci con le nostre applicazioni più veloce e più completo dello stile dinamico che testiamo singolarmente. Molte delle presentazioni inserite in una maggiore strategia di test e possono inoltre essere combinati con la valutazione basata su scenario tradizionale che determinerà esattamente quale presentazione è organizzata.

Qualsiasi discussione di pianificazione del test deve iniziare con scomposizione del software in parti di dimensioni inferiori sono più piccole. Ma le funzionalità di test possono precludere indipendente individuare i bug che si verificano solo quando la funzionalità interagiscono reciprocamente. Fortunatamente, la metafora turistica insiste su tale scomposizione. Invece, suggerisce la scomposizione in base a scopo anziché in una struttura intrinseca dell'applicazione sottoposta a test. Come un turista che si avvicina alla vacanza con l'intento per visualizzare il più possibile in modo anomalo in un periodo possibile, pertanto il tester anche organizzerà le presentazioni. Un effettivo turista selezionerà una combinazione di punti di riferimento per visualizzare e di siti da visualizzare e un tester anche sceglierà per combinare le funzionalità del software con l'intento per eseguire operazioni di specifico. Questo scopo spesso richiede un numero qualsiasi di funzionalità e funzioni dell'applicazione da combinare in modo che non siano state se funzionassimo in un modello rigido di test della funzionalità.

La presentazione della guida

Le guide di turisti identificano i migliori hotel, i migliori azienda e le attrazioni superiori, senza immettere troppi dettagli o possibile che un turista con troppe opzioni. L'elemento analogo per testing esplorativo è il manuale dell'utente, se viene visualizzato o implementato come Guida in tal caso, spesso questo viene chiamata la presentazione F1 per indicare il collegamento alla maggior parte dei sistemi della Guida. Per questa presentazione, seguiremo il consiglio manuali dell'utente come viaggiatore il conto, mai dalla deviazione dalla rete.

La presentazione dei costi

Ogni posizione che desidera i turisti deve contenere buone ragioni affinché possano bloccarsi. Per Las Vegas, viene i casinò e la linea e per Egitto) è le piramidi. Per i tester esplorativi che cerca le funzionalità dei costi vengono eseguiti direttamente alla forza di vendita. Le persone di vendita passano moltissimo tempo che forniscono i demo delle applicazioni e sono una fonte di informazioni fantastica per la presentazione di valuta. Per eseguire la presentazione, è sufficiente passare i demo manualmente e individuare i problemi. Mentre il codice del prodotto viene modificato per le correzioni dei bug e nuove funzionalità, è possibile che demo verrà interrotto e non solo è stato trovato un grande bug, ma avere salvato la forza di vendita da qualche sufficiente imbarazzo grave.

La presentazione di riferimento

Come ragazzo che cresce in terreni, in prati e di legno di Kentucky, è appreso come utilizzare una bussola controllando il fratello meno recente. Il processo è semplice. Utilizzare la bussola per individuare un punto di riferimento (un albero, una roccia, una faccia di scogliera, e così via) nella direzione in cui si desidera accedere, effettuare la modalità a quel punto di riferimento e individuare il punto di riferimento successivo, e così via., e così via. Fintantoché i punti di riferimento sono contenuti nella stessa direzione, è ottenerti tramite una patch di legno denso di Kentucky.

La presentazione di riferimento per i tester esplorativi è simile al sceglieremo i punti di riferimento e realizzeremo la stessa luppolizzazione di riferimento tramite il software tramite un insieme di strutture. Scegliere un set di punti di riferimento, decidere di un ordine corrispondente e passare l'applicazione che unisce il punto di riferimento al punto di riferimento finché non viene visualizzato tutti nell'elenco. Tenere traccia dei punti di riferimento è stato utilizzato e creare un mapping di copertura di riferimento per tenere traccia dello stato di avanzamento.

La presentazione intellettuale

Ero una volta durante una presentazione di consultazione di Londra in cui la guida è un signore negli anni50 che hanno supportato all'inizio coesistere di Londra tutta la sua durata. Un collega turista appariva per essere uno studioso che era presente nella cronologia inglese e costantemente viene chiesto alle domande difficili della guida. Non è opportuno essere uno scatto, ma era curioso e che in combinazione con la conoscenza finita è una combinazione pericolosa… almeno guida. Quando applicata a testing esplorativo, questa presentazione intraprende l'approccio di porre domande e del software. Come facciamo eseguito il software difficile possibile? Le funzionalità lo adatteranno ai suoi limiti? Ciò che vengono illustrati i dati lo farà sì per eseguire la maggior parte dell'elaborazione? Gli input potrebbero imbrogliare le relative routine di controllo degli errori? Gli input e dati interni solleciteranno la funzionalità produrre output affatto specifico?

Fedex visita

Fedex viene visualizzata l'icona del mondo del pacchetto consegna. Accettano i pacchetti, si spostano intorno ai core diversi di distribuzione e li invia alla destinazione finale. Per questa presentazione, anziché i pacchetti spostamento intorno al pianeta tramite il sistema di Fedex, si pensi ai dati che si spostano dal software. Durante questa presentazione, un tester deve concentrarsi su tali dati. Provare a identificare gli input archiviati e "seguali" intorno al software. Ad esempio, quando un indirizzo viene inserito in un sito di spesa, dove è ottiene visualizzare? Funzionalità che lo utilizzano? Se viene utilizzato come indirizzo di fatturazione, assicurarsi che caratterizza esercizio. Se viene utilizzato come indirizzo di trasporto, assicurarsi di utilizzare le funzionalità. Se può essere aggiornato, aggiornilo. Viene mai visualizzato o purgato o elaborato? Tentare di trovare ogni funzionalità che si tocca dei dati per, esattamente come Fedex gestisce i pacchetti, coinvolti in ogni fase del ciclo di vita dei dati.

La presentazione del Garbage Collector

Coloro che raccoglie un'operazione di marciapiede conoscono spesso i residenti e la polizia di vicinanze meglio anche perché vanno via via, da casa da casa e acquisiscono familiarità con ogni interessati nella strada. Tuttavia, poiché hanno fretta, non rimane molto tempo in un'unica posizione. Per il software, questo è come un controllo saltuario metodico. È possibile decidere al controllo saltuario l'interfaccia in cui andiamo schermo lo schermo, la finestra di dialogo dalla finestra di dialogo (che ottimizza per, ad esempio il Garbage Collector, le route di breve) e non arrestando test in dettaglio, ma controllare le operazioni comuni (ad esempio la presentazione del top-model). È possibile utilizzare questa presentazione per passare funzionalità della funzionalità, il modulo il modulo, o da qualsiasi altro punto di riferimento che è utile per l'applicazione specifica.

La presentazione di Male- vicinanza

Ogni città opportuno visualizzare sono corrette vicinanze e aree che un turista è consigliabile modo da evitare. Il software dispone di vicinanza- che tali sezioni di codice è popolato dai bug. Naturalmente, non è noto in anticipo le funzionalità è probabile rappresentare corrette vicinanze. Ma quando vengono rilevati dei bug e segnalati, è possibile connettersi determinate funzionalità con numeri di bug ed è possibile tenere traccia dei bug bottiglia nel prodotto. Poiché i bug tendono a raccogliere, deve rivedere le sezioni con errori del prodotto è una presentazione opportuno utilizzare. Effettivamente, quando la sezione con errori del codice viene identificata, si consiglia di utilizzare la presentazione di un Garbage Collector tra le funzionalità vicini per verificare che le correzioni non siano stati introdotti nuovi bug.

La presentazione del museo

Musei che le antichità vengono visualizzate un preferito di turisti. Le antichità all'interno di una codebase meritano lo stesso tipo di attenzione tester. In questo caso, le antichità software sono codice legacy. I file di codice meno recenti che subiscono la revisione o che vengono inseriti in un nuovo ambiente tendono a essere errori incline. A sinistra lungo e la documentazione relativa agli sviluppatori originali spesso insufficienti, il codice legacy potrebbe essere difficile da modificare, difficile rivedere e elude la rete di unit test gli sviluppatori (in genere chi scrive tali test solo per il nuovo codice. Durante questa presentazione, i tester devono identificare il codice precedente e gli eseguibili e verificare che ricevono una parte equa di attenzione di test.

La presentazione finale del vicolo

Nell'occhio di più utenti, una buona presentazione è una in cui si visualizzano i modi più comuni. L'opposto di tali presentazioni sarebbe una in cui vengono visualizzati i punti in cui nessun altro è possibile passare. In termini di testing esplorativo, ovvero le funzionalità meno probabili da utilizzare e quelle che sono meno la facilità degli utenti. Se le barre di avanzamento dell'organizzazione presentano l'utilizzo, questa presentazione è dirigerà per verificare che nella parte inferiore dell'elenco. Se l'organizzazione tenere traccia delle code coverage, questa presentazione è implora per trovare le modalità per verificare il codice da analizzare.

La presentazione qualsiasi - Nighter

Anche noto come la presentazione di bastonatura, questa viene per le persone che rimangono indietro in ritardo e premere i locali notturne. La chiave è qualsiasi notte. I tester esplorativi durante la presentazione qualsiasi - Nighter terranno la propria applicazione in esecuzione senza chiuderla. E file da aprire. Spesso, se si preoccupano di salvarli in modo da evitare qualsiasi potenziale che viene reimpostato l'effetto che potrebbe verificare il salvataggio. A risorse remote e mai disconnettono. Mentre tutte queste risorse sonoutilizzo costante, possono anche eseguire test utilizzando le presentazioni per impedire l'esecuzione del software e spostando i dati in. Se fanno questa è sufficientemente lungo, possono trovare i bug che altri tester non troveranno in quanto il software viene negata tale operazione pulita che si verifica quando viene riavviata.

La presentazione del top-model

Per questa presentazione, che si desidera individuare in apparenza. Qualsiasi caso, non andare oltre superficiale. Questa presentazione non riguarda funzione o sostanza, vengono illustrati gli aspetti e le prime impressioni. Durante la presentazione del top-model, non ha lo stato attivo su funzionalità o sull'interazione reale. È solo sull'interfaccia. Si consideri la presentazione e verificare gli elementi dell'interfaccia. Aspetto bello? Eseguire correttamente il rendering e sono le prestazioni buone? Quando si apportano modifiche, il GUI aggiornare correttamente? Opera in modo corretto è elementi imprevisti lasciati sullo schermo? Se il software viene utilizzato il colore in una modalità per esprimere un certo senso, questa operazione viene eseguita coerente? Sono i pannelli GUI internamente coerenti con pulsanti e controlli in cui si prevede venga essere? L'interfaccia viola convenzioni o gli standard?

La presentazione del pantofolaio

È sempre una persona per una presentazione del gruppo non partecipa esattamente. È viceversa con le armi piegate. È alesato, unenergetic ed effettua una meraviglia esattamente perché è preoccupato di pagare la presentazione per primo. Una presentazione di patate di istruttore significa eseguire il lavoro effettivo poco possibile. Indica l'accettazione di tutti i valori predefiniti (valori precompilate dall'applicazione, se si lascia vuota dei campi di input, compilando come in pochi dati del form possibile, mai facendo clic su un annuncio, il paging dalle schermate senza fare clic sui pulsanti o fornire i dati, e così via. Se c'è qualsiasi scelta passare da una modalità all'applicazione o un altro, la patate di istruttore utilizza sempre il percorso minore resistenza.

La presentazione ossessiva

I tester rumore ossessivo compulsivo avranno più volte nello stesso input. Realizzeranno la stessa azione ripetutamente. Ripeteranno, ripeteranno, copieranno, incolleranno, occorrerà in loan e poi faranno tutti che in minima parte di più. In genere, il nome del gioco è ripetizione. Richiedere un elemento in un sito di e-commerce quindi ordinilo ancora per controllare se uno sconto più di acquisto viene applicato. Digitare alcuni dati su uno schermo, quindi restituisce immediatamente per spostarlo nuovamente. Ovvero azioni che gli sviluppatori non pianificato spesso i casi di errore per. Possono determinare la distruzione significativa.

Gli sviluppatori stanno ritenendo spesso a un utente che esegue le operazioni in un ordine specifico e utilizzando il software con scopo. Ma gli utenti effettuano gli errori e devono tracciatura e non siano spesso percorso specifico che lo sviluppatore ha in base a essi e assumono il proprio. Questo può comportare una combinazione di utilizzo posta con attenzione gli sviluppatori per eseguire il fallback rapidamente dal bordo.

Il test è complesso, ma l'utilizzo efficace delle tecniche esplorative può consentire addomesticato che la complessità e contribuisce alla produzione di software di alta qualità.

Vedere anche

Altre risorse

Procedura: avviare una sessione di test esplorativo in Microsoft Test Manager

Procedura: creare un nuovo test case manuale da una sessione di testing esplorativo

Esecuzione del test esplorativo tramite Microsoft Test Manager