Cos'è il test di configurazione? Casi di test di esempio

⚡ Riepilogo intelligente

I test di configurazione eseguono un'applicazione su diverse combinazioni di software e hardware, consentendo al team di verificare che i requisiti funzionali siano soddisfatti ovunque e di identificare la configurazione ottimale per il rilascio.

  • 🧩 Scopo: OperaSistemi operativi, browser, versioni di database, driver, memoria e periferiche sono tutti elementi da considerare come configurazioni.
  • 📐 Due tipi: I test di configurazione del software riguardano le piattaforme e gli aggiornamenti; i test di configurazione hardware riguardano i dispositivi collegati.
  • 🗂️ Prima la matrice: Crea una matrice di combinazione, poi assegnale una priorità, perché una copertura esaustiva è insostenibile dal punto di vista economico.
  • Macchine virtuali: Le istantanee sostituiscono i ripetuti cicli di installazione e disinstallazione sulle macchine di test fisiche.
  • 🏦 Esempio pratico: Un'applicazione bancaria e i relativi modelli di macchine contabanconote illustrano alcuni casi di test hardware.
  • ???? Fallimento deliberato: La rimozione intenzionale di un prerequisito mette in luce difetti che un laboratorio completamente attrezzato nasconde.

Test di configurazione su diverse combinazioni software e hardware.

Test di configurazione

Test di configurazione È una tecnica di test del software in cui l'applicazione viene testata con molteplici combinazioni di software e hardware, al fine di valutare i requisiti funzionali e trovare le configurazioni ottimali in base alle quali l'applicazione funziona senza difetti o malfunzionamenti.

Una configurazione è qualsiasi combinazione che il prodotto deve supportare: una versione del sistema operativo, un browser, una versione del database, un driver, una dimensione della memoria o una periferica collegata. Vale la pena separare questo da test di compatibilitàche chiede se il prodotto coesiste con altri software e piattaforme. Il test di configurazione pone una domanda più specifica: la stessa build si comporta ancora correttamente quando cambia la sua configurazione supportata?

Esempio di test di configurazione

Consideriamo un'applicazione desktop come esempio pratico.

Le applicazioni desktop sono generalmente costruite in forma a 2 o 3 livelli. Prendiamo un'applicazione desktop a 3 livelli sviluppata in ASP.NET, costituito da un Client, un Business Logic Server e un Database Server, dove ogni componente supporta le piattaforme elencate di seguito.

  • Piattaforma client – Windows XP, Windows 7, Windows 8, e così via
  • Piattaforma server – Windows Server 2008, Windows server 2008 R2, Windows Server 2012 R2
  • Banca dati - SQL Server 2008, SQL Server 2008 R2, SQL Server 2012 e così via.

Il tester deve testare contemporaneamente client, server e database su tutte le piattaforme e versioni di database supportate, per confermare che l'applicazione funzioni correttamente e non presenti errori in nessuna combinazione supportata.

Il test di configurazione non si limita al software. Si applica anche all'hardware, motivo per cui la parte hardware viene definita test di configurazione hardware: stampanti, scanner, webcam e dispositivi simili che l'applicazione in fase di test deve supportare. La matrice seguente mostra come vengono disposte queste combinazioni prima dell'inizio dell'esecuzione del test.

Matrice di test di configurazione delle combinazioni client, server e database

Prerequisiti per il test di configurazione

Prima di iniziare il test di configurazione di qualsiasi progetto, è necessario che siano soddisfatti tre prerequisiti.

  • Creazione di una matrice che elenchi le varie combinazioni di configurazioni software e hardware.
  • Dare priorità a queste configurazioni, perché testarle tutte non è realistico.
  • Testare ciascuna configurazione nell'ordine stabilito da tale prioritizzazione

Obiettivi del test di configurazione

