Condividi tramite


Guida di test di Azure per le applicazioni JavaScript

Gli sviluppatori JavaScript che non hanno familiarità con Azure, usano questa guida di test di Azure per apprendere le strategie di testing di unità, integrazione, integrazione continua e intelligenza artificiale con Azure SDK e altre risorse per garantire la qualità, le prestazioni e l'affidabilità dell'applicazione.

Azure Well Architected Framework

Azure Well-Architected Framework offre un framework di progettazione per le applicazioni cloud in cinque pilastri:

  • Affidabilità : garantire che l'applicazione sia resiliente agli errori e venga ripristinata rapidamente.
  • Sicurezza : protezione delle applicazioni e dei dati dalle minacce.
  • Efficienza delle prestazioni : ottimizzazione del modo in cui il sistema usa le risorse per soddisfare i requisiti.
  • Ottimizzazione costi : gestione dei costi durante la distribuzione del valore.
  • Eccellenza operativa : miglioramento dei processi e del monitoraggio per offrire applicazioni in modo efficace.

Le strategie di test in questo articolo si allineano principalmente al pilastro Dell'eccellenza operativa, che enfatizza l'automazione, la convalida e il miglioramento continuo dei processi operativi.

Cicli di test interni ed esterni per Azure SDK in JavaScript

I cicli di test interni ed esterni sono concetti fondamentali nel test software, in particolare per le applicazioni distribuite su piattaforme cloud come Azure:

  • Il ciclo interno si riferisce a un ambiente locale in cui gli sviluppatori eseguono spesso unit test e test di integrazione durante la fase di sviluppo. Questo ciclo è incentrato sul feedback rapido e sull'iterazione.

  • Il ciclo esterno comprende i test eseguiti dagli sviluppatori in pipeline di integrazione continua e recapito continuo (CI/CD), staging e ambienti di produzione. Questi test spesso sfruttano Azure DevOps o GitHub Actions.

Questi test includono test end-to-end (E2E), prestazioni e sicurezza. Convalidano il comportamento dell'applicazione in ambienti che rispecchiano o sono identici all'ambiente di produzione finale. Le strategie di test efficienti usano entrambi i cicli per garantire una copertura completa e una garanzia di qualità prima e dopo la distribuzione.

Ulteriori informazioni:

Test locali e basati sul cloud con Azure SDK

I test locali senza Azure comportano la simulazione dei servizi di Azure. Usare questo approccio per testare rapidamente le modifiche senza incorrere nei costi o nella latenza di rete associati ai servizi di Azure reali.

D'altra parte, i test basati sul cloud con Azure sfruttano le risorse effettive di Azure per convalidare l'integrazione, la sicurezza e le prestazioni dell'applicazione in un ambiente cloud. Questo metodo è fondamentale per la convalida finale in un'impostazione simile alla produzione. Garantisce che l'applicazione si comporti come previsto con i servizi di Azure in tempo reale.

Gli emulatori e i contenitori di sviluppo migliorano lo sviluppo locale con i servizi di Azure in modo diverso. Gli emulatori simulano i servizi di Azure per i test in fase iniziale e convenienti senza addebiti di Azure, ma potrebbero non replicare completamente le funzionalità del servizio live. I contenitori di sviluppo replicano più da vicino l'ambiente di produzione, incluse le dipendenze e i servizi dell'applicazione, per facilitare una transizione facile all'ambiente di produzione. I contenitori di sviluppo si adattano ad applicazioni complesse, ma richiedono più configurazione rispetto agli emulatori.

Emulatori

Gli emulatori includono:

Contenitori di sviluppo

I contenitori di sviluppo offrono un'alternativa efficace all'uso di emulatori per lo sviluppo locale, soprattutto nell'uso dei servizi di Azure.

Eseguendo i servizi nei contenitori, creare un ambiente locale che rispecchia attentamente l'ambiente di produzione per garantire coerenza tra le fasi di sviluppo, test e distribuzione. Migliora inoltre l'affidabilità dei test simulando le condizioni reali in modo più accurato.

