Comment s’assurer de la compatibilité de votre application sur l’ensemble des Devices ? Si l’univers iOs est relativement homogène (90% des iPhones tournent sous IOS 9), Androïd reste la bête noire des DEV. En effet, avec des dizaine de milliers de combinaisons possibles (device & Os) toujours fonctionnelles, la garantie de compatibilité des apps ANDROÏD reste toujours une loterie… C’est le cas en ce moment en particulier avec NOUGAT (Androïd 7) pour lequel nous attendons impatiemment les versions mineures…
Il y a quelques années, il y avait une guerre des écosystèmes mobiles et le test mobile est née… D’un point de vue rétrospectif, comment tout cela a-t-il joué et où nous en sommes aujourd’hui ? Personne ne le sait vraiment ! En 2010, Android a rapidement obtenu de la traction avec les OEM, Apple a poussé son iOS vers l’avant et a boosté son écosystème d’applications pour en attirer toujours plus. Le nombre d’appareils Android des différents OEM a permis d’intéresser toujours plus un nombre croissant de développeurs !
Symbian c’est avérer être un environnement de plus en plus difficile à développer pour satisfaire les besoins des consommateurs, ce qui a entraîner une lenteur dans le développement de produits et un désavantage pour profiter des nouvelles plates-formes matérielles. Nous pouvons aussi rappeler la plate-forme « Meego » du temps de Stephen Elop au début de 2011, cependant cette nouvelle plate-forme étaient surréaliste avec (Nokia + Intel) + (MeeGo + Symbian + S40) + Qt. (tout le monde qui était sérieux dans les affaires de l’industrie mobiles le savait). Que serait-il arrivé si le géant avait été prêt à aller dans les eaux d’Android ? Nous ne le serons jamais, mais du temps aurait été gagné et des parts de marché aussi !
À côté, Windows, il y avait peu d’autres entreprises qui étaient prêts à être les prochaines plates-formes OS importantes pour les applications, les développeurs d’applications, les OEM et l’ensemble de l’écosystème mobile. Cependant, Android et iOS sont ceux qui sont restés populaires – et pour des bonnes raisons. Google et Apple ont marché avec l’écosystème et créé les bonnes incitations pour que les développeurs construisent leurs affaires sur ces plates-formes.
Le nombre d’applications Android disponibles dépasse le nombre d’applications iOS vers l’automne 2012
Depuis 2013, nous avons vu deux plates-formes majeures devenir une norme (Android et iOS) pour les applications mobiles qui sont très différentes du point de vue des développeurs d’applications.
La fragmentation des OS
La fragmentation est largement responsable pour décrire la manière dont les applications fonctionnent différemment et sont compatibles avec différents types de périphériques. L’affichage, sa résolution, les facteurs de qualité et l’utilisation du portrait/paysage avec les applications sont des problèmes d’affichage les plus courants que les utilisateurs voient. L’autre cause de la fragmentation, c’est l’impossibilité d’utiliser correctement les applications sur les périphériques qui ne disposent pas de suffisamment de mémoire (RAM) et peuvent ne pas fonctionner correctement.
L’image ci-dessus illustre les problèmes pour les développeurs et les utilisateurs de la fragmentation chez Androïd
La comparaison des versions de l’OS Android les unes avec les autres est simple lorsque la même application est utilisée. Les utilisateurs qui testent leurs applications devraient toujours utiliser des appareils mobiles réels pour faire les tests. L’environnement émulé/simulé ne produit pas toujours les résultats comparables de l’application dans les mains des utilisateurs finaux.
En regardant ces statistiques ci-dessus, il est tout à fait évident que la différence de taux d’échec moyen est assez proche avec ces deux plates-formes. Avec Android, le taux d’échec moyen est de 17,8% et avec iOS, il est légèrement inférieur, 15,5%. Et bien qu’il existe une dispersion entre les différentes versions du système d’exploitation, la tendance est généralement la suivante : de nouveaux bug ont été corrigées sur une nouvelle sous-version de cette version du système d’exploitation. Par exemple, chaque version mineure d’Android et iOS réduit le nombre de problèmes que les développeurs d’applications voient avec leur application.
Lorsque la nouvelle version principale du système d’exploitation est diffusée, elle augmente généralement le taux d’échec et il existe diverses raisons pour lesquelles cela se produit. C’est souvent les nouvelles API, les fonctionnalités, même les personnalisations OEM et les mises à niveau…
Si vous cherchez des tendances dans le développement et le test d’applications mobiles, n’oubliez pas de vous tenir au courant des dernières nouvelles sur le domaine de l’automatisation des tests. Beaucoup de choses se déroulent constamment et de nouvelles versions apportent leur soutien à vos efforts d’automatisation des tests avec ces plates-formes mobiles.
https://developer.apple.com
https://developer.android.com
Les bonnes décisions
Une bonne stratégie de test mobile exige que les architectes d’entreprise mettent en place un cadre complet d’automatisation des tests. Il existe des coûts initiaux dans la mise en œuvre de ce processus en termes de temps et d’infrastructure. Cependant, cela conduira à des applications de meilleure qualité qui sont plus alignées sur les objectifs de l’entreprise. Cela peut augmenter une stratégie DevOps qui a permis un délai de mise sur le marché plus rapide et un rythme plus rapide pour itérer de nouvelles modifications.
De nombreuses entreprises, recommandent l’utilisation d’un mélange optimal de périphériques dans les tests qui varient selon l’emplacement, le type d’appareil, la version du système d’exploitation, la configuration et les options de connectivité.
L’entreprise doit décider où tester les applications. Les émulateur de périphériques et les simulateurs peuvent être de bonnes options pour des tests de développement rapides (ci-dessous une liste), mais il est important d’utiliser des périphériques réels pour les tests d’acceptation. Une approche consiste à créer et à maintenir un cloud privé de périphériques pour vos tests mobiles. Cependant, à moins que vous ayez des exigences spécifiques pour conserver les applications et les tests dans vos locaux, vous voudrez probablement exploiter un service public en nuage comme AWS (Amazon Web Services)
La sécurité mobile doit également être testée dans une large gamme de périphériques et de versions OS. Une application vraiment sécurisée n’est pas seulement sécurisée si elle fonctionne sur un système sécurisé et un périphérique sécurisé, mais aussi sur un système non sécurisé et un périphérique manipulé !!
Un certain nombre d’outils de sécurité peuvent aider à compléter un flux de travail DevOps pour les applications mobiles. Deux classes courantes de ces outils comprennent les tests statiques de sécurité des applications (SAST) et les tests de sécurité des applications dynamiques (DAST). SAST est plus rapide car il analyse simplement le code pour trouver des vulnérabilités flagrantes. DAST recherche les vulnérabilités causées par le comportement des applications. DAST a tendance à être plus complet et à prendre plus de temps.
Outils en vrac
L’automatisation des tests est une tâche complexe. Il nécessite une préparation approfondie et des recherches. Il faut également tenir compte de toutes les nouveautés dans les technologies de l’information, les applications et les outils d’automatisation des tests. Toutes ces connaissances sont nécessaires pour créer les tests les plus efficaces.
Bien que le test de l’application iOS soit totalement différent des tests d’application Android, vous pouvez utiliser Appium ou Calabash pour créer des scripts de test qui peuvent être utilisés pour effectuer des tests multiplate-forme. Voici quelques simulateurs pouvant être de bonnes options pour des tests de développement rapides :
– Robotium
– MonkeyRunner
– Ranorex
– Bitbar
– Appium
– UI Automator
– Calabash
– EarlGrey