Test continui in DevOps
Cos'รจ il test continuo?
Test continui in DevOps รจ un tipo di test del software che prevede il test del software in ogni fase del ciclo di vita dello sviluppo del software. L'obiettivo del testing continuo รจ valutare la qualitร del software in ogni fase del processo di distribuzione continua effettuando test tempestivi e frequenti.
Il processo di test continuo in DevOps coinvolge stakeholder come sviluppatore, DevOps, QA e Operasistema nazionale.
In cosa differiscono i test continui?

Il vecchio modo di testare era incentrato sulla mano. Il software รจ stato passato da una squadra all'altra. Un progetto avrebbe fasi di sviluppo e QA definite. I team di QA hanno sempre desiderato piรน tempo per garantire la qualitร . L'obiettivo era che la qualitร prevalesse sulla tempistica del progetto.
Tuttavia, le aziende desiderano una consegna piรน rapida del software all'utente finale. Piรน il software รจ nuovo, meglio puรฒ essere commercializzato e aumentare il potenziale di guadagno dell'azienda. Quindi, รจ stato sviluppato un nuovo modo di testare.
Continuo significa test ininterrotti eseguiti su base continua. In un processo DevOps continuo, una modifica del software (release candidate) si sposta continuamente dallo sviluppo al test alla distribuzione.

Il codice viene continuamente sviluppato, fornito, testato e distribuito.
Ad esempio, ogni volta che uno sviluppatore controlla il codice sorgente Code Server come Jenkins Una serie automatizzata di test unitari viene eseguita in un processo continuo. Se i test falliscono, la build viene rifiutata e lo sviluppatore viene avvisato. Se la build supera i test, viene distribuita sui server di performance e QA per test funzionali e di carico esaustivi. I test vengono eseguiti in parallelo. Se i test hanno esito positivo, il software viene distribuito in produzione.
Il testing continuo รจ un piccolo ingranaggio nel ciclo continuo di sviluppo, integrazione e distribuzione.

Lo sviluppo del software non รจ lo stesso del passato: riduciamo lo sviluppo da mesi a settimane. L'attuale stack di test (vedere la figura sopra) รจ dedicato al test dell'interfaccia utente. Ma lโobiettivo รจ avere test unitari sempre piรน automatizzati.
In che modo il test continuo รจ diverso dall'automazione del test?
Automazione dei test e test continui
| Parametro | Automazione del test | Test continui |
|---|---|---|
| Definizione | L'automazione dei test รจ un processo in cui uno strumento o un software viene utilizzato per automatizzare le attivitร . | ร una metodologia di test del software che si concentra sul raggiungimento di qualitร e miglioramento continui. |
| Missione | Una serie di attivitร simili o ripetitive che una macchina puรฒ eseguire, piรน velocemente, con meno errori. | Il processo di test continuo aiuta a individuare i rischi, affrontarli e migliorare la qualitร del prodotto. |
| Prerequisito | Automazione nei test possibile senza integrare test continui. | I test continui non possono essere implementati senza l'automazione dei test. |
| Ora | Il rilascio del software puรฒ richiedere da un mese ad anni. | La versione del software puรฒ essere rilasciata da una settimana all'altra. |
| Feedback | Feedback regolare dopo aver testato ogni versione. | Il feedback in ogni fase deve essere immediato. |
| Storia | I test automatizzati vengono eseguiti da decenni per rendere il processo di test piรน rapido. | Il test continuo รจ un concetto relativamente nuovo. |
Come eseguire test continui
- Utilizzo di strumenti per generare suite di automazione dei test dalle storie/requisiti degli utenti
- Crea ambiente di prova.
- Copia e rendi anonimi i dati di produzione per creare un data base di test
- Utilizza la virtualizzazione del servizio per testare l'API
- Test delle prestazioni paralleli
Strumenti di test continui
Ecco un elenco curato dei migliori Strumenti di test continui :
1) QuerySurge
QuerySurge รจ la soluzione di test intelligente dei dati, la prima soluzione DevOps completa nel suo genere per il test continuo dei dati. Le funzionalitร principali includono API robuste con oltre 60 chiamate, data intelligence e analisi dei dati dettagliate, integrazione perfetta nella pipeline DevOps per test continui e verifica rapida di grandi quantitร di dati.
Inizia a testare gratuitamente
2) Jenkins
Jenkins รจ uno strumento di integrazione continua scritto utilizzando Java lingua. Questo strumento puรฒ essere configurato tramite interfaccia GUI o comandi della console.
Download link: https://jenkins.io/
3) Travis
Travis รจ uno strumento di test continuo ospitato su GitHub. Offre varianti ospitate e locali. Fornisce una varietร di lingue diverse e una buona documentazione.
Download link: https://travis-ci.org/
4) Selenium
Selenium รจ uno strumento di test del software open source. Supporta tutti i principali browser come Firefox, Chrome, IE e Safari. Selenium WebDriver viene utilizzato per automatizzare il test delle applicazioni Web.
Download link: https://www.seleniumhq.org/
Vantaggi dei test continui
- Accelera la consegna del software
- I test continui migliorano la qualitร del codice
- Aiuta a valutare l'esatta copertura del rischio aziendale.
- Si integra perfettamente nel processo DevOps
- Aiuta a creare un processo agile e affidabile in poche ore invece che in mesi.
- Accelera il time-to-market con un meccanismo di feedback continuo.
- Unisce team tradizionalmente isolati per soddisfare le esigenze aziendali moderne. Dissolveuna mancanza di comunicazione tra i team di sviluppo, test e operazioni.
- Test Automation aiuta a raggiungere la coerenza mantenendo la stessa configurazione per tutti i test rilevanti.
- Enfatizza le aspettative aziendali per mitigare i rischi aziendali
- Fornire accesso onnipresente all'ambiente di test con la virtualizzazione dei servizi
Le sfide dei test continui
- Il processo tradizionale limita il cambiamento culturale tra i professionisti dello sviluppo e del controllo qualitร .
- Mancanza di competenze DevOps e di strumenti adeguati per i test in ambienti Agile e DevOps.
- Ambienti di test eterogenei che non rifletteranno mai l'ambiente di produzione.
- Processo di test convenzionale e gestione dei dati di test vagamente definita.
- Cicli di integrazione del codice piรน lunghi creano problemi di integrazione e correzioni tardive dei difetti
- Risorse e ambienti di test insufficienti e inefficaci
- Architettura applicativa complessa e logica aziendale che limita l'adozione di DevOps.
Conclusione
- Nell'ingegneria del software, il test continuo รจ un processo di test precoce, test frequente, test ovunque e automazione.
- Il vecchio modo di testare era incentrato sul trasferimento. Il software viene trasferito da un team all'altro
- Jenkins, Travis e Selenium sono popolari test continui e Strumenti di integrazione.
- I test continui forniscono feedback fruibili in base a ciascuna fase della pipeline di consegna.
- I test continui aiutano a migliorare la qualitร del codice
- Il processo tradizionale limita il cambiamento culturale tra i professionisti dello sviluppo e del controllo qualitร .
- Cicli di integrazione del codice piรน lunghi creano problemi di integrazione e correzioni tardive dei difetti
