GTAC 2014: presentazioni

Tutte le registrazioni video e le diapositive di GTAC 2014 sono disponibili pubblicamente. Puoi guardarli dalla playlist di YouTube del GTAC 2014 o sfogliare le discussioni riportate di seguito:

Commenti

Sonal Shah (Google)

Discorso di apertura - Muoviti velocemente e non interrompere

Ankit Mehta (Google)

Link: Video, Presentazioni

Automazione per un Web migliore

James Graham (Mozilla)

Il Web è la piattaforma applicativa più popolare al mondo, ma la scarsa interoperabilità del browser è una causa troppo comune di sgomento e frustrazione tra gli sviluppatori web. Per provare a migliorare questa situazione, W3C ha agevolato gli sforzi della community per produrre un testsuite cross-browser costantemente aggiornato per il Web aperto, ovvero i test di piattaforme web. In questo intervento, James introdurrà i test delle piattaforme web e descriverà gli strumenti che abbiamo creato per promuovere l'automazione dei test in una serie di browser desktop e su dispositivi mobili con Firefox OS. Mostrerà in che modo questo software è stato progettato per rispondere alle sfide legate all'esecuzione di una suite di test sottoposta a fonti esterne e aggiornata di frequente su centinaia di commit al giorno nel sistema di integrazione continua di Mozilla.

Link: Video, Presentazioni

Rendi Chrome il miglior browser per dispositivi mobili

Karin Lundberg (Google)

Uno dei motivi del successo di Chrome sono stati i suoi principi fondamentali di velocità, stabilità, semplicità e sicurezza (le 4 S). Quando abbiamo rilasciato Chrome per Android e iOS, non abbiamo applicato solo le quattro S al browser stesso, ma anche al modo in cui eseguiamo i test automatici e al tipo di test che eseguiamo:

  • La velocità è pensata per i test delle prestazioni e dei test rapidi.
  • La stabilità serve per test di stabilità e test stabili.
  • La semplicità è pensata per verificare che Chrome offra un'esperienza utente semplice e per semplificare l'aggiunta e l'esecuzione dei test.
  • Sicurezza serve per i test di sicurezza.

Link: Video, Presentazioni

Un linguaggio di automazione dei test per modelli di comportamento

Nan Li (Soluzioni medi)

I tester basati su modelli progettano test astratti in termini di modelli, come i percorsi nei grafici. Poi i test astratti devono essere convertiti in test concreti, che sono definiti in termini di implementazione. La trasformazione da test astratti a test concreti deve essere automatizzata. Le tecniche di test basate su modelli esistenti per i modelli di comportamento utilizzano molti diagrammi aggiuntivi, ad esempio i diagrammi di classe e i casi d'uso per la trasformazione e la generazione dei test. Si tratta di operazioni molto complesse nella pratica, in quanto i tester devono rendere coerenti tutti i diagrammi correlati, anche quando i requisiti vengono modificati di frequente.

Questa presentazione introduce un linguaggio di automazione dei test che consente ai tester di generare test utilizzando un solo modello comportamentale, come il diagramma di una macchina statale. Saranno affrontati tre problemi: (1) creare mappature dai modelli al codice di test eseguibile e generare valori di test, (2) trasformare i grafici e utilizzare i criteri di copertura per generare percorsi di test e (3) risolvere i vincoli e generare test concreti.

Link: Video, Presentazioni

Testa la copertura presso Google

Andrei Chirila (Google)

Hai mai pensato a come funzionano i test di Google? Quali strumenti usiamo per aiutarci e come misuriamo e agiamo sulla copertura dei test? Descriveremo brevemente il processo di sviluppo di Google, quindi ci concentreremo sull'uso della misurazione della copertura del codice e su come utilizziamo la copertura del codice per migliorare la qualità del codice e la produttività della progettazione. Alla fine, presenteremo l'enorme quantità di dati sulla copertura, che coprono più di 100.000 commit, abbiamo raccolto e alcune conclusioni più ampie che abbiamo raggiunto.

Link: Video, Presentazioni

CATJS: applicazioni che testano se stessi

Ran Snir (HP) e Lior Reuven (HP)

Negli ultimi anni abbiamo visto molte anomalie che hanno cambiato il nostro modo di concepire il mondo dell'informatica. Ci sono le stampanti 3D che stampano stampanti 3D, robot che pensano da sole e poi catjs.

