IoT e App, una nuova sfida per gli sviluppatori

Quando si parla di sviluppo di software per dispositivi IoT, ci sono aspetti specifici da tenere in considerazione. Con questo contributo Luca Manara di AppQuality spiega come dovrebbe essere approcciato il test IoT

Pubblicato il 11 Ott 2017

appquality-testing

In questo contributo, Luca Manara, Ceo e Co-Founder di AppQuality, spiega l’importanza del testing delle App per i dispositivi IoT, partendo da un caso reale. Il contributo integrale, con ulteriori immagini a corredo, è disponibile sul sito della società

Frigoriferi, aspirapolvere, porte e termostati… Internet è integrato in tutti gli aspetti della nostra vita. Tutti gli oggetti oggi sono usati differentemente da come sono stati studiati originariamente e lo saranno ancora di più in futuro.
Bisogna considerare che, mentre gli utenti sono abituati a certi tempi di attesa nel software classico, non saranno altrettanto ragionevoli nel caso di oggetti IoT, abituati ai tempi di reazione che venivano garantiti su questi oggetti nelle loro versioni “tradizionali”, come per esempio, aprire la porta di casa! Senza trascurare che le versioni high-tech degli oggetti classici, devono per forza essere super intuitive.
In questo nuovo mercato, ci sono nuovi aspetti rispetto alla qualità del software, che tutti i costruttori devono tenere in considerazione.
Ma quindi, come dovrebbe essere approcciato il test IoT?
Proviamo a stilare una lista di consigli su come approcciare il test IoT e tutte le App companion, partendo da una case history specifica ovvero da  un test fatto sull’App companion di un famoso cronotermostato.

Quale metodo per il test delle App per l’IoT

L’attività di test ha previsto l’utilizzo combinato di un cronotermostato e dell’applicazione per smartphone/tablet che è stata sviluppata per settarne le impostazioni. Seguendo il modello Test Cases Bug Finding associato agli Usability Video sono stati coinvolti 30 Tester (di Milano) sfruttando la piattaforma Crowd per il recruitment (questa modalità è possibile grazie al modello Crowd Testing che coinvolge utenti finali nelle fasi di test).

Tutti i 30 tester coinvolti hanno utilizzato un proprio device e, durante le quasi due ore di attività in laboratorio configurato appositamente per questa attività (grazie alla partnership con l’IoT Lab del Politecnico di Milano), hanno replicato tutta l’esperienza che un utente reale si trova a vivere nella fase successiva all’istallazione del cronotermostato nella sua abitazione. Hanno quindi configurato la loro app, stabilendo una connessione tra il loro smartphone/tablet ed il cronotermostato che è stato loro fornito. Hanno poi iniziato a prendere confidenza con le possibilità offerte dall’app, creando, ad esempio, dei profili di temperatura settimanali e simulando la cessione del controllo del cronotermostato, come potrebbe accadere tra i diversi membri di una famiglia.

Durante tutta la durata dell’attività, i tester si fermavano ogni qualvolta individuavano un bug di qualsiasi tipo (che impedisse loro di svolgere il task assegnato o, più semplicemente, un errore ortografico) e, tramite lo strumento che noi chiamiamo bug form, lo catalogavano in modo da poter essere gestito dal team di sviluppo dell’applicazione, collegato direttamente al sistema di Bug Tracking (Jira) del team di sviluppo.

Nel frattempo i tester venivano ripresi e filmati da una telecamera esterna (Usability Video) i cui video sono stati analizzati dall’esperto di User Experience e confrontati con le euristiche standard per identificare frizioni di Usability.

Quali device e quali target testare

La scelta dei giusti device è un fattore fondamentale da tenere in considerazione per condurre un test in maniera efficace. Incrociando dunque i dati relativi agli utilizzatori del cronotermostato, è stato composto un panel eterogeneo che ha permesso di verificare il comportamento dell’applicazione su 20 diversi smartphone e 10 diversi tablet (di entrambe le famiglie, Android e iOS).

Il possesso dei device richiesti è stata un primo fondamentale parametro utilizzato per la scelta dei tester, ma non l’unico. Un aspetto cruciale del test infatti, oltre ad una verifica funzionale dei processi di sincronizzazione tra app e cronotermostato, è stata la valutazione dell’experience degli utenti durante il controllo del cronotermostato da smartphone. È stato quindi importante anche essere riusciti ad individuare profili di età congruenti con la customers base del nostro cliente.

La community di riferimento di AppQuality, solo in Italia, conta su più di 10.000 tester che ci permettono una perfetta costruzione del panel di test, sagomato su ogni esigenza specifica.

Nella chart sottostante potete trovare la Device Lab realizzata per questo tipo di test (device personale dei tester scelti su Milano).

L’importanza di effettuare i test in laboratorio

