I test del software eseguiti nelle prime fasi del ciclo di sviluppo confermano la validità del progetto
"Eseguire test frequentemente e fin dalle prime fasi" è una strategia dell'ingegneria del software agile che si è evoluta fino a diventare un principio fondamentale per gli sviluppatori di software in tutti i settori. I test del software nelle prime fasi sono particolarmente importanti per gli sviluppatori che lavorano su applicazioni multipiattaforma, i quali devono supportare dispositivi mobili con caratteristiche fisiche e funzionalità del sistema operativo diverse.
MobileTogether include funzionalità per integrare i test software nelle prime fasi del processo di sviluppo, evitando cicli di compilazione, distribuzione e debug che richiedono molto tempo per ogni piattaforma mobile. Il sito web di Altova descrive la funzionalità di simulazione [automated-testing-for-mobile-apps|MobileTogether Simulator per i test software nelle prime fasi, e abbiamo scritto sul blog riguardo alla possibilità di registrare e riprodurre specifiche sequenze di azioni all'interno dei [casi di test]].
Questo articolo descrive la funzionalità "Test preliminare sul dispositivo". Questa funzionalità è integrata nel software MobileTogether Designer per consentire agli sviluppatori di esaminare istantaneamente i progetti delle applicazioni e di verificare la logica e le funzionalità su qualsiasi dispositivo mobile o piattaforma supportata: Android, iOS, Windows Desktop o Windows Phone.

La fase di test preliminare su un cliente è particolarmente utile per i primi test del software di applicazioni che:
- Utilizzate le funzionalità mobile che non sono disponibili nell'applicazione Designer sulla piattaforma Windows, come l'invio di messaggi SMS
- Utilizzare azioni che si comportano in modo leggermente diverso a seconda del sistema operativo, ad esempio, l'azione "Mostra geolocalizzazione" che apre l'applicazione mappa predefinita del dispositivo
- È necessario effettuare dei test su un modello di telefono cellulare completamente nuovo, le cui dimensioni dello schermo potrebbero non corrispondere a quelle di un dispositivo di anteprima utilizzato dai progettisti
Per eseguire una prova preliminare, il dispositivo mobile utilizzato per il test deve avere installata l'applicazione MobileTogether Client, il dispositivo mobile e la postazione di lavoro MobileTogether Designer devono essere connessi alla stessa rete, e l'indirizzo di rete della postazione Designer deve essere configurato come server MobileTogether sul dispositivo mobile.
Una volta che il dispositivo del cliente è pronto, lo sviluppatore può avviare una prova sul dispositivo del cliente dal menu del progetto nel designer, oppure dalla comoda barra degli strumenti:

Esaminiamo un'applicazione in fase di sviluppo che utilizza le funzionalità GPS, nel caso in cui lo sviluppatore abbia scelto l'iPhone 6 Plus come dispositivo di anteprima.
La prima opportunità per testare l'applicazione è eseguirla nel simulatore MobileTogether, una funzionalità del software MobileTogether Designer disponibile in qualsiasi momento durante lo sviluppo.
La finestra principale del simulatore mostra l'applicazione così come apparirà sul dispositivo di anteprima selezionato. Gli sviluppatori possono modificare la selezione del dispositivo per visualizzare l'interfaccia utente come apparirà su una varietà di dispositivi iOS, Android, Windows e altri, oppure possono passare istantaneamente tra l'orientamento verticale e orizzontale.
Il simulatore aggiorna anche le modifiche che si verificano nell'albero dei dati delle sorgenti della pagina, man mano che l'applicazione viene eseguita. La finestra "Messaggi" nell'ambiente di sviluppo mostra un rapporto dettagliato, passo dopo passo, delle attività durante l'esecuzione, inclusi i messaggi scambiati tra l'applicazione client e il server. Tutti i controlli che richiedono l'interazione dell'utente sono abilitati durante la simulazione.
Ecco un'immagine dell'applicazione in esecuzione nel simulatore:

Due problemi emergono immediatamente: il simulatore non fornisce le vere coordinate GPS. Invece, utilizza un file di dati per simulare il movimento del dispositivo mobile e aggiornare le coordinate GPS. Inoltre, il pulsante "Visualizzazione mappa" nell'app apre le mappe di Bing sulla workstation Windows su cui è in esecuzione il software di progettazione, mentre dovrebbe aprire le mappe di Apple, che sono l'applicazione di mappatura predefinita su un iPhone reale.
Possiamo utilizzare la funzione "Esecuzione di prova sul dispositivo" per eseguire l'applicazione su un dispositivo mobile reale, al fine di garantire il corretto funzionamento delle funzionalità GPS e per verificare il pulsante "Visualizzazione mappa". Per il primo test, utilizzeremo un telefono Android. Cliccando sul pulsante "Esecuzione di prova sul dispositivo", si apre una nuova finestra all'interno del designer:

A questo punto, l'applicazione Designer funge anche da server MobileTogether. La finestra di messaggistica interna si apre quando il dispositivo client avvia l'applicazione.
Lo sviluppatore fa clic su "Sì" nella finestra di dialogo del designer per continuare, e l'applicazione viene eseguita sul dispositivo client. Immediatamente, riscontriamo un problema inaspettato: la dimensione predefinita del testo è estremamente piccola

Potremmo semplicemente utilizzare il pulsante "Abc+" per aumentare la dimensione del testo e chiedere agli utenti finali di fare lo stesso, ma questa sarebbe una soluzione poco elegante e non molto intuitiva. Approfondendo, possiamo utilizzare la finestra "Esecuzione di prova sul client" nel programma di progettazione per visualizzare la struttura dei dati dell'applicazione durante la sua esecuzione:

L'elemento "textSize" nell'albero dei dati persistenti contiene un valore che imposta la dimensione del carattere per le etichette di testo e i pulsanti, espressa in pixel assoluti. Il valore predefinito, fissato a 20, è stato scelto perché sembrava adeguato per l'iPhone 6 Plus durante la fase di progettazione, ma non funziona correttamente con il dispositivo attuale.
Possiamo facilmente modificare la dimensione predefinita del testo, passando da un valore fisso a una funzione basata sulle dimensioni in pixel, specifica per ogni dispositivo utilizzato dai nostri clienti. Successivamente, possiamo effettuare immediatamente una nuova fase di test.
MobileTogether fornisce variabili globali che consentono agli sviluppatori di accedere a diverse caratteristiche di qualsiasi dispositivo utilizzato dall'utente finale mentre l'applicazione è in esecuzione. La finestra "Variabili globali" nel Designer mostra i valori per il dispositivo di anteprima selezionato. Di seguito è riportata un'immagine che mostra i valori per l'iPhone 6 Plus:

Invece di assegnare un valore predefinito di 20 pixel all'elemento textSize, possiamo creare una funzione basata sulla variabile globale MT_DeviceHeight. Venti diviso per 736 è circa il 2,7%, quindi utilizzeremo questo valore per creare una funzione XPath che imposti la dimensione iniziale del testo in base a qualsiasi dispositivo client:

Ora possiamo effettuare un'altra prova sul dispositivo del cliente, utilizzando un telefono Android, per verificare il risultato.

La finestra di anteprima mostrata sopra presenta il nuovo valore predefinito calcolato per la dimensione del testo, e qui è riportata una nuova schermata catturata dal telefono:

La dimensione del testo calcolata automaticamente, basata sull'altezza dello schermo del dispositivo, è molto più ragionevole e intuitiva! Inoltre, è ancora possibile regolare finemente la dimensione del testo utilizzando i pulsanti "Abc-" e "Abc+", poiché questi semplicemente diminuiscono o aumentano il valore dell'elemento "textSize".
Ora possiamo tornare alla nostra sfida iniziale, che era quella di verificare il funzionamento del pulsante "Visualizzazione mappa" nell'applicazione. Di seguito sono riportate delle schermate di una pagina dell'applicazione e della corrispondente visualizzazione mappa per il telefono Android:


Ecco le stesse immagini visualizzate su un iPhone:

Tutte e quattro le schermate mostrate sopra sono state catturate durante una fase di test sull'applicazione utilizzata dal cliente. La visualizzazione precisa delle mappe su ciascuna piattaforma dipende dalle funzionalità e dalle impostazioni dell'utente all'interno di ciascuna applicazione di mappe. Ad esempio, Google Maps sullo smartphone Android include la funzione Street View, mentre l'applicazione Maps di Apple non la offre.
Potete effettuare test preliminari del software utilizzando la funzione "Trial Run sul client", insieme a tutte le altre funzionalità di MobileTogether per lo sviluppo di applicazioni eleganti, semplicemente scaricare il software MobileTogether Designer, che è gratuito, che include un sistema di assistenza integrato, tutorial e numerosi esempi.