catjs è un framework open source che aggiunge la possibilità per le app web mobile di eseguire test personali. Le semplici annotazioni nel codice HTML5 verranno tradotte in script di test incorporati all'interno del ciclo di vita dell'applicazione. Questi test del Web mobile possono essere eseguiti su qualsiasi dispositivo, sistema operativo e browser. catjs è un modo rapido e semplice per gestire il flusso di test della tua applicazione.

Link: Video, Presentazioni

Integrazione continua scalabile - utilizzo di open source

Vishal Arora (Dropbox)

Molti strumenti open source sono disponibili per l'integrazione continua (CI). Solo pochi funzionano bene su larga scala. Inoltre, quasi nessun dispositivo è stato concepito per scalare in un ambiente distribuito. Scopri le sfide dell'implementazione di CI su larga scala e un modo per mettere insieme gli elementi open source per creare rapidamente il tuo sistema CI distribuito e scalabile.

Link: Video, Presentazioni

Non testo spesso ... ma quando faccio, testo in produzione

Gareth Bowls (Netflix)

Ogni giorno, sempre più Netflix consuma più contenuti su un numero sempre maggiore di dispositivi client. Lavoriamo costantemente per migliorare l'esperienza dei nostri clienti. Eseguire test in un ambiente così dinamico è un'enorme sfida e siamo giunti alla conclusione che l'esecuzione di test nel nostro ambiente di produzione può spesso rappresentare il modo più efficace per convalidare tali modifiche. Questo intervento riguarda tre metodi di test che utilizziamo in produzione: simulazione di tutti i tipi di interruzioni con l'esercito di Simian, ricerca di regressioni con le canary e misurazione dell'efficacia dei test con l'analisi della copertura del codice in produzione.

Link: Video, Presentazioni

L'importanza dei test automatici su dispositivi mobili reali e virtuali

Jay Srinivasan (Google) e Manish Lachwani (Google)

Rispetto al mondo del Web, i test dei dispositivi mobili sono un campo minato. A seconda dei dispositivi, dei sistemi operativi, delle reti e delle posizioni diversi, gli sviluppatori devono tenere conto di un numero infinito di variabili. In questa sessione formativa, esamineremo alcune delle sfide specifiche poste dall'ottimizzazione delle prestazioni e della qualità delle app per dispositivi mobili, nonché le strategie per affrontarle, tra cui la necessità di automazione, dispositivi reali e condizioni reali degli utenti.

Link: Video, Presentazioni

I test senza costi sono migliori delle banane senza costi: uso del data mining e del machine learning per automatizzare il monitoraggio della produzione in tempo reale

Celal Ziftci (Google)

C'è un crescente interesse a sfruttare le tecniche di data mining e machine learning nell'analisi, nella manutenzione e nei test dei sistemi software. In questa conversazione, Celal spiegherà come utilizziamo tali tecniche per estrarre automaticamente le invarianti di sistema, utilizzare quelle invarianti per monitorare i nostri sistemi in tempo reale e avvisare i tecnici di eventuali problemi di produzione in pochi minuti.

La discussione consisterà in due strumenti che utilizziamo internamente e in che modo li combiniamo per fornire il monitoraggio della produzione in tempo reale per i tecnici quasi senza costi:

  1. Uno strumento in grado di estrarre gli invarianti del sistema.
  2. Uno strumento che monitora i sistemi di produzione e utilizza il primo strumento per generare automaticamente parte della logica utilizzata per identificare potenziali problemi in tempo reale.

Link: Video, Presentazioni

Testare l'automazione su un decoder a infrarossi

Olivier Etienne (Arancione)

Questa conversazione spiegherà in cosa consiste il contesto di un'app TV e quali tipi di problemi possiamo riscontrare quando si cerca di automatizzare le cose. Olivier affronterà gli errori precedenti, il suo approccio e quali sono stati i punti chiave per creare uno strumento di test automatico. Se il tempo lo permette, potrà approfondire i dettagli dell'implementazione.

Scopri come alcuni soldati e alcune righe di codice hanno aperto il ricco mondo dei test web su un decoder.

Link: Video, Presentazioni

La sfida di confrontare equamente i cloud provider e le nostre iniziative

Anthony Voellm (Google)