Come anticipato, l’attività di test ha previsto l’utilizzo di 30 diversi cronotermostati che, per funzionare, dovevano essere correttamente collegati alla rete elettrica. Trattandosi di dispositivi prototipali, i sistemi di sicurezza non erano ancora stati implementati al 100%. La possibilità di venire a contatto con cavi dell’alta tensione, seppur remota, era quindi ancora presente. Ecco dunque che effettuare l’attività in un ambiente protetto, l’IoT Lab del Politecnico di Milano, diventa un elemento fondamentale per poter effettuare il test nella massima sicurezza possibile.

In aggiunta, il forte know how dei tecnici di Usability e dei Ricercatori dell’IoT Lab, ci ha permesso il riconoscimento di alcune pattern di comportamento che si verificano spesso quando un utente si trova a controllare un elettrodomestico da remoto.

I risultati dei test

Durante i tre giorni nei quali si è svolta l’attività, i tester hanno segnalato 76 bug. Un numero importante se pensate che potevano arrivare sull’App di produzione. La fetta più grande di queste anomalie è stata classificata nella categoria dei malfunction, ovvero problemi legati ad aspetti funzionali di medio/alto impatto sull’utente, che possono talvolta impedirgli di completare correttamente un task.

Poco più del 25% delle segnalazioni ha riguardato invece aspetti di usability, ovvero problemi legati ad una difficoltà di utilizzo dell’app legata alla sua (in alcuni punti) difficoltà di utilizzo. Da qual che abbiamo potuto osservare, alcuni aspetti dell’applicazione risultavano infatti complessi e particolarmente tecnici, non adatti all’utenza media di questi strumenti.

Uno degli errori più comuni che si commette in queste situazioni è infatti quello di disegnare un’esperienza di utilizzo attraverso l’applicazione che sia molto simile a quella che si ha con l’elettrodomestico (il cronotermostato, in questo caso). L’utente però è abituato ad utilizzare lo smartphone in maniera diversa. La totalità delle app che tiene costantemente istallate e che utilizza nella sua routine sono spesso app che si portano dietro un’estrema facilità di utilizzo.

Quindi, quando l’utente utilizza un’app per regolare la temperatura del proprio appartamento, piuttosto che per impostare il corretto ciclo della lavatrice, si aspetta di poterlo fare con le stesse modalità e con la stessa facilità/velocità con cui imposta la sveglia o con cui condivide un post. Non si aspetta di dover spendere diverso tempo per capire cosa fare. Questo, anzi, genera in lui frustrazione e quello che era stato pensato come un ulteriore vantaggio per il cliente può trasformarsi invece in un ostalo che lo porta ad abbandonare l’utilizzo del prodotto.

È proprio nella valutazione di questi aspetti che il test mostra tutto il suo valore ed aiuta gli sviluppare a disegnare la corretta esperienza di utilizzo che, allo stesso tempo, sia priva di bug.

Nel grafico sottostante potete trovare la Bug List splittata per Bug Severity e Bug Category.

L’importanza della fase di Onboarding

Dalle osservazioni fatte e dall’analisi dei dati che abbiamo raccolto, è stato evidente come la fase più critica sia risultata essere quella dell’Onboarding. Durante la fase di test, i tester avevano a disposizione un manuale redatto da QualityApp che conteneva la lista dei task che dovevano eseguire e le istruzioni di base per riuscire a svolgere le operazioni più complesse (fruibile attraverso la piattaforma Crowd). Nonostante ciò, è capitato che molti di loro ci chiedessero informazioni per riuscire a proseguire nella fase di associazione del cronotermostato alla linea wifi del proprio device. In una situazione reale, per riuscire ad effettuare l’operazione in autonomia, gli utenti necessiterebbero quindi di un manuale che li guidi passo-passo in questa fase, esattamente come già accade quando un utente acquista uno strumento qualsiasi per la regolazione della temperatura.

Il tipico comportamento è il seguente: il cliente acquista uno strumento che pensa possa portargli grandi vantaggi (nel nostro caso, il cronotermostato); lo istalla ma per capirne il corretto funzionamento perde molto tempo nella lettura del manuale di istruzioni, dove le istruzioni sono molte e complesse, o si rivolge all’installatore (quasi sempre non preparato dato che non è un diretto collaboratore dell’azienda produttrice del termostato); qui il suo interesse inizia a diminuire e, dopo averlo regolato per la prima volta, probabilmente, non tornerà più a interagirci come invece aveva pensato prima dell’acquisto.

Un applicazione per il controllo da remoto dovrebbe proprio essere in grado di arginare questo grosso ostacolo e deve quindi essere pensata per far sì che anche i passaggi tecnici (spesso troppo complessi per gli utenti) possano essere eseguiti con facilità dell’utente finale. A titolo di esempio, si può considerare la modalità di pairing delle cuffie AirPods di Apple.

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 4