Il test di configurazione si propone di raggiungere i seguenti obiettivi.

  • Convalidare l'applicazione rispetto ai requisiti di configurabilità.
  • Provocare deliberatamente guasti per far emergere difetti che i test ordinari non rilevano, ad esempio modificando le impostazioni regionali come il fuso orario, la lingua o il formato della data.
  • Determinare la configurazione ottimale dell'applicazione in fase di test
  • Analizzare le prestazioni del sistema al variare delle risorse hardware, ad esempio aggiungendo bilanciatori di carico, aumentando o riducendo la memoria o collegando diversi modelli di stampante.
  • Analizzare l'efficienza del sistema rispetto alla prioritizzazione, valutando in che misura i test hanno utilizzato le risorse disponibili per raggiungere la configurazione ottimale.
  • Verificare il sistema in un ambiente geograficamente distribuito, ad esempio con il server in una posizione e i client in un'altra, dove il sistema dovrebbe funzionare indipendentemente dalle impostazioni del sistema locale.
  • Verificare con quale facilità i difetti si riproducono al variare della configurazione.
  • Conferma che gli elementi dell'applicazione rimangono tracrendibile attraverso una documentazione adeguata e registrazioni di versione chiaramente identificabili
  • Confermare che gli elementi dell'applicazione rimangono gestibili durante tutto il ciclo di vita dello sviluppo del software

Come eseguire il test di configurazione

La strategia dipende da quale dei due tipi di test di configurazione è incluso nell'ambito del test.

  • Test di configurazione del software
  • Test di configurazione hardware

Test di configurazione del software

Il test di configurazione del software esegue l'applicazione in fase di test su diversi sistemi operativi, aggiornamenti software e versioni delle dipendenze. È un processo che richiede molto tempo, perché ogni ciclo prevede l'installazione e la disinstallazione del software coinvolto.

Un modo comune per ridurre quel costo è testare su macchine virtualiUna macchina virtuale è un ambiente installato in un software che si comporta come un hardware fisico, consentendo al tester di lavorare come se si trovasse su una macchina reale, mentre la configurazione stessa è temporanea. Le macchine virtuali simulano le configurazioni reali in modo sufficientemente fedele per la maggior parte dei controlli funzionali.

Anziché installare e disinstallare l'applicazione su diverse macchine fisiche, questa viene installata su una macchina virtuale e i test proseguono da lì. L'esecuzione in parallelo di diverse macchine virtuali, ciascuna ripristinata da uno snapshot, semplifica notevolmente il lavoro.

Il test della configurazione del software può in genere iniziare quando

  • I requisiti di configurabilità da testare sono specificati
  • Migliori ambiente di test è pronto
  • Il team di collaudo è specializzato nel collaudo della configurazione.
  • La versione rilasciata ha superato i test unitari e di integrazione.

L'altezza tipica strategia di prova Una strategia consiste nell'eseguire la suite di test funzionali su ogni configurazione software e verificare che l'applicazione si comporti come previsto, senza difetti o errori. Una seconda strategia consiste nel far fallire deliberatamente i casi di test e verificare con quale efficienza il sistema gestisce la situazione.

Esempio:

Prendiamo un'applicazione bancaria che deve essere testata su più browser. Ospitata in un ambiente in cui sono presenti tutti i prerequisiti, potrebbe superare i test unitari e test d'integrazione nel laboratorio di prova.

Installata presso la sede di un cliente, la stessa applicazione potrebbe non funzionare correttamente perché i computer in questione non dispongono di aggiornamenti software o delle versioni delle dipendenze da cui l'applicazione dipende, direttamente o indirettamente. Far fallire deliberatamente i test, rimuovendo alcuni requisiti di configurazione e ripetendoli, è il modo migliore per individuare questo tipo di difetto prima che il cliente se ne accorga. La schermata seguente mostra la riproduzione di un errore dipendente dalla configurazione in un ambiente controllato.

L'applicazione bancaria non funziona su un computer client a causa della mancanza dei prerequisiti.

Test di configurazione hardware

