Quelques bonnes raisons d’utiliser les tests automatisés pour vos apps

Quelques bonnes raisons d’utiliser les tests automatisés pour vos apps

retour actualités

La validation d’une application mobile recouvre de multiples aspects : ergonomie, performance, fonctionnalités, prise en compte des spécificités de multiples OS… L’actualité du monde mobile évoque de plus en plus fréquemment l’émergence de plateformes de tests automatisées pour mobiles, également appelées automates de tests. Cette tendance est-t-elle justifiée ?

 

La fragmentation Android soumet les tests manuels à rude épreuve

 

En préambule, il est important de rappeler que concevoir une application mobile, c’est le plus souvent concevoir une application destinée à une multitude de terminaux iOS, Android et Windows. 

Cependant, que vous optiez pour un développement natif ou un développement multiplateforme, force est de constater qu’une même application mobile ne présente pas le même comportement ni/ou le même rendu sur les différents terminaux d’un même OS (Android ou iOS), avec des écarts beaucoup plus marqués sur Android.

Ces écarts sur la plateforme de Google sont pour une très large part liés aux versions d’Android et aux personnalisations apportées par les constructeurs (Samsung par exemple avec ses surcouches Android). Dans une moindre mesure, ces anomalies peuvent aussi être liées aux tailles et résolutions d’écrans différentes, aux différents capteurs types accéléromètres, GPS ou gyroscopes, à la mémoire disponible sur le terminal etc…

Pour identifier et rectifier ces anomalies, il est donc nécessaire de tester chaque application sur les plateformes cibles visées (OS et terminaux).

Cependant, avec plus de 24000 terminaux Android différents1 référencés dans le monde qu’il faudrait tester chacun avec 4 versions d’Android2, le nombre de cas de tests devient rapidement ingérable manuellement.

Selon l’éditeur Xamarin, 288 configurations seraient nécessaires pour couvrir 90% du marché mondial (134 configurations pour couvrir 75% du marché).

 

Quelle approche envisager ?

 

Deux alternatives s’offrent donc aux développeurs d’applications mobiles :

  • Tester manuellement sur un échantillon « représentatif » du marché, composé le plus souvent en France à 10/15 terminaux
  • Tester automatiquement sur un grand nombre de terminaux

La première alternative étant la plus connue et appliquée, nous allons nous focaliser sur la deuxième option et plus particulièrement sur les tests automatisés sur terminaux physiques (par opposition aux tests automatisés sur simulateurs).

 

Les tests automatisés sur mobiles désormais accessibles en local ou dans le cloud

 

Depuis quelques années sont effectivement apparus de multiples outils sur le marché qui permettent de tester de manière automatisée des applications mobiles sur des terminaux physiques réels, soit locaux soit situés dans le cloud. Ces plateformes connaissent aujourd’hui un formidable essor. A titre d’illustration, sur le seul mois de novembre 2016, Sauce Labs3 spécialisée dans les tests automatisés d’applications web et mobile a levé 70 millions de dollars et Microsoft a annoncé4 « Mobile Center » qui va intégrer notamment Xamarin Test Cloud. Fin novembre, le cabinet Future Marketing Insight5 annonçait une anticipation de croissance annuelle du marché des solutions de tests mobiles de 19,5% en moyenne pour les dix prochaines années.

Les différents outils de tests automatisés pour mobiles reposent sur la même approche : décrire le test à automatiser pour pouvoir ensuite l’exécuter et enfin restituer le résultat.

Ces tests sont décrits soit sous forme de scripts propres à la plateforme de tests soit sous forme d’enregistrements de tests manuels sur une première plateforme. Ces scenarii intègrent les spécificités des plateformes mobiles (prise en compte des gestures par exemple mais aussi les aléas associés aux mobiles type perte de connexion, absence de GPS, …). Ils sont ensuite exécutés sur un ensemble de terminaux déterminés (ceux connectés dans le cas d’un outil orienté local ou ceux sélectionnés dans le cas d’un outil cloud). Le résultat peut être traité manuellement ou transmis à une plateforme d’intégration continue type TFS, TeamCity ou Jenkins.

Les outils cloud type Xamarin Test Cloud, Amazon Device Farm ou FireBase Test Lab (Google) apportent un réel gain en permettant d’accéder un nombre très importants de terminaux disponibles (plus de 2000 pour Xamarin) avec leur OS installé, à distance et sans avoir à gérer cette flotte.

Cette approche automatisée a évidemment un coût. En dehors de l’éventuel aspect licence ou coût d’utilisation d’une plateforme, elle nécessite de créer les scripts des scenarii de tests. Cependant, contrairement aux tests automatisés en environnement desktop ou Web qui nécessitent plusieurs campagnes de tests pour être rentabilisés, les tests sur mobiles présentent un retour sur investissement quasi immédiat dans la mesure où les scénarii de tests sont conçus une seule fois et déroulés ensuite sur de nombreuses plateformes.

 

Les tests automatisés pour vos apps pour garantir une qualité sur différentes plateformes avec un coût maitrisé

 

En résumé, les tests automatisés pour mobiles présentent donc un intérêt incontestable pour garantir la qualité d’une app sur une multitude de terminaux mobiles avec un coût et une charge maitrisés. Cette approche peut être encore optimisée en retenant une plateforme accédant à des terminaux réels dans le cloud.

 

Quelques outils de tests automatisés

Outils de tests automatisés

   

 

1 https://opensignal.com/reports/2015/08/android-fragmentation/

2 http://developer.android.com/about/dashboards/index.html

3 https://techcrunch.com/2016/11/15/sauce-labs-sops-up-70-million-round/

4 https://blogs.msdn.microsoft.com/visualstudio/2016/11/16/visual-studio-mobile-center/

5 http://satprnews.com/2016/11/25/mobile-application-testing-solution-market-at-a-cagr-of-19-5-by-2026/

 

Contact isiapps