Cords Cords Cords Cords
Integrazioni API | Gestione dell'API

Superare le sfide comuni nei test API

Sfide di test dell'API

Di Manoj Chaudhary, CTO e SVP di Ingegneria


Per verificare la funzionalità, l'affidabilità e la sicurezza delle API (Application Programming Interface), i team IT conducono una serie di test diversi, tra cui valutazioni funzionali, di governance, caos, penetrazione, prestazioni, stress e longevità. Di seguito, descriviamo le sfide comuni che i team devono affrontare nell'esecuzione di questi test e offriamo i nostri consigli per affrontarle.

Sfida: Superare la configurazione iniziale

La creazione, lo sviluppo e la messa in funzione dell'infrastruttura di test possono richiedere molto tempo e può essere difficile motivare il team durante tutto il processo.

nostra raccomandazione

Spiegare come il processo di test ripaga a lungo termine può essere fondamentale per motivare un team di test. È anche importante notare quanto sia critica questa fase nel test delle API in generale. Durante la configurazione iniziale, pensa attentamente a come testerai l'API e a cosa richiedono tali test nella progettazione della tua infrastruttura.

Sfida: generazione e gestione di grandi volumi di dati di test

Le API con molti parametri richiedono una quantità significativa di dati (e in alcuni casi dati con cardinalità elevata) per un test efficace. Creare, mantenere e garantire che questi dati siano riutilizzabili può rappresentare una sfida per i tester.

nostra raccomandazione

La chiave per generare e configurare i dati di test è comprendere le strutture di richiesta e risposta e le chiamate API associate. Usa gli strumenti di gestione dei dati che ti consentono di comprendere queste connessioni, quindi maschera, genera e crea sottoinsiemi di nuovi dati che si adattano alle tue esigenze di test.

Sfida: comprendere chiaramente gli obiettivi per i test di governance

Fondamentale per le API create per le applicazioni cloud multi-tenant, i test di governance vengono eseguiti per aiutare a proteggere l'infrastruttura da uso eccessivo, vicini rumorosi e attacchi. Le API in genere hanno regole di governance per il loro utilizzo (ad esempio, criteri di archiviazione, limiti di velocità e dimensioni del payload), ma l'assenza di conoscenza e comprensione relative sia alla logica dell'architettura API che a queste regole spesso si traduce in incertezza sugli obiettivi di test.

nostra raccomandazione

Creare regole di governance ben definite e ben scritte; creare utilità per il tuo team per modificarle secondo necessità per rendere i test più facili ed efficienti.

Sfida: eseguire efficacemente i test del caos

Nel 2010, i team operativi e di sviluppo di Netflix hanno creato questa forma di test quando hanno iniziato a spostare l'infrastruttura tradizionale nell'infrastruttura cloud di Amazon Web Services (AWS). Test del caos, o ingegneria del caos, è un approccio altamente disciplinato che testa l'integrità del sistema simulando e identificando in modo proattivo i guasti prima che causino tempi di inattività non pianificati o un'esperienza utente scadente. Il processo prevede:

  • Testare che un sistema funzioni in uno stato stazionario definito. Innanzitutto, i tester devono identificare un output di sistema misurabile che indichi il normale comportamento lavorativo. La creazione dell'infrastruttura e degli strumenti per definire e misurare uno stato stazionario può essere complessa, a seconda dell'architettura e dell'ambito delle applicazioni coinvolte.
  • Test per determinare che lo stato stazionario di un sistema manterrà. Dopo aver stabilito uno stato stazionario, i tester determinano se continuerà in condizioni di controllo, sperimentali e reali.
  • Test per un impatto minimo sugli utenti. I tester interrompono o interrompono il servizio per determinare l'impatto negativo sugli utenti.
  • Presentazione del caos. Dopo aver stabilito che un sistema funziona in uno stato stazionario definito, che lo stato stazionario sta reggendo e che il "raggio di esplosione" è contenuto, i tester eseguono le loro applicazioni di test del caos per vedere come si comporta il sistema in particolari condizioni o circostanze di stress (ad esempio, arresti anomali del server, malfunzionamento dell'hardware o connessioni di rete interrotte).

nostra raccomandazione

Crea hook nella tua applicazione e infrastruttura che consentano al tuo team di test di creare caos e ottenere facilmente metriche pertinenti per il raggio dell'esplosione.

Sfida: coinvolgere il team giusto per i test di penetrazione

Nei test di penetrazione, un tester con una conoscenza operativa limitata dell'API specifica la attaccherà per valutare il vettore della minaccia da una prospettiva esterna. Gli attacchi possono prendere di mira l'intera API o determinate funzioni e processi.

nostra raccomandazione

Un team interno può eseguire i penetration test iniziali, ma un penetration tester di terze parti dovrebbe eseguire i test di penetrazione approfonditi di follow-up.

Hai domande? Siamo qui per aiutare.

Contatti