Questa presentazione tratterà la storia del benchmarking dal mainframe al cloud. L'obiettivo è gettare le basi di una serie di benchmark e di come sono arrivati a questo punto. Saranno formulate idee per il futuro del benchmarking di Cloud e di come riuscirci praticamente.

Link: Video, Presentazioni

Non inviare mai da una persona per svolgere il lavoro di una macchina: in che modo Facebook utilizza i bot per gestire i test

Roy Williams (Facebook)

Facebook non dispone di un'organizzazione di prova, gli sviluppatori sono proprietari di tutto, dalla scrittura del codice alla verifica, fino alla transizione in produzione. Ciò non significa che non eseguiamo test. Il modo in cui abbiamo realizzato questa scala è stato quello di automatizzare il ciclo di vita dei test per mantenere un segnale alto e un rumore basso. I nuovi test vengono considerati non attendibili e le irregolarità vengono eliminate rapidamente dall'albero. Parleremo di ciò che ha funzionato e di quello che non ha creato fiducia nei test.

Link: Video, Presentazioni

Espresso, Cucchiaio, Wiremock, Oh, mio Dio! ( o come ho smesso di preoccuparmi e adoro i test di Android)

Michael Bailey (American Express)

Scopri come creare ed eseguire test automatici e affidabili dell'interfaccia utente Android. Tra gli strumenti disponibili figurano Espresso, Spoon, Wiremock e Jenkins. Si presume che tu abbia conoscenze di base di sviluppo di Android e Java.

Link: Video, Presentazioni

Dati e analisi di Google BigQuery

Brian Vance (Google)

BigQuery è il servizio di big data interattivo di Google Cloud. Gli utenti possono analizzare terabyte di dati in pochi secondi tramite query di tipo SQL. Si basa su Dremel, che i tester di Google utilizzano internamente da anni. Esaminiamo alcuni esempi e ti mostreremo come iniziare a utilizzare BigQuery.

Link: Video, Presentazioni

Selendroid - Selenium per Android

Dominik Dary ( Adobe)

Selendroid è un framework di automazione dei test open source che esclude l'interfaccia utente delle applicazioni native Android e ibride e dal Web mobile. I test vengono scritti utilizzando l'API client Selenium 2. Per i test non è necessaria alcuna modifica dell'app in fase di test per poterla automatizzare.

Questa presentazione dimostra al pubblico quanto sia semplice eseguire l'automazione dei test sui dispositivi mobili. Mostra come Selendroid può essere utilizzato per testare app per Android native e ibride e come è possibile utilizzare Selendro Grid per il test parallelo su più dispositivi. Verranno trattati anche argomenti come l'estensione di Selendroid in esecuzione e i test multipiattaforma.

Link: Video, Presentazioni

Mantenimento della salute in un mondo ipermediale

Amit Easow (Comcast)

Con l'evoluzione di Comcast, che è diventata una società via cavo leader di tecnologia e media, anche i team tecnici sono diventati più intelligenti. Quando Amit è entrato in Comcast Interactive Media (CIM) nel 2006, è diventato un negozio di test manuali. Dopo aver spedito il loro primo sito web nel 2007, ha iniziato a creare prototipi per un'infrastruttura di test UI automatica. È stato presentato in Selenium alla GTAC 2008 e poi è tornato in Comcast per costruire un'infrastruttura di test automatizzata con Selenium Grid, Hudson e Subversion. Oggi si occupa di test delle API con deployment in produzione ogni giorno feriale. Ciò è possibile grazie a Python, Git, Gerrit e Anthill.

Link: Video, Presentazioni

Presto più veloce e veloce con MSL!

Bryan Robbins (FINRA) e Daniel Koo (FINRA)

Distribuire software più velocemente senza compromettere la qualità non è un compito banale. Tutti vogliamo muoverci rapidamente sviluppando i test in anticipo ed eseguendoli più rapidamente, con il minimo sforzo. Noi di FINRA abbiamo sviluppato MSL (pronunciato "Missile") per consentire ai team di Agile di sfruttare architetture a più livelli come MVC per testare il codice dell'interfaccia utente prima e più velocemente.

MSL supporta il test di integrazione del codice UI (come JavaScript, HTML, CSS) eseguendo il deployment localmente su un server Node.js e configurando risposte HTTP fittizie dal codice di test utilizzando uno dei nostri client (Java, JavaScript o Node.js). Questo intervento introdurrà le funzionalità principali di MSL con alcuni esempi.

