Come convalidare dati, analisi e visualizzazioni di dati

Il test delle applicazioni è una disciplina in via di maturazione con strumenti che aiutano i team di controllo della qualità a sviluppare e automatizzare test funzionali, eseguire test di carico e prestazioni, eseguire analisi statiche del codice, includere le API con unit test e convalidare le applicazioni rispetto a problemi di sicurezza noti. I team che praticano devops possono implementare test continui includendo tutti o un sottoinsieme dei loro test automatizzati nelle loro pipeline CI / CD e utilizzare i risultati per determinare se una build deve essere consegnata all'ambiente di destinazione.

Ma tutte queste funzionalità di test possono facilmente ignorare una serie cruciale di test che è fondamentale per l'elaborazione di qualsiasi applicazione o la presentazione di dati, analisi o visualizzazioni di dati.

I dati sono accurati e le analisi sono valide? Le visualizzazioni dei dati mostrano risultati che hanno senso per gli esperti in materia? Inoltre, mentre un team apporta miglioramenti alle pipeline di dati e ai database, come dovrebbero garantire che le modifiche non danneggino un'applicazione o un dashboard a valle?

Nella mia esperienza nello sviluppo di applicazioni ricche di dati e analisi, questo tipo di test e convalida è spesso un secondo pensiero rispetto ai test di unità, funzionali, prestazioni e sicurezza. È anche un insieme più difficile di criteri di test da eseguire per diversi motivi:

  • La convalida di dati e analisi è difficile per sviluppatori, tester e data scientist che di solito non sono esperti in materia, in particolare su come i dashboard e le applicazioni vengono utilizzati per sviluppare insight o guidare il processo decisionale.
  • I dati di per sé sono imperfetti, con problemi di qualità dei dati noti e spesso sconosciuti.
  • Cercare di acquisire regole di convalida non è banale perché spesso ci sono regole comuni che si applicano alla maggior parte dei dati seguite da regole per diversi tipi di valori anomali. Il tentativo di acquisire e codificare per queste regole può essere una proposta difficile e complessa per applicazioni e visualizzazioni di dati che elaborano grandi volumi di set di dati complessi.
  • Le organizzazioni attive basate sui dati stanno caricando nuovi set di dati ed evolvendo pipeline di dati per migliorare l'analisi e il processo decisionale.
  • I sistemi di elaborazione dati sono spesso complessi, con diversi strumenti per integrare, gestire, elaborare, modellare e fornire risultati.

La prima volta che i team presentano dati non validi o analisi non valide alle parti interessate è di solito il primo campanello d'allarme che le loro pratiche e strumenti potrebbero essere necessari per testare, diagnosticare e risolvere questi problemi di dati in modo proattivo.

Comprensione della derivazione dei dati e della qualità dei dati

I problemi relativi ai dati vengono affrontati al meglio alle loro fonti e attraverso le varie trasformazioni dei dati eseguite nel caricamento e nell'elaborazione dei dati. Se i dati di origine presentano nuovi problemi di qualità dei dati o se sono presenti difetti introdotti nella pipeline di dati, è molto più efficiente identificarli e risolverli nelle prime fasi della pipeline di elaborazione dei dati.

Due pratiche e strumenti correlati aiutano con questi problemi. Entrambi consentono ai team di sviluppo e dati di identificare i problemi relativi ai dati prima che raggiungano le visualizzazioni e le applicazioni dei dati a valle.

La prima pratica prevede strumenti per la qualità dei dati che sono spesso funzionalità aggiuntive per l'estrazione, la trasformazione e il caricamento (ETL), nonché alcuni strumenti di preparazione dei dati. Gli strumenti per la qualità dei dati hanno molteplici scopi, ma una cosa che possono fare è identificare e correggere problemi di dati noti. Alcune correzioni possono essere automatizzate, mentre altre possono essere contrassegnate come eccezioni e inviate ai data steward per correggerle manualmente o per aggiornare le regole di pulizia.

Informatica, Talend, IBM, Oracle, Microsoft e molti altri offrono strumenti per la qualità dei dati che si collegano alle loro piattaforme ETL, mentre gli strumenti per la preparazione dei dati di Tableau, Alteryx, Paxata, Trifacta e altri hanno capacità di qualità dei dati.

La seconda pratica è la discendenza dei dati. Mentre la qualità dei dati aiuta a identificare i problemi dei dati, la derivazione dei dati è un insieme di pratiche e strumenti che tengono traccia delle modifiche ai dati e delle implementazioni sottostanti. Aiutano gli utenti a capire dove nel ciclo di vita dei dati viene implementata una trasformazione, un calcolo o altra manipolazione dei dati. Strumenti, report e documentazione di derivazione dati possono quindi essere utilizzati per risalire a una pipeline di dati e aiutare a individuare dove in un flusso di dati è stato introdotto un difetto o un altro problema.

Utilizzo di set di dati d'oro per convalidare le visualizzazioni dei dati

