test data management concept
Nell'ultimo tutorial ci siamo concentrati su come preparare il banco di prova per ridurre al minimo i difetti dell'ambiente di prova . In continuazione con lo stesso tutorial, oggi impareremo come impostare e mantenere l'ambiente di test e importantiTest Data Managementtecniche.
Processo di configurazione dell'ambiente di test
Il fattore più importante per l'ambiente di test è replicarlo il più vicino possibile all'ambiente dell'utente finale. Normalmente, gli utenti finali non sono tenuti a eseguire da soli alcuna configurazione o installazione poiché viene fornito loro un prodotto o sistema completo. Quindi, da tale definizione, anche i team di test non devono eseguire esplicitamente tali configurazioni.
Se tali configurazioni sono necessarie per scopi puramente di test (ma verranno configurate per gli utenti finali), è necessario identificare gli amministratori. Gli amministratori che configurano l'ambiente di sviluppo devono essere le stesse persone che configurano l'ambiente di test.
Se il team di sviluppo stesso prende l'iniziativa nell'installazione / configurazione, allora deve aiutare a fare lo stesso anche nell'ambiente di test.
Per esempio, se devi testare un'applicazione (con il suo middleware associato da installare e configurare) su un sistema su varie piattaforme OS, ecc. - il modo migliore per risolvere questo problema è usare virtualizzazione o ambienti cloud .
Avere un sistema master in cui tutte le applicazioni e il middleware necessario siano installati e configurati correttamente. Quindi rendi questo sistema un'immagine master catturandolo e clonando diverse istanze da questa stessa immagine in modo che ogni utente si senta come se avesse un sistema dedicato con l'applicazione sotto test.
Di seguito, una rappresentazione grafica di ciò che comporterebbe un processo di ambiente di test:
Processo di configurazione dell'ambiente di prova
Cosa imparerai:
Manutenzione di un ambiente di prova
Tanto detto sulla preparazione dell'ambiente di test, sebbene le sfide, questo è senza dubbio più che un motivo per richiedere la manutenzione o standardizzare l'ambiente di test. Molte volte, un tester perde il tempo di test a causa dell'ambiente o dei problemi di configurazione.
Con un rapido aumento dei sistemi operativi e della gamma di hardware e software, l'ambiente deve essere di natura quasi dinamica, al fine di far fronte alle esigenze. I team di test possono garantire di fornire un prodotto di alta qualità con un buon processo di gestione dei test e questo aiuterebbe ad avere un utilizzo ottimale delle risorse che sono limitatamente disponibili.
Indicatori chiave per garantire una manutenzione efficace dell'ambiente di prova
Poiché gli ambienti di test, la maggior parte delle volte contengono piattaforme e stack eterogenei, di seguito vengono presentati alcuni indicatori chiave per garantire una manutenzione efficace dell'ambiente di test.
# 1) Condivisione e distribuzione dell'ambiente efficace:
Come già accennato in precedenza, una delle principali sfide della preparazione dell'ambiente di test è che molti team o persone devono utilizzare lo stesso set di risorse per i loro scopi di test. Quindi è necessario sviluppare un meccanismo di condivisione adeguato che soddisfi le esigenze di tutti i team e le persone senza ritardare i programmi.
Ciò può essere ottenuto mantenendo un repository o un collegamento informativo in cui tutti i dati relativi a:
- chi usa l'ambiente,
- quando l'ambiente è libero di essere utilizzato e
- come viene inserita accuratamente la distribuzione del tempo di utilizzo dell'ambiente.
Determinando in modo proattivo dove il requisito delle risorse è grande rispetto alla disponibilità limitata di esse, una grande quantità di caos viene automaticamente annullata.
Il secondo aspetto è rivisitare i requisiti di risorse dei team per ciascuno ciclo di prova e cercare quali risorse non vengono utilizzate molto pesantemente. Analizza se quelle risorse particolari possono essere sostituite con nuove risorse o sistemi che potrebbero essere necessari.
# 2) controlli di sanità mentale:
Alcuni requisiti di test richiedono una configurazione o una configurazione di test completa che implichi passaggi elaborati che richiedono molto tempo. Questo è specificamente il caso durante il test end to end che coinvolge due o più componenti per lavorare insieme. Pertanto, lo stesso ambiente di test potrebbe dover essere riutilizzato da più team.
In questi casi, avere una buona comprensione dell'intero ambiente nel suo insieme, raccogliendo che tipo di test vengono eseguiti dai vari team, dipingerà un quadro ragionevole per aiutare a fornire quelle risorse specifiche ai rispettivi team.
Considerando i fattori di cui sopra, è possibile eseguire test di integrità di base che aiuteranno ad accelerare i test per i singoli team o li allarmeranno immediatamente se l'ambiente deve subire alcune modifiche o correzioni a seguito di tali controlli di integrità.
# 3) Tenere traccia di eventuali interruzioni:
Proprio come ogni team che possiede un ambiente di test ha il proprio, un'organizzazione dispone di tutti i possibili ambienti di test gestiti da un team di supporto globale.
Inoltre, proprio come i team che possiedono il proprio ambiente di test hanno il proprio tempo di inattività locale in caso di eventuali aggiornamenti firmware / software, i team globali devono anche garantire che tutti gli ambienti aderiscano agli standard più recenti che possono comportare interruzioni di alimentazione o di rete.
Pertanto, coloro che gestiscono l'ambiente di test devono tenere d'occhio eventuali interruzioni di questo tipo che possono verificarsi e informare in anticipo il team di test per pianificare il proprio lavoro di conseguenza.
# 4) Virtualizza ove possibile:
Questo è ancora una volta molto rilevante quando i test devono essere eseguiti condividendo l'ambiente e c'è un disperato bisogno di ottimizzazione delle risorse. In questi tempi l'utilizzo di un ambiente virtualizzato come un cloud a scopo di test è la risposta.
Quando si utilizza un tale ambiente, tutto ciò che i tester devono fare è fornire un istante e questa istanza una volta fornita, formerà un Test Bed o Ambiente di test indipendente contenente tutte le diverse risorse come un sistema operativo dedicato, database, middleware, framework di automazione , ecc. necessari per il test.
Una volta concluso il test, queste istanze possono essere distrutte riducendo notevolmente i costi per un'organizzazione. Gli ambienti cloud sono particolarmente utili per i test di verifica funzionale, aree di test di automazione.
# 5) Test di regressione / automazione:
input e output di file c ++
Man mano che vengono sviluppate nuove funzioni e caratteristiche, test di regressione devono essere eseguite per queste funzioni per ogni ciclo di rilascio. Quindi, anche se sul retro, gli ambienti di test per i test di regressione sembrano essere eseguiti sulla stessa configurazione di test con gli stessi dati, in realtà sono in continua evoluzione ad ogni versione in base alle funzionalità implementate.
Ogni ciclo di rilascio del prodotto prevede uno o più cicli di test di regressione. Stabilire così ambienti di test di regressione per ogni ciclo di rilascio del prodotto e riutilizzarli all'interno del ciclo, rappresenterebbe sicuramente la stabilità dell'ambiente di test.
Lo sviluppo di framework di automazione e l'utilizzo dell'automazione per i test regressivi, aiuta anche a migliorare l'efficienza di un ambiente di test perché l'automazione presumerà che l'ambiente sia stabile e che i difetti originati siano puramente orientati alle funzionalità / al codice.
# 6) Governance generale:
Quando si verificano problemi con l'hardware o il software dell'ambiente di test, questi problemi devono essere indirizzati alle persone giuste per garantire le correzioni se non possono essere risolti internamente da coloro che gestiscono il laboratorio.
Per esempio, Se un qualsiasi test dà origine a un difetto che comprende una limitazione nel firmware o nel software che viene utilizzato nell'ambiente corrente, questo generalmente non può essere risolto esclusivamente dai responsabili della manutenzione dell'ambiente.
Quindi al consumatore (che è il tester in questo caso) deve essere chiesto di sollevare richieste di servizio appropriate. Questi devono essere indirizzati al fornitore o al team appropriato e il coordinamento deve essere effettuato regolarmente con loro per garantire che la versione successiva abbia risolto il problema specifico.
Un altro aspetto della governance sarebbe fornire di volta in volta rapporti ambientali dettagliati alla direzione o alle parti interessate, il che aiuta a emanare trasparenza e costituisce una buona base per qualsiasi analisi.
Preparazione dei dati di prova
Diamo ora un'occhiata all'ultima parte di a Creazione del banco di prova - che implica l'impostazione dei dati di prova . Con una parte così grande che viene detta sull'ambiente di test, la vera essenza dell'ambiente di test, la sua robustezza ed efficienza possono essere misurate con i dati di test. Per definizione, i dati del test sono qualsiasi tipo di input fornito al codice software in fase di test.
Anche se dedichiamo una buona quantità di tempo alla progettazione di casi di test, il motivo per cui i dati di test sono importanti è perché garantiscono una copertura completa dei test per tutti i tipi di scenari, migliorando così la qualità. Potrebbero esserci alcuni dati di test necessari per qualsiasi test di percorso felice o positivo.
Alcuni altri dati potrebbero essere progettati per errori o test negativi, il che è molto utile per scoprire come funziona l'applicazione quando viene inserita in situazioni anomale.
I dati di test vengono generalmente creati prima dell'inizio dell'esecuzione del testo perché ogni ambiente di test ha il proprio insieme di complessità o la preparazione dei dati stessi può essere un processo lungo. Quindi, in genere, le origini dati di test potrebbero essere il team di sviluppo interno o gli utenti finali che utilizzano il codice o la funzionalità.
Per esempio,Test di funzionalità
Facciamo un esempio in cui è necessario eseguire test funzionali o test black-box. Qui l'obiettivo è che il codice deve funzionare funzionalmente per soddisfare i requisiti specificati.
Quindi, in questi casi, la preparazione dei casi di test dovrebbe generalmente avere la copertura dei seguenti tipi di dati:
- Dati di percorso positivo: Con il documento del caso d'uso di sviluppo come riferimento, questi sono i dati generalmente sincronizzati con l'esecuzione degli scenari di percorso positivo.
- Dati del percorso negativo: Si tratta di dati generalmente considerati “non validi” rispetto al corretto funzionamento funzionale del codice.
- Dati nulli: Non fornire dati quando l'applicazione o il codice si aspettano tali dati.
- Dati errati: Determinazione delle prestazioni del codice quando i dati vengono forniti in un formato illegale.
- Dati sulle condizioni al contorno: Testare i dati forniti dall'indice o dalla matrice per determinare le prestazioni del codice.
I dati dei test svolgono un ruolo chiave nell'identificazione dei punti in cui un prodotto o una funzionalità può rompersi completamente. Avere sempre una pratica di polling e convalida del tipo di dati inviati all'ambiente di test nelle diverse fasi del test.
Test Data Management
Quando i dati dei test giocano un ruolo così importante nell'assicurare la qualità del prodotto, è ragionevole affermare che la sua gestione e razionalizzazione giocano anche un ruolo altrettanto importante nella garanzia della qualità di qualsiasi prodotto che deve essere rilasciato ai clienti.
Necessità di gestione dei dati di test e best practice:
# 1) Molte organizzazioni stanno avendo obiettivi aziendali in rapida evoluzione per soddisfare le esigenze degli utenti finali e quindi è inutile menzionare che i dati di test appropriati sono fondamentali per determinare la qualità del test. Ciò comporterà l'impostazione del tipo esatto di dati per i rispettivi ambienti di test e il monitoraggio dei modelli comportamentali.
Come già discusso, una grande parte del tempo di un team di test viene impiegata nella pianificazione dei dati di test e delle attività correlate. Molte volte il test di qualsiasi funzionalità tende ad essere notevolmente ostacolato a causa della non disponibilità di dati di test appropriati, il che rappresenta una sfida critica rispetto alla copertura completa del test.
#Due) A volte anche per determinati requisiti di test i dati dei test devono essere costantemente aggiornati . Ciò causa di per sé un notevole ritardo nel ciclo a causa della costante rilavorazione che aumenta anche il costo dell'applicazione che raggiunge il mercato.
In alcuni altri momenti, se il prodotto spedito è coinvolto con diverse unità del gruppo di lavoro in una grande organizzazione, la creazione e l'aggiornamento dei dati di test richiedono un livello complesso di coordinamento tra questi gruppi di lavoro.
# 3) Anche se i team di test devono creare tutti i tipi di dati possibili per garantire un test adeguato, le organizzazioni devono anche considerare che ciò significherebbe che tutti i diversi tipi di dati devono essere archiviati in una sorta di repository.
Sebbene disporre di un repository sia una buona pratica, archiviare in modo eccessivo e dati indesiderati non solo aumenterebbe in modo significativo lo spazio di archiviazione per archiviare questi grandi blocchi di dati, ma renderebbe anche sempre più difficile recuperare i dati appropriati per il test in questione se non c'è manutenzione della versione e archiviazione di questo repository.
La maggior parte delle organizzazioni si trova generalmente ad affrontare queste sfide comuni rispetto ai dati di test. Pertanto, devono essere messe in atto alcune strategie di gestione per ridurre al minimo il grado di queste sfide.
Di seguito sono riportate alcune metodologie suggerite per la gestione dei dati di test e per mantenerli pertinenti alle esigenze di test. Le seguenti pratiche sono molto semplici e generiche e normalmente funzionano per la maggior parte delle organizzazioni. Il modo in cui viene adottato è a discrezione delle rispettive organizzazioni.
Testare le strategie di gestione dei dati
# 1) Analisi dei dati
In genere, i dati di test vengono costruiti in base ai casi di test da eseguire. Ad esempio in un team di test del sistema, il scenario di test end-to-end deve essere identificato in base al quale sono progettati i dati del test. Ciò potrebbe comportare il funzionamento di una o più applicazioni.
Ad esempio, in un prodotto che gestisce il carico di lavoro, coinvolge l'applicazione del controller di gestione, le applicazioni middleware, le applicazioni di database, tutte per funzionare in correlazione tra loro. I dati di test richiesti per lo stesso potrebbero essere sparsi. È necessario effettuare un'analisi approfondita di tutti i diversi tipi di dati che possono essere richiesti per garantire una gestione efficace.
# 2) Configurazione dei dati per rispecchiare l'ambiente di produzione
Si tratta generalmente di un'estensione del passaggio precedente e consente di comprendere quale sarà lo scenario dell'utente finale o di produzione e quali dati sono necessari per lo stesso. Utilizzare tali dati e confrontare tali dati con i dati attualmente esistenti nell'ambiente di test corrente. Sulla base di questi nuovi dati potrebbe essere necessario creare o modificare.
# 3) Determinazione del clean-up dei dati di test
In base ai requisiti di test nel ciclo di rilascio corrente (in cui un ciclo di rilascio può estendersi su un lungo periodo di tempo), potrebbe essere necessario modificare o creare i dati del test come indicato al punto precedente. Questi dati di prova, sebbene non immediatamente rilevanti, potrebbero essere richiesti in un secondo momento. Quindi dovrebbe essere formulato un chiaro processo per stabilire quando i dati del test possono essere puliti.
# 4) Identifica i dati sensibili e proteggili
Molte volte, per testare correttamente le applicazioni, potrebbe essere necessaria una grande quantità di dati molto sensibili. Per esempio, un ambiente di test basato su cloud è una scelta popolare perché esegue il rendering di test su richiesta di prodotti diversi.
Tuttavia, qualcosa di così semplice come garantire la privacy degli utenti in un cloud è motivo di preoccupazione. Quindi, soprattutto nei casi in cui avremo bisogno di replicare l'ambiente dell'utente, è necessario identificare il meccanismo per proteggere i dati sensibili. Il meccanismo è in gran parte governato dal volume dei dati di test utilizzati.
# 5) Automazione
Così come adottiamo l'automazione per eseguire test ripetitivi o per eseguire gli stessi test con diversi tipi di dati, è anche possibile automatizzare la creazione di dati di test. Ciò aiuterebbe a esporre eventuali errori che possono verificarsi rispetto ai dati durante il test. Un modo possibile per farlo è confrontare i risultati prodotti da una serie di dati da esecuzioni di test consecutive. Successivamente, automatizza questo processo di confronto.
# 6) Aggiornamento efficace dei dati utilizzando un repository centrale
Questa è di gran lunga la metodologia più importante e costituisce il cuore dell'implementazione della gestione dei dati. Tutti i punti sopra menzionati, in particolare quelli relativi alla configurazione dei dati, alla pulizia dei dati sono direttamente o indirettamente correlati a questo.
È possibile risparmiare molto impegno nella creazione dei dati di test mantenendo un repository centrale che contiene tutti i tipi di dati che possono essere richiesti per vari tipi di test. Come si fa? In cicli di test consecutivi, per un nuovo caso di test o per uno scenario di test modificato, controllare se i dati esistono nel repository. Se non esiste, inserisci prima i dati nell'ambiente di test.
Successivamente, questo può essere indirizzato a questo repository per riferimento futuro. Ora per cicli di rilascio consecutivi, il team di test può utilizzare tutti o un sottoinsieme di questi dati. Non è molto evidente il vantaggio? A seconda dei set di dati utilizzati di frequente, i dati obsoleti possono essere facilmente eliminati e quindi garantire che siano sempre presenti dati corretti, riducendo così il costo per l'archiviazione di dati non necessari.
In secondo luogo, puoi anche salvare un paio di versioni di questo repository o modificarlo se necessario. Avere versioni differenti del repository può essere di grande aiuto nei test di regressione per identificare quale cambiamento nei dati può causare l'interruzione del codice.
Conclusione
L'ambiente di test dovrebbe essere di primaria importanza in ogni team di test. Ogni ciclo di rilascio porterà tutta una serie di nuove sfide da combattere con un ambiente di test inaffidabile e non pianificato.
Come misura rivoluzionaria, molte organizzazioni stanno ora mettendo in atto strategie come la formazione di team dedicati alla manutenzione dell'ambiente di test che stabiliscono determinati framework per una manutenzione efficace degli ambienti di test, per garantire cicli di rilascio più fluidi.
Il miglioramento dei test è solo un effetto ovvio della semplificazione della gestione dei dati di test. Un'essenza fondamentale è che garantisce una soluzione conveniente per le organizzazioni senza scendere a compromessi sull'affidabilità del prodotto.
Facci sapere come gestisci il tuo ambiente di test e come prepari i dati di test? Vuoi aggiungere qualche suggerimento?
Lettura consigliata
- I 14 MIGLIORI strumenti di gestione dei dati dei test nel 2021
- I 10 migliori strumenti di analisi dei dati per una perfetta gestione dei dati (2021 LIST)
- Tutorial sulla gestione dei test: una guida definitiva alla gestione dei test
- Cosa sono i dati del test? Testare le tecniche di preparazione dei dati con l'esempio
- Funzione pool di dati in IBM Rational Quality Manager per Test Data Management
- Creazione di Selenium Framework e accesso ai dati di test da Excel - Selenium Tutorial # 21
- Testare la generazione dei dati con lo strumento online GEDIS Studio (Parte 2)