Configurare i contenitori per replicare le impostazioni e i dati dei servizi di Azure. In questo modo, i contenitori offrono una solida piattaforma per lo sviluppo e il test di applicazioni senza il sovraccarico della connessione ai servizi di Azure attivi.

I contenitori di sviluppo includono il database SQL di Azure.

Ulteriori informazioni:

Unit test in JavaScript

Gli unit test con Gli SDK di Azure in JavaScript spesso usano framework come Jest o Vitest per isolare e testare singoli componenti o funzioni.

Per i test di Node.js nativi, lo stub di Azure SDK chiama manualmente senza librerie aggiuntive eseguendo l'override dei metodi nei prototipi del client SDK o usando semplici funzioni fittizie.

Per altre informazioni, vedere la sezione Test di Azure SDK più avanti in questo articolo.

Test di integrazione in JavaScript

Il test di integrazione valuta l'interazione tra l'applicazione e i servizi di Azure per garantire che i componenti funzionino insieme come previsto.

Configurare test di integrazione automatizzati usando Azure Pipelines in Azure DevOps o flussi di lavoro in GitHub Actions. Questo approccio automatizza la distribuzione e il test dei componenti in un ambiente cloud. Consente di identificare i problemi che potrebbero non essere evidenti durante gli unit test, ad esempio la latenza di rete o errori di configurazione del servizio.

Simulare i servizi di Azure

La simulazione dei servizi di Azure è una procedura comune per testare le applicazioni JavaScript che si integrano con Azure SDK. Simulando le risposte del servizio di Azure, isolare la logica dell'applicazione dalle dipendenze esterne, assicurandosi che i test vengano eseguiti in modo rapido e affidabile.

Altre informazioni su come testare le integrazioni di Azure SDK.

Test di integrazione continua

I test CI comportano l'esecuzione automatica dei test ogni volta che viene apportata una modifica alla codebase. Strumenti CI come Azure DevOps offrono ambienti integrati per automatizzare compilazioni, test e distribuzioni. La configurazione delle pipeline per includere test automatizzati consente di garantire che ogni modifica venga verificata, riducendo così la probabilità di bug e regressioni.

La configurazione corretta della pipeline è fondamentale per processi di integrazione continua efficienti. Include la configurazione di trigger per l'esecuzione automatica dei test e la configurazione di ambienti per varie fasi di test.

Ulteriori informazioni:

Piani di test di Azure

Piani di test di Azure offre una suite completa per test manuali ed esplorativi all'interno di Azure DevOps.

Questo servizio può essere utile in scenari che richiedono un giudizio umano o sono difficili da automatizzare, fornendo un approccio strutturato ai test manuali. Teams può usarlo per pianificare, eseguire e tenere traccia delle attività di test, tra cui l'acquisizione di dati avanzati come screenshot e video per facilitare la segnalazione di bug. L'integrazione di Piani di test di Azure nel processo CI/CD offre una strategia di test olistica che copre i test case automatizzati e manuali.

Test end-to-end

Il test end-to-end convalida l'operazione completa di un'applicazione in un ambiente che simula scenari utente reali. Usando framework come Playwright, è possibile automatizzare i test basati su browser per interagire con le applicazioni come farebbe gli utenti.

I test basati su scenari comportano la creazione di test case per flussi utente completi, ad esempio l'iscrizione, l'esecuzione di un'attività e la disconnessione. Usare questo test per verificare le funzionalità e l'esperienza utente dell'applicazione in Azure.

Ulteriori informazioni:

Test prestazionali

I test delle prestazioni sono essenziali per le applicazioni distribuite in Azure per garantire che possano gestire i carichi previsti e prestazioni ottimali in caso di stress.

Il benchmarking implica la misurazione delle prestazioni dell'applicazione rispetto a metriche o standard definiti. Usare il servizio Test di carico di Azure per simulare traffico elevato e analizzare la scalabilità e la resilienza di un'applicazione.

Esempio CLI:

az load test create --resource-group MyResourceGroup --name MyLoadTest --file loadTestConfig.json

Ulteriori informazioni:

Test di sicurezza

I test di sicurezza in Azure implicano l'identificazione di potenziali vulnerabilità nell'applicazione per impedire accessi non autorizzati o violazioni dei dati.

Gli strumenti di analisi delle vulnerabilità sono essenziali per rilevare automaticamente i punti deboli della sicurezza nel codice o nelle configurazioni. Integrando le funzionalità di Sicurezza avanzata di GitHub con gli strumenti di test di sicurezza delle applicazioni statici tradizionali, è possibile migliorare il comportamento di sicurezza delle applicazioni distribuite in Azure. Le funzionalità principali includono:

  • Analisi del codice: identifica le vulnerabilità all'interno della codebase prima della distribuzione.
  • Analisi dei segreti: consente di evitare l'esposizione dei dati sensibili.
  • Monitoraggio della supply chain: consente di proteggersi da dipendenze potenzialmente compromesse.

Queste misure di sicurezza integrate consentono di identificare le vulnerabilità in anticipo, prevenire le violazioni dei dati e garantire l'integrità della supply chain dell'applicazione.

I test di penetrazione simulano attacchi informatici contro l'applicazione per valutarne il comportamento di sicurezza. Azure fornisce indicazioni e strumenti per l'esecuzione di questi test, per garantire che le applicazioni distribuite nella piattaforma siano sicure dalle minacce.

È consigliabile integrare CodeQL nella pipeline CI per rilevare le vulnerabilità in anticipo.

Ulteriori informazioni:

Test di conformità e governance

Garantire che le applicazioni siano conformi ai requisiti legali, normativi e dei criteri è fondamentale, soprattutto negli ambienti cloud. I test di conformità alle normative verificano che l'applicazione soddisfi gli standard come GDPR, HIPAA o SOC 2.

Azure offre strumenti per criteri e conformità, ad esempio Criteri di Azure e Azure Blueprints, per automatizzare e applicare la conformità tra le risorse di Azure. Questi strumenti semplificano il processo di gestione degli standard di governance e conformità nelle distribuzioni delle applicazioni.

Ulteriori informazioni:

Test di accessibilità

I test di accessibilità sono essenziali per rendere il software inclusivo e conforme agli standard legali. Strumenti come Accessibility Insights consentono di identificare e risolvere i problemi di accessibilità nelle app Web e per dispositivi mobili. L'integrazione di Accessibility Insights nei flussi di lavoro di sviluppo facilita controlli automatizzati e manuali offrendo indicazioni e report basati sugli standard WCAG (Web Content Accessibility Guidelines).

Test A/B

Test A/B, o test di confronto, è un metodo per confrontare due versioni di una pagina web o di un’app per determinare quale funziona meglio. Azure offre i servizi seguenti che supportano i test A/B:

  • Servizio app di Azure: offre slot di distribuzione per consentire ambienti di gestione temporanea in cui è possibile testare le versioni delle app senza influire sull'app in tempo reale.

  • App contenitore di Azure: offre un ambiente flessibile per l'esecuzione di applicazioni basate su microservizi. È possibile implementare test A/B in questo ambiente per testare le versioni dell'app.

Usare questi servizi per distribuire varianti delle applicazioni e quindi misurare la risposta e l'efficacia degli utenti.

Test di Azure SDK

Per gli sviluppatori che lavorano con i servizi di Azure, è essenziale acquisire competenze con gli SDK di Azure per creare applicazioni affidabili e scalabili. I test di Azure SDK seguenti, ospitati in GitHub per gli SDK JavaScript, sono risorse preziose:

L'esplorazione di questi test offre informazioni dettagliate sull'integrazione senza problemi dei servizi di Azure, illustra le procedure consigliate per l'interazione delle risorse di Azure e aiuta a garantire implementazioni efficienti e sicure. Esplorare un'ampia gamma di esempi di SDK per una comprensione completa.

Risorse aggiuntive