Analisi, dashboard e visualizzazioni dei dati non funzionano su origini dati statiche. I dati stanno cambiando a una certa velocità e, allo stesso tempo, sviluppatori e data scientist potrebbero modificare i flussi di dati, gli algoritmi e le visualizzazioni sottostanti. Quando si guarda un dashboard, è difficile distinguere se un problema di dati imprevisto è dovuto a una modifica programmatica o se è correlato a dati o modifiche alla qualità dei dati.

Un modo per isolare le modifiche consiste nel separare un set di dati d'oro noto per aiutare a convalidare il flusso di dati, l'applicazione e le modifiche alla visualizzazione dei dati. Utilizzando un set di dati d'oro, un team di test può definire test unitari, funzionali e di prestazioni per convalidare e confrontare gli output. I tester possono eseguire test A / B, dove A è l'output prima dell'introduzione delle modifiche all'implementazione e B è l'output dopo che sono state apportate le modifiche. Il test dovrebbe mostrare solo le differenze nell'output nelle aree previste in cui i flussi di dati, i modelli, le analisi, la logica di business o le visualizzazioni sono stati modificati.

Sebbene questo sia un concetto relativamente semplice, non è banale da implementare.

Innanzitutto, i team devono creare i set di dati d'oro e decidere quale volume e varietà di dati costituisce un set campione completo da testare. Potrebbe anche richiedere più set di dati per aiutare a convalidare diversi segmenti di dati, condizioni al contorno o modelli analitici. Uno strumento che può aiutare i team a gestire i dati di test è Delphix per la gestione dei dati di test; anche altri fornitori offrono questa funzionalità.

In secondo luogo, una volta creati i set di dati d'oro, i team di test potrebbero richiedere ambienti o strumenti aggiuntivi per cambiare le origini dati sottostanti nei loro ambienti. Ad esempio, i tester potrebbero voler eseguire il test rispetto ai set di dati d'oro, quindi eseguire una seconda volta sui dati che sono una replica dei dati di produzione. I team che operano in ambienti cloud e utilizzano strumenti di infrastruttura come codice come Puppet, Chef e Ansible possono costruire e abbattere più ambienti di test per questi diversi scopi.

Infine, i team di test hanno bisogno di strumenti per implementare i test A / B di dati e risultati. Molti team che conosco lo fanno manualmente scrivendo query SQL e quindi confrontando i risultati. Se i set di dati e i test sono semplici, questo approccio può essere sufficiente. Tuttavia, se è necessario testare più punti del flusso di dati, è probabile che siano necessari strumenti dedicati per centralizzare le query di test, automatizzarle e utilizzare i report per convalidare le modifiche. Uno strumento, QuerySurge, è specificamente progettato per implementare test A / B su flussi di dati, database e alcuni strumenti di business intelligence.

Lavorare con esperti in materia in modo efficiente

Ad un certo punto, è necessario coinvolgere esperti in materia per utilizzare visualizzazioni di dati nuove e aggiornate e fornire feedback. Devono aiutare a rispondere a domande sul fatto che l'analisi sia valida e utile per sviluppare intuizioni o aiutare nel processo decisionale basato sui dati.

Il problema che molti team devono affrontare è ottenere tempo sufficiente dagli esperti in materia per partecipare a questo test. Questa può essere una sfida significativa quando si tenta di testare e distribuire frequentemente le modifiche.

Per utilizzare il loro tempo in modo efficiente, consiglio tre attività separate:

  • Implementa quanto più possibile la qualità dei dati, la derivazione dei dati e i test A / B su set di dati d'oro. Prima di coinvolgere esperti in materia, compiere sforzi ragionevoli per convalidare che i dati grezzi e calcolati siano corretti. Questo deve essere fatto con fiducia in modo da poter spiegare e idealmente illustrare agli esperti in materia che i dati, le trasformazioni e i calcoli sottostanti sono accurati, quindi puoi essere certo che non è necessario investire molto tempo per testarli manualmente.
  • Progettare visualizzazioni dei dati per aiutare gli esperti in materia a rivedere e convalidare i dati e le analisi. Alcune visualizzazioni possono essere output dei test A / B, mentre altre dovrebbero essere visualizzazioni che espongono dati di basso livello. Quando si implementano modifiche di dati, algoritmi, modelli o visualizzazioni su scala più ampia, spesso è utile disporre di queste visualizzazioni dei dati di controllo della qualità per aiutare gli esperti in materia a eseguire rapide convalide.
  • Desideri che gli esperti in materia eseguano i test di accettazione degli utenti (UAT) sulle applicazioni finalizzate e sulle visualizzazioni dei dati. Quando raggiungono questo passaggio, dovrebbero avere piena fiducia che i dati e le analisi siano validi.

Quest'ultimo passaggio è necessario per determinare se le visualizzazioni sono efficaci nell'esplorare i dati e rispondere alle domande: la visualizzazione è facile da usare? Sono disponibili le dimensioni corrette per eseguire il drill nei dati? La visualizzazione aiuta a rispondere con successo alle domande a cui è stata progettata per rispondere?

A questo punto del processo, stai testando l'esperienza utente e assicurandoti che i dashboard e le applicazioni siano ottimizzati. Questo passaggio critico può essere svolto in modo molto più efficiente quando c'è comprensione e fiducia nei dati e nelle analisi sottostanti.