Les tests logiciels effectués dès les premières étapes permettent de valider la conception
"Tester fréquemment et dès le début" est une stratégie issue de l'ingénierie logicielle agile qui s'est progressivement imposée comme une exigence pour les développeurs de logiciels dans tous les domaines. Les tests logiciels précoces sont particulièrement importants pour les développeurs travaillant sur des applications multiplateformes, qui doivent prendre en charge des appareils mobiles aux caractéristiques physiques et aux fonctionnalités de système d'exploitation variées.
MobileTogether intègre des fonctionnalités permettant d'intégrer les tests logiciels dès le début du processus de développement, sans nécessiter des cycles de compilation, de déploiement et de débogage longs et fastidieux pour chaque plateforme mobile. Le site web d'Altova décrit la fonctionnalité de test logiciel précoce [automated-testing-for-mobile-apps|MobileTogether Simulator, et nous avons publié un article de blog concernant la possibilité d'enregistrer et de relancer des séquences d'actions spécifiques dans des [cas de test]].
Cet article décrit la fonctionnalité "Test préliminaire sur appareil". Elle est intégrée à l'outil MobileTogether Designer et permet aux développeurs d'examiner instantanément la conception des applications et de valider la logique et les fonctionnalités sur n'importe quel appareil mobile ou plateforme pris en charge : Android, iOS, ainsi que les versions bureau et téléphone Windows.

Une phase de test préliminaire auprès des clients est particulièrement utile pour les tests initiaux des applications qui :
- Utilisez les fonctionnalités mobiles qui ne sont pas disponibles dans l'application Designer sur la plateforme Windows, comme l'envoi de messages SMS
- Utilisez des actions qui fonctionnent légèrement différemment selon le système d'exploitation, comme l'action "Afficher la géolocalisation", qui ouvre l'application de cartographie par défaut du système
- Il est nécessaire de tester cette fonctionnalité sur un tout nouveau modèle de téléphone portable, dont les dimensions de l'écran pourraient ne pas correspondre à celles d'un appareil de prévisualisation utilisé par les concepteurs
Pour effectuer un test préliminaire chez un client, les exigences sont très simples : l'appareil mobile utilisé pour les tests doit avoir l'application MobileTogether Client installée, l'appareil mobile et la station de travail MobileTogether Designer doivent être connectés au même réseau, et l'adresse réseau de la station de travail Designer doit être configurée comme un serveur MobileTogether sur l'appareil mobile.
Une fois que l'appareil client est prêt, le développeur peut lancer une phase de test sur l'appareil client, soit depuis le menu du projet de conception, soit depuis la barre d'outils pratique

Examinons une application en cours de développement qui utilise les fonctionnalités GPS, et pour laquelle le développeur a choisi l'iPhone 6 Plus comme appareil de test.
La première occasion de tester l'application est de l'exécuter dans le simulateur MobileTogether, une fonctionnalité du logiciel MobileTogether Designer, disponible à tout moment pendant le développement.
La fenêtre principale du simulateur affiche l'application telle qu'elle apparaîtra sur l'appareil de prévisualisation sélectionné. Les développeurs peuvent modifier la sélection de l'appareil pour visualiser l'interface utilisateur telle qu'elle apparaîtra sur une variété d'appareils iOS, Android, Windows et autres, ou même basculer instantanément entre les modes portrait et paysage.
Le simulateur met également à jour les modifications qui se produisent dans l'arborescence des sources de pages au fur et à mesure de l'exécution de l'application. La fenêtre "Messages" dans l'outil de conception affiche un rapport détaillé, étape par étape, de l'activité pendant l'exécution, y compris les messages échangés entre l'application cliente et le serveur. Tous les éléments de contrôle qui nécessitent une interaction utilisateur sont activés pendant la simulation.
Voici une capture d'écran de l'application en cours d'exécution dans le simulateur :