I test di configurazione hardware vengono generalmente eseguiti in un laboratorio che ospita macchine fisiche con diversi componenti hardware collegati.

Ogni volta che viene rilasciata una nuova build, il software viene installato su ciascuna di queste macchine e la suite di test viene eseguita su ognuna di esse, per confermare che l'applicazione funzioni con il dispositivo collegato.

Questo compito richiede uno sforzo considerevole: installare il software su ogni macchina, collegare l'hardware e quindi eseguire la suite manualmente o automatizzandola.

È inoltre necessario specificare il tipo di hardware da testare. L'hardware e le periferiche dei computer sono così vari che è impossibile coprirli tutti; pertanto, il tester analizza quali dispositivi sono effettivamente utilizzati dagli utenti e li testa in base a tale priorità.

Casi di test campione

Consideriamo uno scenario bancario testato per la compatibilità hardware. Un'applicazione bancaria collegata a una macchina contabanconote deve funzionare con diversi modelli, come Rolex, Strob, Maxsell e StoK.

Campione casi test per la macchina contabanconote includere quanto segue.

  • Verificare la connessione tra l'applicazione e il modello Rolex quando i prerequisiti NON sono installati
  • Verificare la connessione tra l'applicazione e il modello Rolex una volta installati i prerequisiti.
  • Verificare che il sistema conti correttamente le note.
  • Verificare come il sistema segnala un errore di conteggio
  • Verificare la gestione delle banconote manomesse.
  • Verifica i tempi di risposta
  • Verificare che le banconote false vengano rilevate

Questi casi riguardano un singolo modello, e ogni altro modello presente sul mercato deve essere configurato in un laboratorio di prova e testato allo stesso modo, cosa raramente fattibile internamente. Affidare i test di configurazione hardware a un'organizzazione specializzata è spesso l'opzione più realistica.

DOMANDE FREQUENTI

I test di configurazione variano la configurazione supportata dal prodotto stesso (sistema operativo, versione del database, dispositivo collegato) e ripetono la suite di test. I test di compatibilità verificano che il prodotto sia compatibile con software, piattaforme e browser esterni con cui deve interagire.

Il numero di dispositivi supportati è proporzionale al rischio. L'ordine viene stabilito in base all'analisi dei dati di utilizzo: vengono prese in considerazione prima le combinazioni di piattaforma, browser e dispositivo più utilizzate dagli utenti, seguite dalle specifiche minime supportate.

Solitamente, il team di controllo qualità, supportato dagli amministratori di sistema che predispongono gli ambienti, si occupa di questa attività. Per i prodotti che richiedono un'elevata componente hardware, la copertura dei dispositivi fisici è affidata a un team di laboratorio dedicato o a uno specialista esterno.

Piattaforme di macchine virtuali e container per configurazioni software, laboratori di dispositivi o farm di dispositivi cloud per hardware e browser e un automazione di test framework per riprodurre la stessa suite su ogni configurazione.

L'esplosione combinatoria, il costo delle licenze e dei dispositivi fisici, la lentezza del provisioning degli ambienti e i difetti che si riproducono solo su una configurazione. La prioritizzazione e la virtualizzazione risolvono la maggior parte di questi problemi.

Dopo il superamento dei test unitari e di integrazione, e in genere contestualmente ai test di sistema, questa procedura viene ripetuta prima di ogni rilascio principale, poiché una nuova versione del sistema operativo o dei driver può invalidare i risultati precedenti.

I modelli classificano le combinazioni di configurazione in base all'utilizzo reale e ai dati storici sui difetti, in modo che la matrice venga ridotta alle righe a più alto rischio. Inoltre, raggruppano i guasti per mostrare quali condividono un'unica causa di configurazione.

Sì. Genera schemi di test parametrizzati, script di provisioning dell'ambiente e definizioni di job CI che eseguono una suite su diverse configurazioni. La matrice stessa deve comunque provenire dall'elenco delle piattaforme supportate.

Riassumi questo post con: