what is infrastructure testing
Questa guida completa al test dell'infrastruttura copre i vantaggi, le sfide, gli strumenti e le metodologie di test dell'infrastruttura:
L'infrastruttura è condivisa tra molti progetti. Il test dell'infrastruttura è il test delle dipendenze hardware e software necessarie per eseguire i prodotti software. Aiuta a coprire i rischi del prodotto relativi all'infrastruttura di destinazione.
Questo tutorial ti aiuterà a imparare da zero i test dell'infrastruttura. Tratteremo dettagli completi come vantaggi e sfide, chi può eseguire, quando eseguire e tecniche per eseguire questo test. In questo tutorial vengono trattati anche gli strumenti di test dell'infrastruttura.
Cosa imparerai:
- Cos'è l'infrastruttura?
- Che cos'è il test dell'infrastruttura?
- Metodologie di test delle infrastrutture
- Strumenti di test dell'infrastruttura
- Conclusione
Cos'è l'infrastruttura?
L'ecosistema dell'infrastruttura IT include piattaforme di sistemi operativi (come Windows, UNIX, Linux, macOS), piattaforme hardware per computer (come Dell, IBM, Sun, HP, Apple), piattaforme Internet (come Apache, Cisco, Microsoft IIS, .NET ), Gestione dati e archiviazione (come IBM DB2, Oracle, SQL Server, MySQL) e applicazioni software aziendali (come SAP, Oracle, Microsoft).
Che cos'è il test dell'infrastruttura?
Ogni software richiede un'infrastruttura per eseguire le sue azioni. Il test dell'infrastruttura è il processo di test che copre hardware, software e reti. Implica il test di qualsiasi codice che legge i valori di configurazione da elementi diversi nel framework IT e li confronta con i risultati previsti.
Riduce i rischi di fallimento. Questo test include esercizi e procedure di test per garantire che le applicazioni IT e l'infrastruttura fondamentale siano ottimizzate per fornire esecuzione, adattabilità, qualità incrollabile, accessibilità, prestazioni e scalabilità. L'obiettivo è testare l'infrastruttura tra ambienti di test, strumenti di test e ambienti d'ufficio.
Perché è necessario il test dell'infrastruttura?
Le organizzazioni spendono molti dollari per assicurarsi che le loro applicazioni aziendali siano testate alla perfezione. Tuttavia, la base di base, ovvero l'infrastruttura che ospita e trasmette queste applicazioni, viene occasionalmente testata e generalmente sottovalutata.
tipo di bug nei test del software
Il test dell'infrastruttura è necessario per mitigare il rischio di guasto di qualsiasi componente hardware o software. Quando viene preparato un nuovo progetto di infrastruttura per il software, diventa necessario eseguire questo test. È necessario per garantire che la nuova funzionalità dell'infrastruttura funzioni come previsto. I problemi sorgono più probabili quando un nuovo modulo infrastrutturale viene integrato con il progetto.
I guasti dell'infrastruttura si verificano quando non è pianificato alcun test sull'infrastruttura scalabile. Pertanto, per evitare interruzioni e problemi dell'ultimo minuto, è necessario eseguire questo test.
Questo test è necessario per identificare i difetti che non sono stati rilevati in modo efficiente durante i diversi processi di test. Diventa importante analizzare l'applicazione software ogni volta che vengono modificate le risorse hardware e software. Viene fatto per analizzare l'efficienza e le prestazioni del sistema.
L'implementazione tempestiva di questo tipo di test è necessaria perché i progetti comportano un costo elevato per l'infrastruttura. Pertanto, è necessaria una buona conoscenza di questo test per ridurre al minimo i costi coinvolti nei rischi del progetto. Per evitare errori, questo test è necessario come standard del settore.
Quali sono i vantaggi del test dell'infrastruttura?
L'approccio pianificato ed esaustivo del test dell'infrastruttura offre molti vantaggi a un prodotto software e alle organizzazioni.
Alcuni dei vantaggi sono elencati di seguito:
- Riduzione dei fallimenti di produzione.
- Miglioramento nell'identificazione dei difetti prima dell'esecuzione della produzione. Migliora la qualità dell'infrastruttura con zero scarti di difetti nella produzione.
- Esecuzione dei test più rapida, abilitazione al go live anticipato.
- Aiuta a risparmiare sui costi annuali sia nelle operazioni che negli affari.
- Verificare che il software funzioni in una procedura sistematica e controllata.
- Riduzione dei tempi di fermo.
- Miglioramento della qualità del servizio.
- Disponibilità di ambienti stabili.
- Riduzione dei costi coinvolti nei rischi.
- Migliore esperienza utente.
Sfide del test delle infrastrutture
Diamo un'occhiata ad alcune sfide che le aziende devono affrontare quando cercano di adottare i test dell'infrastruttura.
# 1) Ambiente remoto
Gli ambienti o le risorse di test sono posizionati in località topograficamente remote, facendo affidamento ai team di test sui gruppi di supporto nell'area per gestire le sfide relative ad apparecchiature, componenti hardware, componenti software, reti, ecc. ritardi, in particolare dove le squadre si trovano in fusi orari diversi.
# 2) Assenza di un team dedicato
La mancanza di conoscenza tra il team è una sfida importante per eseguire questo test. È necessario un team dedicato per mantenere le informazioni relative a tutte le attività, inclusi orari, piani, copertura e rapporti sullo stato.
# 3) Indagine sui problemi dell'ambiente di test
Molte volte i problemi dell'ambiente di test non possono essere risolti e sono necessarie indagini. È necessario il coordinamento con le squadre interessate fino a quando il problema non viene risolto.
# 4) Mantenere gli ambienti in un unico posto
Il mantenimento di un magazzino comune di ambienti di test, la loro vecchia compatibilità, così come le ultime versioni, rappresentano una grande sfida durante l'esecuzione di questo test. I dettagli sulla connettività e le configurazioni di tutte le versioni non vengono mantenuti.
# 5) Lavoro manuale
Poche attività coinvolte in questo test richiedono un lavoro manuale poiché non sono disponibili strumenti. Ciò porta a errori umani e ritardi nel processo.
# 6) Mancanza di definizione standard per il test dell'infrastruttura
La maggior parte delle persone non è ancora a conoscenza dell'implementazione e dei processi. Conoscenza e comprensione improprie spesso portano a difficoltà di attuazione. Sorgono molti nuovi problemi che possono influire sulla stabilità del processo.
# 7) Squadre isolate
C'è un grande divario tra le posizioni dei team. Questo di solito porta a una mancanza di trasparenza e uno scarso lavoro di squadra.
Chi può eseguire i test dell'infrastruttura?
Vari team sono coinvolti in questo tipo di test. Questi sono spiegati di seguito:
# 1) Team di test dell'infrastruttura
Il team di test dell'infrastruttura ha un buon gruppo di conoscenze relative a questo test. Sono anche coinvolti con il team di garanzia della qualità. Questo team sa come testare l'infrastruttura IT. Questo team sa come progettare casi di test per questo tipo di test.
# 2) Team dell'amministratore di sistema
Il team dell'amministratore di sistema spesso testa l'infrastruttura a livello di rete. Team design e documenta casi di test in base alla loro esperienza. Sono responsabili di garantire che le applicazioni non subiscano alcun impatto dopo qualsiasi modifica nella rete.
# 3) Team di manutenzione dell'infrastruttura
Questa squadra gioca un ruolo molto importante. Sono coinvolti in una fase iniziale e sono responsabili di impostare gli ambienti di test secondo i requisiti. Partecipano alla pianificazione dei test e alla manutenzione degli ambienti infrastrutturali.
# 4) Team di garanzia della qualità
Il team di controllo qualità è responsabile dell'esecuzione del test di regressione. Sono anche coinvolti nei test di integrazione. Eseguono test su diversi ambienti di test creati secondo diverse infrastrutture.
# 5) Project Manager
Il project manager è responsabile della gestione del progetto. Sono coinvolti nella pianificazione, progettazione, documentazione dei casi di test richiesti per questo tipo di test. Un Project Manager è sincronizzato con tutti i team.
Quando eseguire il test dell'infrastruttura?
È urgente eseguire questo test ogni volta che vengono introdotte modifiche relative all'infrastruttura.
Esempi di tali modifiche sono:
- Qualsiasi nuova patch nel sistema viene sviluppata.
- Eventuali nuovi aggiornamenti di sistema vengono verificati.
- Qualsiasi aggiornamento nel sistema operativo.
- La versione / struttura del database viene aggiornata.
- Quando è disponibile l'upgrade della memoria per i server.
- Implementazione del nuovo strumento.
- Correzioni di sicurezza.
- Aggiornamento del software.
A volte questo tipo di test diventa più importante quando si verifica la migrazione del database o del data center. È necessaria maggiore attenzione quando si verificano cambiamenti rapidi e diversificati nelle applicazioni e quando sono coinvolte migrazioni dell'infrastruttura.
Viene eseguito anche quando viene introdotto il supporto di nuovi dispositivi per il software.
Esempio:
- Nuovi laptop / desktop
- Nuovi dispositivi mobili
- Nuovi strumenti di terze parti
Metodologie di test delle infrastrutture
Abbiamo diversi moduli in questo. Alcuni di loro sono elencati di seguito:
- Infrastruttura server / client
- Migrazione dei dati
- Test dell'infrastruttura in cloud
- Test a livello di rete
- Installazione / Disinstallazione / Distribuzione
- Infrastruttura dell'ambiente di test
- Approccio TDD
# 1) Infrastruttura server / client
I server includono server Web, file server, server di posta, server proxy, server virtuali e server fisici su hardware. Il client include OS, applicazioni, impostazioni utente, ecc. I server eseguono diversi servizi e questi servizi possono essere utilizzati dai client.
L'obiettivo principale è testare la qualità di server, desktop, sistemi operativi e hardware. I componenti server / client vengono testati per garantire il miglioramento delle prestazioni dell'infrastruttura nell'ambiente di produzione. Comprende anche test di installazione o disinstallazione di applicazioni, test di compatibilità del browser, test di integrazione con diverse versioni del sistema operativo e impostazioni utente.
Procedura:
- La cosa più importante è raccogliere i requisiti dagli stakeholder.
- Progettare un piano di test in base alla comprensione dell'infrastruttura richiesta.
- I casi di test vengono quindi progettati coprendo il supporto dei sistemi operativi, gli scenari di aggiornamento, l'ambito del test dell'infrastruttura server / client e anche il test delle funzionalità.
- Dopo l'approvazione dei casi di test, il team QA esegue ogni scenario e i casi di test corrispondenti.
Tutte le modifiche relative al server / client come l'aggiornamento e le modifiche alla configurazione sono già testate sulle configurazioni QA, quindi questo garantisce che ci sarà un minore impatto possibile nell'ambiente di produzione. Inoltre, diverse versioni del sistema operativo verranno testate prima della distribuzione in produzione. Inoltre, se qualcosa non funziona durante la produzione, le procedure di fallback vengono testate in anticipo per garantire il backup.
# 2) Migrazione dei dati
La migrazione dei dati include i dati migrati dalla vecchia versione alla nuova versione, i dati migrati da un server a un altro e anche i dati migrati a diverse configurazioni.
L'obiettivo principale del test della migrazione dei dati è testare le migrazioni dei dati su varie versioni, server, nuove build. Testare l'applicazione per certificare che non vi è alcun impatto dovuto alla migrazione. Viene inoltre eseguito il test della migrazione dei dati per verificare le prestazioni e la latenza nell'applicazione.
Procedura:
come aprire un file .json
- Testare l'applicazione prima e dopo la migrazione.
- Testare i server prima e dopo la migrazione dei dati per assicurarsi che non vengano osservate modifiche.
- Verificare che non vengano osservate modifiche nelle prestazioni dell'applicazione dopo la migrazione dei dati.
- Testare l'applicazione con diverse versioni del database
- Testare la nuova build è compatibile con tutte le versioni del database.
- Testare diverse impostazioni di configurazione del server con diverse versioni del database
Con l'aiuto del test di migrazione dei dati, è possibile rilevare configurazioni non corrispondenti del server. Eventuali problemi di build del server, se presenti durante la migrazione dei dati, possono essere risolti prima della distribuzione in produzione. Il test di migrazione dei dati migliora la qualità e la stabilità del prodotto. Questo test successivo aiuta nella verifica dell'installazione durante la distribuzione dell'applicazione nell'ambiente di produzione.
# 3) Test dell'infrastruttura in cloud
Le informazioni ei dati sono per lo più archiviati su server virtuali e questi server sono conservati e gestiti da fornitori di cloud computing come AWS.
L'obiettivo principale è quello di certificare i servizi Cloud per diverse versioni di applicazioni. Testare l'architettura dell'applicazione sul Cloud. Una vera applicazione viene simulata su Cloud e vengono testate le prestazioni e la scalabilità delle applicazioni.
Procedura:
- Testare il carico sull'applicazione con diverse configurazioni.
- Eseguire il test di regressione e assicurarsi che l'applicazione non influenzi il test di carico.
- Verifica se un'applicazione è un browser compatibile in un ambiente cloud.
- Testare l'installazione dell'applicazione sul cloud.
- Verifica se l'applicazione funziona come previsto in diversi ambienti cloud.
Il test dell'infrastruttura in Cloud garantisce un'implementazione priva di errori dell'applicazione nell'ambiente di produzione. Aiuta a conoscere le prestazioni, la scalabilità e la stabilità dell'applicazione. Aiuta a utilizzare le risorse trovate nel cloud come qualsiasi hardware, software e infrastruttura.
# 4) Test a livello di rete
La rete è la parte più importante dell'infrastruttura dell'applicazione. La rete aiuta nella comunicazione tra server, client e altre reti. Le reti hanno diversi moduli come server proxy, infrastruttura per la connettività Internet.
L'obiettivo principale è controllare e gestire eventuali problemi a livello di rete come l'utilizzo eccessivo delle risorse, i tempi di inattività del server, la configurazione del sistema, l'infrastruttura richiesta per le operazioni, le patch del sistema operativo.
Procedura:
- Testare il livello di rete per futuri aggiornamenti dell'applicazione.
- Testare le procedure di fallback in caso di guasto nell'ambiente di produzione.
- Eseguire test di sistema, test UAT, test di sicurezza.
- Progettare casi di test e preparare i dati di test.
- Assicurarsi che eventuali servizi a livello di server / rete non subiscano alcun impatto dopo qualsiasi nuova versione.
- Test per la rete isolata.
- Testare l'impatto sulle prestazioni dell'applicazione su varie reti come VPN, Wi-Fi, LAN, ecc.
Il test dell'infrastruttura a livello di rete migliora i tempi di ripristino. Assicura il backup e ripristina i meccanismi. Aiuta anche nella sicurezza delle applicazioni.
# 5) Installazione / Disinstallazione / Distribuzione
L'obiettivo principale del test dell'infrastruttura durante l'esecuzione dell'installazione è garantire che ogni volta che un nuovo client utilizza l'applicazione, non sorgano problemi durante l'installazione dell'applicazione per la prima volta. La disinstallazione dell'applicazione viene eseguita per testare il processo di uscita dell'applicazione.
Procedura:
- Verifica i pacchetti di installazione necessari per l'installazione dell'applicazione.
- Verifica la presenza di librerie aggiuntive, crea pacchetti.
- Verificare il tempo necessario per installare e disinstallare l'applicazione.
- Installa l'applicazione su diversi sistemi operativi.
- Verifica lo spazio su disco richiesto.
- Verifica se tutti i file vengono rimossi dopo la disinstallazione dell'applicazione.
Il test dell'infrastruttura durante l'installazione / la disinstallazione / la distribuzione garantisce che l'applicazione possa essere installata sulla rete in un determinato momento. Si assicura che qualsiasi patch possa essere installata successivamente o meno. Aiuta a migliorare lo spazio di archiviazione richiesto dall'applicazione.
# 6) Infrastruttura dell'ambiente di test
Un ambiente di test è una raccolta di hardware, software, strumenti e processi. Per eseguire il test in modo accurato ed efficiente, è necessario l'ambiente di test. L'ambiente di test include anche il luogo di lavoro in cui vengono forniti ai tester una buona rete, PC e alimentazione per svolgere il proprio lavoro.
L'obiettivo principale è controllare l'installazione del software, le impostazioni di configurazione dell'applicazione, scegliere i giusti strumenti di test che supportano la pianificazione dei test, l'esecuzione dei test. Garantisce inoltre la continuità dell'esecuzione del test.
Procedura:
- Configurare un ambiente di test per le versioni regolari del progetto.
- Creare un ambiente di prova per le versioni di hotfix.
- Crea soluzioni per gestire i problemi dell'ambiente server e client.
- Finalizza gli strumenti di test per il piano di test, la progettazione e l'esecuzione dei test.
- Decidi gli strumenti per il debug e la segnalazione dei bug.
- Crea un documento per impostare l'ambiente di test.
L'uso di strumenti e ambienti di test ha molteplici vantaggi. Si osserva una qualità superiore. La produttività aumenta con l'uso di strumenti. Le attività di test vengono svolte in modo elaborato. La documentazione dell'ambiente di test aiuta i nuovi membri del team a capire meglio.
# 7) Approccio TDD
Test-Driven Development o framework TDD è un metodo per scrivere prima i casi di test in base ai documenti dei requisiti e quindi implementare la funzionalità in base al test.
L'obiettivo principale è conoscere le risorse infrastrutturali necessarie per il progetto. Lo scopo è definire e organizzare l'infrastruttura per la sicurezza, le operazioni e la produzione.
Procedura:
- Documento di progettazione per i requisiti dell'infrastruttura.
- Progettare un piano di test che copra l'infrastruttura richiesta per l'applicazione.
- Progettare casi di test che coinvolgono test dell'infrastruttura.
- Prova per diverse configurazioni.
L'approccio TDD aiuta a migliorare la complessità del progetto. Eventuali modifiche all'infrastruttura vengono testate prima del passaggio alla produzione. Diverse possibili configurazioni possono essere implementate poiché i test sono già progettati.
Strumenti di test dell'infrastruttura
Chef, Burattino, e Ansible sono strumenti diversi che hanno lo stesso scopo. Questi strumenti vengono utilizzati nella distribuzione e configurazione di diversi server richiesti per un'applicazione. Questi strumenti sono di grande aiuto quando ci sono attività complesse legate all'infrastruttura. Diventa facile per il team eseguire attività su più server insieme utilizzando questi strumenti.
Il team che utilizza questi strumenti distribuisce rapidamente più applicazioni, dipendenze e librerie. Altre attività includono server, binari, file di registro, meccanismi di ripristino, aggiornamento della versione, gestione del database.
# 1) Chef
Caratteristiche: Chef supporta le lingue specifiche del dominio Ruby. Pertanto, diventa difficile per i non sviluppatori imparare questo strumento. Nonostante sia difficile per il supporto linguistico, questo strumento è altamente disponibile. Chef segue la configurazione master-slave. Nel meccanismo master-slave, il server primario cioè chef-server può essere sostituito dal server di backup se comunque si verifica un guasto.
Possiamo distribuire applicazioni, configurare l'infrastruttura e anche configurare la rete con Chef. Non è altamente protetto.
Prezzo: È meno costoso di Puppet ma più costoso di Ansible. Il suo prezzo è di circa $ 13,5k / anno fino a 100 nodi.
Sito web: Capo
# 2) Burattino
Caratteristiche: Puppet è costruito con Ruby e supporta DSL e Embedded Ruby. Un programmatore può gestire la configurazione solo se il Puppet è selezionato per essere utilizzato. Anche il team degli amministratori di sistema è a conoscenza delle configurazioni di questo strumento. Segue l'architettura master-master. Se un master attivo subisce un errore, un altro master può sostituirlo.
Puppet è utile nella scalabilità delle macchine, nell'impostazione di diverse configurazioni per ogni host. Se vengono apportate modifiche alla configurazione, questo strumento consente di apportare modifiche a livello globale. Inoltre, non è uno strumento così altamente protetto.
Prezzo: Il suo prezzo è il più alto a circa $ 11.000- $ 20.000 / anno per un massimo di 100 nodi.
Sito web: Fantoccio
# 3) Ansible
Caratteristiche: Ansible è scritto su Python e supporta anche gli script di comandi YAML. Python è leggibile dall'uomo e quindi questo strumento è ideale per gli amministratori di sistema. Funziona con un singolo nodo attivo ma, in caso di eventuali guasti, ha anche un nodo secondario.
Ansible è altamente scalabile, ovvero può gestire un gran numero di nodi senza problemi. Rispetto a Puppet, Ansible è più conveniente in termini di scalabilità. A differenza di Chef e Puppet, è uno strumento altamente protetto con SSH.
Prezzo: Il suo prezzo è molto più basso di Puppet e Chef, circa $ 10.000 all'anno per un massimo di 100 nodi.
Sito web: Ansible
Conclusione
Il test dell'infrastruttura è necessario per il ciclo di vita dello sviluppo del software poiché le aziende devono sostenere costi elevati sull'infrastruttura. In questo tutorial vengono trattati vari argomenti come vantaggi, sfide, tecniche e persone coinvolte in questo tipo di test. Viene anche fornita una panoramica degli strumenti di test dell'infrastruttura.
Lettura consigliata
- Monitoraggio delle prestazioni delle applicazioni e dell'infrastruttura IT mediante eG Enterprise Tool (revisione pratica)
- Tipi di test del software: diversi tipi di test con dettagli
- Test delle applicazioni: le basi del test del software!
- Cos'è il Gamma Testing? La fase finale del test
- Che cos'è il test di conformità (test di conformità)?
- Test delle prestazioni vs test di carico vs stress test (differenza)
- Test esplorativi vs test con script: chi vince?
- Che cos'è il test di scalabilità? Come testare la scalabilità di un'applicazione