Deux problèmes se posent immédiatement : le simulateur ne fournit pas les coordonnées GPS réelles. Au lieu de cela, il utilise un fichier de données pour simuler le mouvement de l'appareil mobile et les coordonnées GPS mises à jour. De plus, le bouton "Affichage de la carte" dans l'application ouvre les cartes Bing sur la station de travail Windows exécutant le logiciel de conception, alors qu'il devrait ouvrir Apple Maps, qui est l'application de cartographie par défaut sur un iPhone réel.
Nous pouvons utiliser la fonction "Test sur appareil" pour exécuter l'application sur un appareil mobile réel, afin de garantir le fonctionnement correct de la fonctionnalité GPS et de valider le bouton "Affichage de la carte". Pour le premier test, nous utiliserons un téléphone Android. Cliquer sur le bouton "Test sur appareil" ouvre une nouvelle fenêtre dans l'interface de conception :

À ce stade, l'application Designer fonctionne également en tant que serveur MobileTogether. La fenêtre de messagerie interne s'ouvre lorsque l'appareil client lance l'application.
Le développeur clique sur "Oui" dans la fenêtre du concepteur pour continuer, et l'application s'exécute sur l'appareil client. Immédiatement, nous constatons un problème inattendu. La taille du texte par défaut est extrêmement petite :

Nous pourrions simplement cliquer sur le bouton "Abc+" pour augmenter la taille du texte et demander aux utilisateurs finaux de faire de même, mais ce serait une solution maladroite et peu conviviale. En explorant davantage, nous pouvons utiliser la fenêtre "Exécution de test sur le client" dans l'outil de conception pour visualiser l'arborescence des données de l'application pendant son exécution :

L'élément "textSize" dans l'arborescence des données persistantes contient une valeur qui définit la taille de la police pour les étiquettes de texte et les boutons, en pixels absolus. La valeur fixe de 20 a été choisie par défaut et semblait convenable pour l'iPhone 6 Plus lors de la conception, mais elle ne fonctionne pas avec l'appareil actuel.
Nous pouvons facilement modifier la taille de police par défaut, en passant d'une valeur fixe à une fonction basée sur les dimensions en pixels, pour chaque appareil client distinct. Ensuite, nous pouvons immédiatement effectuer un nouveau test.
MobileTogether fournit des variables globales qui permettent aux développeurs d'accéder à diverses caractéristiques de tout appareil utilisé par l'utilisateur final pendant l'exécution de l'application. La fenêtre des variables globales dans l'outil de conception affiche les valeurs pour l'appareil de prévisualisation sélectionné. Voici une capture d'écran des valeurs pour l'iPhone 6 Plus :

Au lieu d'appliquer une valeur par défaut de 20 pixels pour l'élément textSize, nous pouvons créer une fonction basée sur la variable globale MT_DeviceHeight. Vingt divisé par 736 représente environ 2,7 %, nous utiliserons donc cette valeur pour créer une fonction XPath qui permettra de définir la taille initiale du texte en fonction de tout appareil client :

Maintenant, nous pouvons effectuer un autre test sur l'appareil du client, en utilisant un téléphone Android, afin de vérifier les résultats.

La fenêtre de test ci-dessus affiche la nouvelle valeur par défaut de la taille du texte calculée, et voici une nouvelle capture d'écran provenant du téléphone :

La taille de texte calculée par défaut, basée sur la hauteur de l'écran de l'appareil, est beaucoup plus raisonnable et conviviale ! De plus, la taille du texte peut encore être ajustée finement à l'aide des boutons "Abc-" et "Abc+", car ils modifient simplement la valeur de l'élément "textSize".
Maintenant, nous pouvons revenir à notre objectif initial, qui était de vérifier le fonctionnement du bouton "Affichage de la carte" dans l'application. Voici des captures d'écran d'une page de l'application et de l'affichage de la carte correspondant pour un téléphone Android :

Voici les mêmes images, capturées avec un iPhone :

Les quatre captures d'écran ci-dessus ont été réalisées lors d'une phase de test sur le système du client. L'affichage précis des cartes sur chaque plateforme dépend des fonctionnalités et des paramètres utilisateur de chaque application de cartographie. Par exemple, Google Maps sur le téléphone Android inclut la fonctionnalité "Street View", mais l'application Maps d'Apple ne l'offre pas.
Vous pouvez effectuer des tests préliminaires des logiciels grâce à la fonctionnalité "Trial Run on Client", ainsi que profiter de toutes les autres fonctionnalités de MobileTogether pour développer des applications performantes, en téléchargeant gratuitement le logiciel MobileTogether Designer, qui est fourni avec une aide intégrée, des tutoriels et de nombreux exemples.