Link: Video, Presentazioni

L'esperienza utente di test

Alex Eagle (Google)

I prodotti Google vengono rilasciati di frequente e richiedono test automatizzati e "coppa di build" significativi. Stiamo lavorando per offrire la nostra infrastruttura di test nell'ambito di Google Cloud Platform. In questa presentazione parleremo di alcune delle metodologie che utilizziamo per garantire l'integrità delle nostre build e l'assenza di difetti dei nostri prodotti. Inoltre, vedremo in anteprima come le soluzioni vengono esposte al mondo intero.

Link: Video, Presentazioni

Tabella tavola rotonda 1 - Test multipiattaforma per dispositivi mobili

Link: Video, Presentazioni

Tabella rotonda - Talk 2 - Copertura dell'automazione dei documenti

Link: Video, Presentazioni

Impatto della struttura della community sul rendimento dei risolutori SAT

Zack Newsham (Università di Waterloo)

I moderni risolutori CDCL SAT risolveranno regolarmente istanze SAT industriali molto grandi in periodi di tempo relativamente brevi. È chiaro che questi risolutori sfruttano in qualche modo la struttura delle istanze del mondo reale. Tuttavia, fino ad oggi ci sono stati pochi risultati che caratterizzano con precisione questa struttura. In questo documento, forniamo la prova che la struttura della community di istanze SAT reali è correlata al tempo di esecuzione dei risolutori SAT CDCL. È noto da tempo che le istanze SAT reali, visualizzate come grafici, hanno community naturali al loro interno. Una community è un sottografico del grafico di un'istanza SAT, tale che ha più bordi interni che in uscita verso il resto del grafico. La struttura della community in un grafico è spesso caratterizzata da una metrica della qualità chiamata Q. Intuitivamente, un grafico con una struttura della community di alta qualità (Q elevata) è facilmente separabile in community più piccole, mentre quello con una Q bassa non lo è. Forniamo tre risultati basati su dati empirici che mostrano che la struttura comunitaria di istanze industriali reali è un fattore predittivo del tempo di esecuzione dei risolutori CDCL rispetto ad altri fattori comunemente considerati come variabili e clausole. Innanzitutto, mostriamo che esiste una forte correlazione tra il valore Q e la metrica Distanza di blocco letterale della qualità delle clausole di conflitto utilizzate nei criteri di eliminazione delle clausole nei risolutori simili alla glicemia. In secondo luogo, utilizzando l'analisi di regressione, mostriamo che il numero di community e il valore Q del grafico delle istanze SAT reali sono più predittivi del tempo di esecuzione dei risolutori CDCL rispetto alle metriche tradizionali come il numero di variabili o clausole. Infine, mostriamo che le istanze SAT generate casualmente con 0,05 ≤ Q ≤ 0,13 sono drasticamente più difficili da risolvere per i risolutori CDCL rispetto al resto.

Link: Video, Presentazioni

Oltre la copertura: quali caratteristiche si trovano nelle suite di test?

Patrick Lam (Università di Waterloo)

Vogliamo tutti suite di test "migliori". Ma cosa rende una buona suite di test? Di sicuro, le suite di test dovrebbero puntare a ottenere una buona copertura, almeno al livello di copertura della dichiarazione. Per essere utili, le suite di test devono essere eseguite abbastanza rapidamente da fornire feedback tempestivi.

Questa discussione esaminerà una serie di altre dimensioni su cui valutare le suite di test. Secondo le discussioni, le migliori suite di test sono più gestibili, più utilizzabili (ad esempio, perché vengono eseguite più velocemente o utilizzano meno risorse) e presentano meno errori ingiustificati. In questo intervento, presenterò e sintetizzarò informazioni su 10 suite di test open source (da 8.000 a 246.000 righe di codice) e valuterò come stanno andando.

Link: Video, Presentazioni

Rispetto dell'ambiente: ripulire l'ambiente tossico per dispositivi mobili

Thomas Knych (Google), Stefan Ramsauer (Google), Valera Zakharov (Google) e Vishal Sethia (Google)

Presenteremo strumenti e tecniche per creare ambienti di test ermetici e veloci per l'esecuzione dei test di Android in entrambe le modalità di sviluppo interattivo e di integrazione continua. Si basa sul livello più alto dell'incontro che abbiamo presentato all'ultima GTAC.

Link: Video, Presentazioni